docs: rename documentation folder to docs
authorJo-Philipp Wich <jo@mein.io>
Tue, 5 Nov 2019 09:27:59 +0000 (10:27 +0100)
committerJo-Philipp Wich <jo@mein.io>
Tue, 5 Nov 2019 09:42:54 +0000 (10:42 +0100)
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
197 files changed:
README.md
docs/CBI.md [new file with mode: 0644]
docs/JsonRpcHowTo.md [new file with mode: 0644]
docs/LAR.md [new file with mode: 0644]
docs/LMO.md [new file with mode: 0644]
docs/LuCI-0.10.md [new file with mode: 0644]
docs/Modules.md [new file with mode: 0644]
docs/ModulesHowTo.md [new file with mode: 0644]
docs/Templates.md [new file with mode: 0644]
docs/ThemesHowTo.md [new file with mode: 0644]
docs/api/index.html [new file with mode: 0644]
docs/api/luadoc.css [new file with mode: 0644]
docs/api/modules/luci.dispatcher.html [new file with mode: 0644]
docs/api/modules/luci.http.conditionals.html [new file with mode: 0644]
docs/api/modules/luci.http.date.html [new file with mode: 0644]
docs/api/modules/luci.http.html [new file with mode: 0644]
docs/api/modules/luci.http.mime.html [new file with mode: 0644]
docs/api/modules/luci.i18n.html [new file with mode: 0644]
docs/api/modules/luci.ip.cidr.html [new file with mode: 0644]
docs/api/modules/luci.ip.html [new file with mode: 0644]
docs/api/modules/luci.json.html [new file with mode: 0644]
docs/api/modules/luci.jsonc.html [new file with mode: 0644]
docs/api/modules/luci.jsonc.parser.html [new file with mode: 0644]
docs/api/modules/luci.model.ipkg.html [new file with mode: 0644]
docs/api/modules/luci.model.uci.html [new file with mode: 0644]
docs/api/modules/luci.rpcc.html [new file with mode: 0644]
docs/api/modules/luci.rpcc.ruci.html [new file with mode: 0644]
docs/api/modules/luci.sys.html [new file with mode: 0644]
docs/api/modules/luci.sys.init.html [new file with mode: 0644]
docs/api/modules/luci.sys.iptparser.html [new file with mode: 0644]
docs/api/modules/luci.sys.net.html [new file with mode: 0644]
docs/api/modules/luci.sys.process.html [new file with mode: 0644]
docs/api/modules/luci.sys.user.html [new file with mode: 0644]
docs/api/modules/luci.sys.wifi.html [new file with mode: 0644]
docs/api/modules/luci.util.html [new file with mode: 0644]
docs/api/modules/nixio.CHANGELOG.html [new file with mode: 0644]
docs/api/modules/nixio.CryptoHash.html [new file with mode: 0644]
docs/api/modules/nixio.File.html [new file with mode: 0644]
docs/api/modules/nixio.README.html [new file with mode: 0644]
docs/api/modules/nixio.Socket.html [new file with mode: 0644]
docs/api/modules/nixio.TLSContext.html [new file with mode: 0644]
docs/api/modules/nixio.TLSSocket.html [new file with mode: 0644]
docs/api/modules/nixio.UnifiedIO.html [new file with mode: 0644]
docs/api/modules/nixio.bin.html [new file with mode: 0644]
docs/api/modules/nixio.bit.html [new file with mode: 0644]
docs/api/modules/nixio.crypto.html [new file with mode: 0644]
docs/api/modules/nixio.fs.html [new file with mode: 0644]
docs/api/modules/nixio.html [new file with mode: 0644]
docs/i18n.md [new file with mode: 0644]
docs/jsapi/LuCI.Class.html [new file with mode: 0644]
docs/jsapi/LuCI.Headers.html [new file with mode: 0644]
docs/jsapi/LuCI.Network.Device.html [new file with mode: 0644]
docs/jsapi/LuCI.Network.Hosts.html [new file with mode: 0644]
docs/jsapi/LuCI.Network.Protocol.html [new file with mode: 0644]
docs/jsapi/LuCI.Network.WifiDevice.html [new file with mode: 0644]
docs/jsapi/LuCI.Network.WifiNetwork.html [new file with mode: 0644]
docs/jsapi/LuCI.Network.html [new file with mode: 0644]
docs/jsapi/LuCI.Poll.html [new file with mode: 0644]
docs/jsapi/LuCI.Request.html [new file with mode: 0644]
docs/jsapi/LuCI.Request.poll.html [new file with mode: 0644]
docs/jsapi/LuCI.Response.html [new file with mode: 0644]
docs/jsapi/LuCI.XHR.html [new file with mode: 0644]
docs/jsapi/LuCI.dom.html [new file with mode: 0644]
docs/jsapi/LuCI.fs.html [new file with mode: 0644]
docs/jsapi/LuCI.html [new file with mode: 0644]
docs/jsapi/LuCI.rpc.html [new file with mode: 0644]
docs/jsapi/LuCI.uci.html [new file with mode: 0644]
docs/jsapi/LuCI.view.html [new file with mode: 0644]
docs/jsapi/fonts/OpenSans-Bold-webfont.eot [new file with mode: 0644]
docs/jsapi/fonts/OpenSans-Bold-webfont.svg [new file with mode: 0644]
docs/jsapi/fonts/OpenSans-Bold-webfont.woff [new file with mode: 0644]
docs/jsapi/fonts/OpenSans-BoldItalic-webfont.eot [new file with mode: 0644]
docs/jsapi/fonts/OpenSans-BoldItalic-webfont.svg [new file with mode: 0644]
docs/jsapi/fonts/OpenSans-BoldItalic-webfont.woff [new file with mode: 0644]
docs/jsapi/fonts/OpenSans-Italic-webfont.eot [new file with mode: 0644]
docs/jsapi/fonts/OpenSans-Italic-webfont.svg [new file with mode: 0644]
docs/jsapi/fonts/OpenSans-Italic-webfont.woff [new file with mode: 0644]
docs/jsapi/fonts/OpenSans-Light-webfont.eot [new file with mode: 0644]
docs/jsapi/fonts/OpenSans-Light-webfont.svg [new file with mode: 0644]
docs/jsapi/fonts/OpenSans-Light-webfont.woff [new file with mode: 0644]
docs/jsapi/fonts/OpenSans-LightItalic-webfont.eot [new file with mode: 0644]
docs/jsapi/fonts/OpenSans-LightItalic-webfont.svg [new file with mode: 0644]
docs/jsapi/fonts/OpenSans-LightItalic-webfont.woff [new file with mode: 0644]
docs/jsapi/fonts/OpenSans-Regular-webfont.eot [new file with mode: 0644]
docs/jsapi/fonts/OpenSans-Regular-webfont.svg [new file with mode: 0644]
docs/jsapi/fonts/OpenSans-Regular-webfont.woff [new file with mode: 0644]
docs/jsapi/fs.js.html [new file with mode: 0644]
docs/jsapi/index.html [new file with mode: 0644]
docs/jsapi/luci.js.html [new file with mode: 0644]
docs/jsapi/network.js.html [new file with mode: 0644]
docs/jsapi/rpc.js.html [new file with mode: 0644]
docs/jsapi/scripts/linenumber.js [new file with mode: 0644]
docs/jsapi/scripts/prettify/Apache-License-2.0.txt [new file with mode: 0644]
docs/jsapi/scripts/prettify/lang-css.js [new file with mode: 0644]
docs/jsapi/scripts/prettify/prettify.js [new file with mode: 0644]
docs/jsapi/styles/jsdoc-default.css [new file with mode: 0644]
docs/jsapi/styles/prettify-jsdoc.css [new file with mode: 0644]
docs/jsapi/styles/prettify-tomorrow.css [new file with mode: 0644]
docs/jsapi/uci.js.html [new file with mode: 0644]
documentation/CBI.md [deleted file]
documentation/JsonRpcHowTo.md [deleted file]
documentation/LAR.md [deleted file]
documentation/LMO.md [deleted file]
documentation/LuCI-0.10.md [deleted file]
documentation/Modules.md [deleted file]
documentation/ModulesHowTo.md [deleted file]
documentation/Templates.md [deleted file]
documentation/ThemesHowTo.md [deleted file]
documentation/api/index.html [deleted file]
documentation/api/luadoc.css [deleted file]
documentation/api/modules/luci.dispatcher.html [deleted file]
documentation/api/modules/luci.http.conditionals.html [deleted file]
documentation/api/modules/luci.http.date.html [deleted file]
documentation/api/modules/luci.http.html [deleted file]
documentation/api/modules/luci.http.mime.html [deleted file]
documentation/api/modules/luci.i18n.html [deleted file]
documentation/api/modules/luci.ip.cidr.html [deleted file]
documentation/api/modules/luci.ip.html [deleted file]
documentation/api/modules/luci.json.html [deleted file]
documentation/api/modules/luci.jsonc.html [deleted file]
documentation/api/modules/luci.jsonc.parser.html [deleted file]
documentation/api/modules/luci.model.ipkg.html [deleted file]
documentation/api/modules/luci.model.uci.html [deleted file]
documentation/api/modules/luci.rpcc.html [deleted file]
documentation/api/modules/luci.rpcc.ruci.html [deleted file]
documentation/api/modules/luci.sys.html [deleted file]
documentation/api/modules/luci.sys.init.html [deleted file]
documentation/api/modules/luci.sys.iptparser.html [deleted file]
documentation/api/modules/luci.sys.net.html [deleted file]
documentation/api/modules/luci.sys.process.html [deleted file]
documentation/api/modules/luci.sys.user.html [deleted file]
documentation/api/modules/luci.sys.wifi.html [deleted file]
documentation/api/modules/luci.util.html [deleted file]
documentation/api/modules/nixio.CHANGELOG.html [deleted file]
documentation/api/modules/nixio.CryptoHash.html [deleted file]
documentation/api/modules/nixio.File.html [deleted file]
documentation/api/modules/nixio.README.html [deleted file]
documentation/api/modules/nixio.Socket.html [deleted file]
documentation/api/modules/nixio.TLSContext.html [deleted file]
documentation/api/modules/nixio.TLSSocket.html [deleted file]
documentation/api/modules/nixio.UnifiedIO.html [deleted file]
documentation/api/modules/nixio.bin.html [deleted file]
documentation/api/modules/nixio.bit.html [deleted file]
documentation/api/modules/nixio.crypto.html [deleted file]
documentation/api/modules/nixio.fs.html [deleted file]
documentation/api/modules/nixio.html [deleted file]
documentation/i18n.md [deleted file]
documentation/jsapi/LuCI.Class.html [deleted file]
documentation/jsapi/LuCI.Headers.html [deleted file]
documentation/jsapi/LuCI.Network.Device.html [deleted file]
documentation/jsapi/LuCI.Network.Hosts.html [deleted file]
documentation/jsapi/LuCI.Network.Protocol.html [deleted file]
documentation/jsapi/LuCI.Network.WifiDevice.html [deleted file]
documentation/jsapi/LuCI.Network.WifiNetwork.html [deleted file]
documentation/jsapi/LuCI.Network.html [deleted file]
documentation/jsapi/LuCI.Poll.html [deleted file]
documentation/jsapi/LuCI.Request.html [deleted file]
documentation/jsapi/LuCI.Request.poll.html [deleted file]
documentation/jsapi/LuCI.Response.html [deleted file]
documentation/jsapi/LuCI.XHR.html [deleted file]
documentation/jsapi/LuCI.dom.html [deleted file]
documentation/jsapi/LuCI.fs.html [deleted file]
documentation/jsapi/LuCI.html [deleted file]
documentation/jsapi/LuCI.rpc.html [deleted file]
documentation/jsapi/LuCI.uci.html [deleted file]
documentation/jsapi/LuCI.view.html [deleted file]
documentation/jsapi/fonts/OpenSans-Bold-webfont.eot [deleted file]
documentation/jsapi/fonts/OpenSans-Bold-webfont.svg [deleted file]
documentation/jsapi/fonts/OpenSans-Bold-webfont.woff [deleted file]
documentation/jsapi/fonts/OpenSans-BoldItalic-webfont.eot [deleted file]
documentation/jsapi/fonts/OpenSans-BoldItalic-webfont.svg [deleted file]
documentation/jsapi/fonts/OpenSans-BoldItalic-webfont.woff [deleted file]
documentation/jsapi/fonts/OpenSans-Italic-webfont.eot [deleted file]
documentation/jsapi/fonts/OpenSans-Italic-webfont.svg [deleted file]
documentation/jsapi/fonts/OpenSans-Italic-webfont.woff [deleted file]
documentation/jsapi/fonts/OpenSans-Light-webfont.eot [deleted file]
documentation/jsapi/fonts/OpenSans-Light-webfont.svg [deleted file]
documentation/jsapi/fonts/OpenSans-Light-webfont.woff [deleted file]
documentation/jsapi/fonts/OpenSans-LightItalic-webfont.eot [deleted file]
documentation/jsapi/fonts/OpenSans-LightItalic-webfont.svg [deleted file]
documentation/jsapi/fonts/OpenSans-LightItalic-webfont.woff [deleted file]
documentation/jsapi/fonts/OpenSans-Regular-webfont.eot [deleted file]
documentation/jsapi/fonts/OpenSans-Regular-webfont.svg [deleted file]
documentation/jsapi/fonts/OpenSans-Regular-webfont.woff [deleted file]
documentation/jsapi/fs.js.html [deleted file]
documentation/jsapi/index.html [deleted file]
documentation/jsapi/luci.js.html [deleted file]
documentation/jsapi/network.js.html [deleted file]
documentation/jsapi/rpc.js.html [deleted file]
documentation/jsapi/scripts/linenumber.js [deleted file]
documentation/jsapi/scripts/prettify/Apache-License-2.0.txt [deleted file]
documentation/jsapi/scripts/prettify/lang-css.js [deleted file]
documentation/jsapi/scripts/prettify/prettify.js [deleted file]
documentation/jsapi/styles/jsdoc-default.css [deleted file]
documentation/jsapi/styles/prettify-jsdoc.css [deleted file]
documentation/jsapi/styles/prettify-tomorrow.css [deleted file]
documentation/jsapi/uci.js.html [deleted file]

index 5518d8fe7b8e4133889cc4e3c4f1a2f5c86ffe0a..56954eee9e9c832e45a320432895b2c5ac08905d 100644 (file)
--- a/README.md
+++ b/README.md
@@ -23,8 +23,8 @@ To install all its package definitions, run:
 
 You can browse the generated API documentation directly on Github.
 
- - [Server side Lua APIs](http://htmlpreview.github.io/?http://raw.githubusercontent.com/openwrt/luci/master/documentation/api/index.html)
- - [Client side JavaScript APIs](http://htmlpreview.github.io/?http://raw.githubusercontent.com/openwrt/luci/master/documentation/jsapi/index.html)
+ - [Server side Lua APIs](http://htmlpreview.github.io/?http://raw.githubusercontent.com/openwrt/luci/master/docs/api/index.html)
+ - [Client side JavaScript APIs](http://htmlpreview.github.io/?http://raw.githubusercontent.com/openwrt/luci/master/docs/jsapi/index.html)
 
 ## Development
 
diff --git a/docs/CBI.md b/docs/CBI.md
new file mode 100644 (file)
index 0000000..933380d
--- /dev/null
@@ -0,0 +1,246 @@
+
+# CBI models
+are Lua files describing the structure of an UCI config file and the resulting HTML form to be evaluated by the CBI parser.<br />
+All CBI model files must return an object of type **luci.cbi.Map**.<br />
+For a commented example of a CBI model, see the [Writing Modules tutorial](ModulesHowTo.md#cbimodels).
+
+The scope of a CBI model file is automatically extended by the contents of the module **luci.cbi** and the _translate_ function from **luci.i18n**
+
+This Reference covers **the basics** of the CBI system.
+
+
+## class Map (_config, title, description_)
+This is the root object of the model.
+
+* **config:** configuration filename to be mapped, see [UCI documentation](https://openwrt.org/docs/guide-user/base-system/uci) and the files in /etc/config
+* **title:** title shown in the UI
+* **description:** description shown in the UI
+
+#### function :section (_sectionclass_, ...)
+Creates a new section
+* **sectionclass**: a class object of the section
+* _additional parameters passed to the constructor of the section class_
+
+----
+
+## class NamedSection (_name, type, title, description_)
+An object describing an UCI section selected by the name.<br />
+To instantiate use: `Map:section(NamedSection, "name", "type", "title", "description")`
+
+* **name:** UCI section name
+* **type:** UCI section type
+* **title:** The title shown in the UI
+* **description:** description shown in the UI
+
+#### function :option(_optionclass_, ...)
+Creates a new option
+* **optionclass:** a class object of the section
+* _additional parameters passed to the constructor of the option class_
+
+#### property .addremove = false
+Allows the user to remove and recreate the configuration section.
+
+#### property .dynamic = false
+Marks this section as dynamic. Dynamic sections can contain an undefinded number of completely userdefined options.
+
+#### property .optional = true
+Parse optional options
+
+----
+
+## class TypedSection (_type, title, description_)
+An object describing a group of UCI sections selected by their type.<br />
+To instantiate use: `Map:section(TypedSection, "type", "title", "description")`
+* **type:** UCI section type
+* **title:** The title shown in the UI
+* **description:** description shown in the UI
+
+#### function :option(_optionclass_, ...)
+Creates a new option
+ **optionclass:** a class object of the section
+ _additional parameters passed to the constructor of the option class_
+
+#### function :depends(_key, value_)
+Only select those sections where _key == value_ <br />
+If you call this function several times the dependencies will be linked with **"or"**
+
+#### function .filter(_self, section_) -abstract-
+You can override this function to filter certain sections that will not be parsed.
+The filter function will be called for every section that should be parsed and returns **nil** for sections that should be filtered. For all other sections it should return the section name as given in the second parameter.
+
+#### property .addremove = false
+Allows the user to remove and recreate the configuration section
+
+#### property .dynamic = false
+Marks this section as dynamic. Dynamic sections can contain an undefinded number of completely userdefined options.
+
+#### property .optional = true
+Parse optional options
+
+#### property .anonymous = false
+Do not show UCI section names
+
+----
+
+## class Value (_option, title, description_)
+An object describing an option in a section of a UCI File. Creates a standard text field in the formular.<br />
+To instantiate use: `NamedSection:option(Value, "option", "title", "description")`<br />
+ or `TypedSection:option(Value, "option", "title", "description")`
+* **option:** UCI option name
+* **title:** The title shown in the UI
+* **description:** description shown in the UI
+
+#### function :depends(key, value)
+Only show this option field if another option _key_ is set to _value_ in the same section.<br />
+If you call this function several times the dependencies will be linked with **"or"**
+
+#### function :value(key, value)
+Convert this text field into a combobox if possible and add a selection option.
+
+#### property .default = nil
+The default value
+
+#### property .maxlength = nil
+The maximum inputlength (of chars) of the value
+
+#### property .optional = false
+Marks this option as optional, implies .rmempty = true
+
+#### property .rmempty = true
+Removes this option from the configuration file when the user enters an empty value
+
+#### property .size = nil
+The maximum number of chars displayed by form field
+
+----
+
+## class ListValue (_option, title, description_)
+An object describing an option in a section of a UCI File.<br />
+Creates a list box or list of radio (for selecting one of many choices) in the formular.<br />
+To instantiate use: `NamedSection:option(ListValue, "option", "title", "description")`<br />
+or `TypedSection:option(ListValue, "option", "title", "description")`
+* **option:** UCI option name
+* **title:** The title shown in the UI
+* **description:** description shown in the UI
+
+#### function :depends(key, value)
+Only show this option field if another option _key_ is set to _value_ in the same section.<br />
+If you call this function several times the dependencies will be linked with **"or"**
+
+#### function :value(_key, value_)
+Adds an entry to the selection list
+
+#### property .widget = "select"
+**"select"** shows a selection list, **"radio"** shows a list of radio buttons inside form
+
+#### property .default = nil
+The default value
+
+#### property .optional = false
+Marks this option as optional, implies .rmempty = true
+
+#### property .rmempty = true
+Removes this option from the configuration file when the user enters an empty value
+
+#### property .size = nil
+The size of the form field
+
+----
+
+## class Flag (_option, title, description_)
+An object describing an option with two possible values in a section of a UCI File.<br />
+Creates a checkbox field in the formular.<br />
+To instantiate use: `NamedSection:option(Flag, "option", ""title", "description")`<br />
+ or `TypedSection:option(Flag, "option", "title", "description")`
+* **option:** UCI option name
+* **title:** The title shown in the UI
+* **description:** description shown in the UI
+
+#### function :depends (_key, value_)
+Only show this option field if another option _key_ is set to _value_ in the same section.<br />
+If you call this function several times the dependencies will be linked with **"or"**
+
+#### property .default = nil
+The default value
+
+#### property .disabled = 0
+the value that should be set if the checkbox is unchecked
+
+#### property .enabled = 1
+the value that should be set if the checkbox is checked
+
+#### property .optional = false
+Marks this option as optional, implies .rmempty = true
+
+#### property .rmempty = true
+Removes this option from the configuration file when the user enters an empty value
+
+----
+
+## class MultiValue (_option'', ''title'', ''description_)
+An object describing an option in a section of a UCI File.<br />
+Creates a list of checkboxed or a multiselectable list as form fields.<br />
+To instantiate use: `NamedSection:option(MultiValue, "option", ""title", "description")`<br />
+ or `TypedSection:option(MultiValue, "option", "title", "description")`
+* **option:** UCI option name
+* **title:** The title shown in the UI
+* **description:** description shown in the UI
+
+#### function :depends (_key, value_)
+Only show this option field if another option _key_ is set to _value_ in the same section.<br />
+If you call this function several times the dependencies will be linked with **"or"**
+
+#### function :value(_key, value_)
+Adds an entry to the list
+
+#### property .widget = "checkbox"
+**"select"** shows a selection list, **"checkbox"** shows a list of checkboxes inside form
+
+#### property .delimiter = " "
+The string which will be used to delimit the values inside stored option
+
+#### property .default = nil
+The default value
+
+#### property .optional = false
+Marks this option as optional, implies .rmempty = true
+
+#### property .rmempty = true
+Removes this option from the configuration file when the user enters an empty value
+
+#### property .size = nil
+The size of the form field (only used if property _.widget = "select"_)
+
+----
+
+## class StaticList (_option, title, description_)
+Similar to the MultiValue, but stores selected Values into a UCI list instead of a character-separated option.
+
+----
+
+## class DynamicList (_option, title, description_)
+A extensible list of user-defined values. Stores Values into a UCI list
+
+----
+
+## class DummyValue (_option, title, description_)
+Creates a readonly text in the form. !It writes no data to UCI!<br />
+To instantiate use: `NamedSection:option(DummyValue, "option", ""title", "description")`<br />
+ or `TypedSection:option(DummyValue, "option", "title", "description")`
+* **option:** UCI option name
+* **title:** The title shown in the UI
+* **description:** description shown in the UI
+
+#### property :depends (_key, value_)
+Only show this option field if another option _key_ is set to _value_ in the same section.<br />
+If you call this function several times the dependencies will be linked with **"or"**
+
+----
+
+## class TextValue (_option, title, description_)
+An object describing a multi-line textbox in a section in a non-UCI form.
+
+----
+
+## class Button (_option, title, description_)
+An object describing a Button in a section in a non-UCI form.
diff --git a/docs/JsonRpcHowTo.md b/docs/JsonRpcHowTo.md
new file mode 100644 (file)
index 0000000..76d61f8
--- /dev/null
@@ -0,0 +1,66 @@
+LuCI provides some of its libraries to external applications through a JSON-RPC API.
+This Howto shows how to use it and provides information about available functions.
+
+
+# Basics
+LuCI comes with an efficient JSON De-/Encoder together with a JSON-RPC-Server which implements the *JSON-RPC 1.0_' and 2.0 (partly) specifications. The LuCI JSON-RPC server offers several independent APIs. Therefore you have to use '_different URLs for every exported library*.
+Assuming your LuCI-Installation can be reached through */cgi-bin/luci_' any exported library can be reached via '''/cgi-bin/luci/rpc/''LIBRARY_*.
+
+
+# Authentication
+Most exported libraries will require a valid authentication to be called with. If you get an *HTTP 403 Forbidden_' status code you are probably missing a valid authentication token. To get such a token you have to call the function '''login''' of the RPC-Library '''auth'''. Following our example from above this login function would be provided at '_/cgi-bin/luci/rpc/auth*. The function accepts 2 parameters: username and password (of a valid user account on the host system) and returns an authentication token.
+
+If you want to call any exported library which requires an authentication token you have to *append it as an URL parameter _auth''''' to the RPC-Server URL. So instead of calling '''/cgi-bin/luci/rpc/''LIBRARY''''' you have to call '''/cgi-bin/luci/rpc/''LIBRARY''?auth=''TOKEN_*.
+
+If your JSON-RPC client is Cookie-aware (like most browsers are) you will receive the authentication token also with a session cookie and probably don't have to append it to the RPC-Server URL.
+
+
+# Exported Libraries
+## uci
+The UCI-Library */rpc/uci* offers functionality to interact with the Universal Configuration Interface.
+*Exported Functions:*
+* [(string) add(config, type)](http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.add)
+* [(integer) apply(config)](http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.apply)
+* [http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.changes (object) changes([config])]
+* [(boolean) commit(config)](http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.commit)
+* [http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.delete (boolean) delete(config, section[, option])]
+* [http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.delete_all (boolean) delete_all(config[, type])]
+* [http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.foreach (array) foreach(config[, type])]
+* [http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.get (mixed) get(config, section[, option])]
+* [http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.get_all (object) get_all(config[, section])]
+* [http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.get (mixed) get_state(config, section[, option])]
+* [(boolean) revert(config)](http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.revert)
+* [(name) section(config, type, name, values)](http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.section)
+* [(boolean) set(config, section, option, value)](http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.set)
+* [(boolean) tset(config, section, values)](http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.tset)
+
+## uvl
+The UVL-Library */rpc/uvl* offers functionality to validate UCI files and get schemes describing UCI files.
+*Exported Functions:*
+* [(array) get_scheme(scheme)](http://luci.subsignal.org/api/luci/modules/luci.uvl.html#UVL.get_scheme)
+* [(array) validate(config, section, option)](http://luci.subsignal.org/api/luci/modules/luci.uvl.html#UVL.validate)
+* [(array) validate_config(config)](http://luci.subsignal.org/api/luci/modules/luci.uvl.html#UVL.validate_config)
+* [(array) validate_section(config, section)](http://luci.subsignal.org/api/luci/modules/luci.uvl.html#UVL.validate_section)
+* [(array) validate(config, section, option)](http://luci.subsignal.org/api/luci/modules/luci.uvl.html#UVL.validate_option)
+
+## fs
+The Filesystem library */rpc/fs* offers functionality to interact with the filesystem on the host machine.
+*Exported Functions:*
+
+* [Complete luci.fs library](http://luci.subsignal.org/api/luci/modules/luci.fs.html)
+*Note:* All functions are exported as they are except for _readfile'' which encodes its return value in base64 and ''writefile'' which only accepts base64 encoded data as second argument. Note that both functions will only be available when the ''luasocket_ packet is installed on the hostsystem.
+
+## sys
+The System library */rpc/sys* offers functionality to interact with the operating system on the host machine.
+*Exported Functions:*
+* [Complete luci.sys library](http://luci.subsignal.org/api/luci/modules/luci.sys.html)
+* [Complete luci.sys.group library](http://luci.subsignal.org/api/luci/modules/luci.sys.group.html) with prefix *group.*
+* [Complete luci.sys.net library](http://luci.subsignal.org/api/luci/modules/luci.sys.net.html) with prefix *net.*
+* [Complete luci.sys.process library](http://luci.subsignal.org/api/luci/modules/luci.sys.process.html) with prefix *process.*
+* [Complete luci.sys.user library](http://luci.subsignal.org/api/luci/modules/luci.sys.user.html) with prefix *user.*
+* [Complete luci.sys.wifi library](http://luci.subsignal.org/api/luci/modules/luci.sys.wifi.html) with prefix *wifi.*
+
+## ipkg
+The IPKG library */rpc/ipkg* offers functionality to interact with the package manager (IPKG or OPKG) on the host machine.
+*Exported Functions:*
+* [Complete luci.model.ipkg library](http://luci.subsignal.org/api/luci/modules/luci.model.ipkg.html)
diff --git a/docs/LAR.md b/docs/LAR.md
new file mode 100644 (file)
index 0000000..457b076
--- /dev/null
@@ -0,0 +1,87 @@
+LAR is a simple archive format to pack multiple lua source files and arbitrary other resources into a single file.
+
+
+# Format Specification
+
+A LAR archive file is divided into two parts: the payload and the index lookup table.
+All segments of the archive are 4 Byte aligned to ease reading and processing of the format.
+All integers are stored in network byte order, so an implementation has to use htonl() and htons() to properly read them.
+
+Schema:
+       
+       <payload:
+         <member:
+           <N*4 bytes: path of file #1>
+           <N*4 bytes: data of file #1>
+         >
+         
+         <member:
+           <N*4 bytes: path of file #2>
+           <N*4 bytes: data of file #2>
+         >
+       
+         ...
+       
+         <member:
+           <N*4 bytes: path of file #N>
+           <N*4 bytes: data of file #N>
+         >
+       >
+       
+       <index table:
+         <entry:
+           <uint32: offset for path of file #1> <uint32: length for path of file #1>
+           <uint32: offset for data of file #1> <uint32: length for data of file #1>
+           <uint16: type of file #1> <uint16: flags of file #1>
+         >
+       
+         <entry:
+           <uint32: offset for path of file #2> <uint32: length for path of file #2>
+           <uint32: offset for data of file #2> <uint32: length for data of file #2>
+           <uint16: type of file #2> <uint16: flags of file #2>
+         >
+       
+         ...
+       
+         <entry:
+           <uint32: offset for path of file #N> <uint32: length for path of file #N>
+           <uint32: offset for data of file #N> <uint32: length for data of file #N>
+           <uint16: type of file #N> <uint16: flags of file #N>
+         >
+       >
+       
+       <uint32: offset for begin of index table>
+       
+
+
+# Processing
+
+In order to process an LAR archive, an implementation would have to do the following steps:
+
+## Read Index
+
+1. Locate and open the archive file
+1. Seek to end of file - 4 bytes
+1. Read 32bit index offset and swap from network to native byte order
+1. Seek to index offset, calculate index length: filesize - index offset - 4
+1. Initialize a linked list for index table entries
+1. Read each index entry until the index length is reached, read and byteswap 4 * 32bit int and 2 * 16bit int
+1. Seek to begin of file
+
+## Read Member
+
+1. Read the archive index
+1. Iterate through the linked index list, perform the following steps for each entry
+1. Seek to the specified file path offset
+1. Read as much bytes as specified in the file path length into a buffer
+1. Compare the contents of the buffer against the path of the searched member
+1. If buffer and searched path are equal, seek to the specified file data offset
+1. Read data until the file data length is reached, return
+1. Select the next index table entry and repeat from step 3, if there is no next entry then return
+
+# Reference implementation
+
+A reference implementation can be found here:
+http://luci.subsignal.org/trac/browser/luci/trunk/contrib/lar
+
+The lar.pl script is a simple packer for LAR archives and cli.c provides a utility to list and dump packed LAR archives.
diff --git a/docs/LMO.md b/docs/LMO.md
new file mode 100644 (file)
index 0000000..961a45b
--- /dev/null
@@ -0,0 +1,144 @@
+LMO is a simple binary format to pack language strings into a more efficient form. Although it's suitable to store any kind of key-value table, it's only used for the LuCI *.po based translation system at the moment. The abbreviation "LMO" stands for "Lua Machine Objects" in the style of the GNU gettext *.mo format.
+
+
+# Format Specification
+
+A LMO file is divided into two parts: the payload and the index lookup table.
+All segments of the file are 4 Byte aligned to ease reading and processing of the format.
+Only unsigned 32bit integers are used and stored in network byte order, so an implementation has to use htonl() to properly read them.
+
+Schema:
+       
+       <file:
+         <payload:
+           <entry #1: 4 byte aligned data>
+       
+           <entry #2: 4 byte aligned data>
+       
+           ...
+       
+           <entry #N: 4 byte aligned data>
+         >
+       
+         <index table:
+           <entry #1:
+             <uint32_t: hash of the first key>
+             <uint32_t: hash of the first value>
+             <uint32_t: file offset of the first value>
+             <uint32_t: length of the first value>
+           >
+       
+           <entry #2:
+             <uint32_t: hash of the second key>
+             <uint32_t: hash of the second value>
+             <uint32_t: file offset of the second value>
+             <uint32_t: length of the second value>
+           >
+       
+           ...
+       
+           <entry #N:
+             <uint32_t: hash of the Nth key>
+             <uint32_t: hash of the Nth value>
+             <uint32_t: file offset of the Nth value>
+             <uint32_t: length of the Nth value>
+           >
+         >
+       
+         <uint32_t: offset of the begin of index table>
+       >
+       
+
+
+# Processing
+
+In order to process a LMO file, an implementation would have to do the following steps:
+
+## Read Index
+
+1. Locate and open the archive file
+1. Seek to end of file - 4 bytes (sizeof(uint32_t))
+1. Read 32bit index offset and swap from network to native byte order
+1. Seek to index offset, calculate index length: filesize - index offset - 4
+1. Initialize a linked list for index table entries
+1. Read each index entry until the index length is reached, read and byteswap 4 * uint32_t for each step
+1. Seek to begin of file
+
+## Read Entry
+
+1. Calculate the unsigned 32bit hash of the entries key value (see "Hash Function" section below)
+1. Obtain the archive index
+1. Iterate through the linked index list, perform the following steps for each entry:
+  1. Compare the entry hash value with the calculated hash from step 1
+  2. If the hash values are equal proceed with step 4
+  3. Select the next entry and repeat from step 3.1
+1. Seek to the file offset specified in the selected entry
+1. Read as much bytes as specified in the entry length into a buffer
+1. Return the buffer value
+
+# Hash Function
+
+The current LuCI-LMO implementation uses the "Super Fast Hash" function which was kindly put in the public domain by it's original author. See http://www.azillionmonkeys.com/qed/hash.html for details. Below is the C-Implementation of this function:
+
+       
+       #if (defined(__GNUC__) && defined(__i386__))
+       #define sfh_get16(d) (*((const uint16_t *) (d)))
+       #else
+       #define sfh_get16(d) ((((uint32_t)(((const uint8_t *)(d))[1])) << 8)\
+                                                  +(uint32_t)(((const uint8_t *)(d))[0]) )
+       #endif
+       
+       uint32_t sfh_hash(const char * data, int len)
+       {
+               uint32_t hash = len, tmp;
+               int rem;
+       
+               if (len <= NULL) return 0;
+       
+               rem = len & 3;
+               len >>= 2;
+       
+               /* Main loop */
+               for (;len > 0; len--) {
+                       hash  += sfh_get16(data);
+                       tmp    = (sfh_get16(data+2) << 11) ^ hash;
+                       hash   = (hash << 16) ^ tmp;
+                       data  += 2*sizeof(uint16_t);
+                       hash  += hash >> 11;
+               }
+       
+               /* Handle end cases */
+               switch (rem) {
+                       case 3: hash += sfh_get16(data);
+                               hash ^= hash << 16;
+                               hash ^= data[sizeof(uint16_t)] << 18;
+                               hash += hash >> 11;
+                               break;
+                       case 2: hash += sfh_get16(data);
+                               hash ^= hash << 11;
+                               hash += hash >> 17;
+                               break;
+                       case 1: hash += *data;
+                               hash ^= hash << 10;
+                               hash += hash >> 1;
+               }
+       
+               /* Force "avalanching" of final 127 bits */
+               hash ^= hash << 3;
+               hash += hash >> 5;
+               hash ^= hash << 4;
+               hash += hash >> 17;
+               hash ^= hash << 25;
+               hash += hash >> 6;
+       
+               return hash;
+       }
+       
+
+# Reference Implementation
+
+A reference implementation can be found here:
+http://luci.subsignal.org/trac/browser/luci/trunk/libs/lmo/src
+
+The lmo_po2lmo.c executable implements a *.po to *.lmo conversation utility and lmo_lookup.c is a simple *.lmo test utility.
+Lua bindings for lmo are defined in lmo_lualib.c and associated headers.
diff --git a/docs/LuCI-0.10.md b/docs/LuCI-0.10.md
new file mode 100644 (file)
index 0000000..5db9895
--- /dev/null
@@ -0,0 +1,202 @@
+[[PageOutline(2-5, Table of Contents, floated)]]
+
+
+This document describes new features and incompatibilities to LuCI 0.9.x.
+It is targeted at module authors developing external addons to LuCI.
+
+# I18N Changes
+
+## API
+
+The call conventions for the i18n api changed, there is no dedicated translation
+key anymore and the english text is used for lookup instead. This was done to
+ease the maintenance of language files.
+
+Code that uses _translate()'' or ''i18n()_ must be changed as follows:
+
+       
+       -- old style:
+       translate("some_text", "Some Text")
+       translatef("some_format_text", "Some formatted Text: %d", 123)
+       
+       -- new style:
+       translate("Some Text")
+       translatef("Some formatted Text: %d", 123)
+       
+
+Likewise for templates:
+
+       
+       <!-- old style: -->
+       <%:some_text Some Text%>
+       
+       <!-- new style: -->
+       <%:Some Text%>
+       
+
+If code must support both LuCI 0.9.x and 0.10.x versions, it is suggested to write the calls as follows:
+       
+       translate("Some Text", "Some Text")
+       
+
+An alternative is wrapping translate() calls into a helper function:
+       
+       function tr(key, alt)
+           return translate(key) or translate(alt) or alt
+       end
+       
+
+... which is used as follows:
+       
+       tr("some_key", "Some Text")
+       
+
+## Translation File Format
+
+Translation catalogs are now maintained in *.po format files. During build those get translated
+into [*.lmo archives](http://luci.subsignal.org/trac/wiki/Documentation/LMO).
+
+LuCI ships a [utility script](http://luci.subsignal.org/trac/browser/luci/branches/luci-0.10/build/i18n-lua2po.pl)
+in the build/ directory to convert old Lua translation files to the *.po format. The generated *.po files should
+be placed in the appropriate subdirectories within the top po/ file in the LuCI source tree.
+
+### Components built within the LuCI tree
+
+If components using translations are built along with the LuCI tree, the newly added *.po file are automatically
+compiled into *.lmo archives during the build process. In order to bundle the appropriate *.lmo files into the
+corresponding *.ipk packages, component Makefiles must include a "PO" variable specifying the files to include.
+
+Given a module _applications/example/'' which uses ''po/en/example.po'' and ''po/en/example-extra.po_,
+the _applications/example/Makefile_ must be changed as follows:
+
+       
+       PO = example example-extra
+       
+       include ../../build/config.mk
+       include ../../build/module.mk
+       
+
+### Standalone components
+
+Authors who externally package LuCI components must prepare required *.lmo archives themselves.
+To convert existing Lua based message catalogs to the *.po format, the build/i18n-lua2po.pl helper script can be used.
+In order to convert *.po files into *.lmo files, the standalone "po2lmo" utility must be compiled as follows:
+
+       
+       $ svn co http://svn.luci.subsignal.org/luci/branches/luci-0.10/libs/lmo
+       $ cd lmo/
+       $ make
+       $ ./src/po2lmo translations.po translations.lmo
+       
+
+Note that at the time of writing, the utility program needs Lua headers installed on the system in order to compile properly.
+
+# CBI
+
+## Datatypes
+
+The server side UVL validation has been dropped to reduce space requirements on the target.
+Instead it is possible to define datatypes for CBI widgets now:
+
+       
+       opt = section:option(Value, "optname", "Title Text")
+       opt.datatype = "ip4addr"
+       
+
+User provided data is validated once on the frontend via JavaScript and on the server side prior to saving it.
+A list of possible datatypes can be found in the [luci.cbi.datatypes](http://luci.subsignal.org/trac/browser/luci/branches/luci-0.10/libs/web/luasrc/cbi/datatypes.lua#L26) class.
+
+## Validation
+
+Server-sided validator function can now return custom error messages to provide better feedback on invalid input.
+
+       
+       opt = section:option(Value, "optname", "Title Text")
+       
+       function opt.validate(self, value, section)
+           if input_is_valid(value) then
+               return value
+           else
+               return nil, "The value is invalid because ..."
+           end
+       end
+       
+
+## Tabs
+
+It is now possible to break up CBI sections into multiple tabs to better organize longer forms.
+The TypedSection and NamedSection classes gained two new functions to define tabs, _tab()'' and ''taboption()_.
+
+       
+       sct = map:section(TypedSection, "name", "type", "Title Text")
+       
+       sct:tab("general", "General Tab Title", "General Tab Description")
+       sct:tab("advanced", "Advanced Tab Title", "Advanced Tab Description")
+       
+       opt = sct:taboption("general", Value, "optname", "Title Text")
+       ...
+       
+
+The _tab()_ function is declares a new tab and takes up to three arguments:
+  * Internal name of the tab, must be unique within the section
+  * Title text of the tab
+  * Optional description text for the tab
+
+The _taboption()'' function wraps ''option()_ and assigns the option object to the given tab.
+It takes up to five arguments:
+
+  * Name of the tab to assign the option to
+  * Option type, e.g. Value or DynamicList
+  * Option name
+  * Title text of the option
+  * Optional description text of the option
+
+If tabs are used within a particular section, the _option()_ function must not be used,
+doing so results in undefined behaviour.
+
+## Hooks
+
+The CBI gained support for _hooks_ which can be used to trigger additional actions during the
+life-cycle of a map:
+
+       
+       map = Map("config", "Title Text")
+       
+       function map.on_commit(self)
+           -- do something if the UCI configuration got committed
+       end
+       
+
+The following hooks are defined:
+
+|| on_cancel || The user pressed cancel within a multi-step Delegator or a SimpleForm instance || 
+|| on_init || The CBI is about to render the Map object ||
+|| on_parse || The CBI is about to read received HTTP form values ||
+|| on_save, on_before_save || The CBI is about to save modified UCI configuration files ||
+|| on_after_save || Modified UCI configuration files just got saved
+|| on_before_commit || The CBI is about to commit the changes ||
+|| on_commit, on_after_commit, on_before_apply || Modified configurations got committed and the CBI is about to restart associated services ||
+|| on_apply, on_after_apply || All changes where completely applied (only works on Map instances with the apply_on_parse attribute set) ||
+
+## Sortable Tables
+
+TypedSection instances which use the "cbi/tblsection" template may now use a new attribute _sortable_ to allow the user to reorder table rows.
+
+       
+       sct = map:section(TypedSection, "name", "type", "Title Text")
+       sct.template = "cbi/tblsection"
+       sct.sortable = true
+       
+       ...
+       
+
+# JavaScript
+
+The LuCI 0.10 branch introduced a new JavaScript file _xhr.js_ which provides support routines for XMLHttpRequest operations.
+Each theme must include this file in the <head> area of the document for forms to work correctly.
+
+It should be included like this:
+
+       
+       <script type="text/javascript" src="<%=resource%>/xhr.js"></script>
+       
\ No newline at end of file
diff --git a/docs/Modules.md b/docs/Modules.md
new file mode 100644 (file)
index 0000000..2897df9
--- /dev/null
@@ -0,0 +1,94 @@
+# Categories
+
+The LuCI modules are divided into several category directories, namely:
+* applications (Single applications or plugins for other modules or applications)
+* i18n (Translation files)
+* libs (Independent libraries)
+* modules (Collections of applications)
+* themes (Frontend themes)
+
+Each module goes into a subdirectory of any of this category-directories.
+
+# Module directory
+The contents of a module directory are as follows:
+
+## Makefile
+This is the module's makefile. If the module just contains Lua sourcecode or resources then the following Makefile should suffice.
+       
+       include ../../build/config.mk
+       include ../../build/module.mk
+       
+
+If you have C(++) code in your module your Makefile should at least contain the following things.
+       
+       include ../../build/config.mk
+       include ../../build/gccconfig.mk
+       include ../../build/module.mk
+       
+       compile:
+           # Commands to compile and link your C-code
+           # and to install them under the dist/ hierarchy
+       
+       clean: luaclean
+           # Commands to clean your compiled objects
+       
+
+## src
+The *src* directory is reserved for C sourcecode.
+
+## luasrc
+*luasrc* contains all Lua sourcecode files. These will automatically be stripped or compiled depending on the Make target and are installed in the LuCI installation directory.
+
+## lua
+*lua* is equivalent to _luasrc_ but containing Lua files will be installed in the Lua document root.
+
+## htdocs
+All files under *htdocs* will be copied to the document root of the target webserver.
+
+## root
+All directories and files under *root* will be copied to the installation target as they are.
+
+## dist
+*dist* is reserved for the builder to create a working installation tree that will represent the filesystem on the target machine.
+*DO NOT* put any files there as they will get deleted.
+
+## ipkg
+*ipkg* contains IPKG package control files, like _preinst'', ''posinst'', ''prerm'', ''postrm''. ''conffiles_.
+See IPKG documentation for details.
+
+
+# OpenWRT feed integration
+If you want to add your module to the LuCI OpenWRT feed you have to add several sections to the contrib/package/luci/Makefile.
+
+For a Web UI applications this is:
+
+A package description:
+       
+       define Package/luci-app-YOURMODULE
+         $(call Package/luci/webtemplate)
+         DEPENDS+=+some-package +some-other-package
+         TITLE:=SHORT DESCRIPTION OF YOURMODULE
+       endef
+       
+       
+
+A package installation target:
+       
+       define Package/luci-app-YOURMODULE/install
+               $(call Package/luci/install/template,$(1),applications/YOURMODULE)
+       endef
+       
+
+A module build instruction:
+       
+       ifneq ($(CONFIG_PACKAGE_luci-app-YOURMODULE),)
+               PKG_SELECTED_MODULES+=applications/YOURMODULE
+       endif
+       
+
+
+A build package call:
+       
+       $(eval $(call BuildPackage,luci-app-YOURMODULE))
+       
diff --git a/docs/ModulesHowTo.md b/docs/ModulesHowTo.md
new file mode 100644 (file)
index 0000000..7efed83
--- /dev/null
@@ -0,0 +1,153 @@
+*Note:* If you plan to integrate your module into LuCI, you should read the [wiki:Documentation/Modules Module Reference] before.
+
+This tutorial describes how to write your own modules for the LuCI WebUI.
+For this tutorial we refer to your LuCI installation directory as *lucidir_' (/usr/lib/lua/luci if you are working with an installed version) and assume your LuCI installation is reachable through your webserver via '_/cgi-bin/luci*.
+
+If you are working with the development environment replace *lucidir_' with '''''/path/to/your/luci/checkout''/applications/myapplication/luasrc''' (this is a default empty module you can use for your experiments) and your LuCI installation can probably be reached via http://localhost:8080/luci/ after you ran '_make runhttpd*.
+
+
+
+# Show me the way (The dispatching process)
+To write a module you need to understand the basics of the dispatching process in LuCI.
+LuCI uses a dispatching tree that will be built by executing the index-Function of every available controller.
+The CGI-environment variable *PATH_INFO* will be used as the path in this dispatching tree, e.g.: /cgi-bin/luci/foo/bar/baz
+will be resolved to foo.bar.baz
+
+To register a function in the dispatching tree, you can use the *entry*-function of _luci.dispatcher_. entry takes 4 arguments (2 are optional):
+       
+       entry(path, target, title=nil, order=nil)
+       
+
+* *path* is a table that describes the position in the dispatching tree: For example a path of {"foo", "bar", "baz"} would insert your node in foo.bar.baz.
+* *target* describes the action that will be taken when a user requests the node. There are several predefined ones of which the 3 most important (call, template, cbi) are described later on on this page
+* *title* defines the title that will be visible to the user in the menu (optional)
+* *order* is a number with which nodes on the same level will be sorted in the menu (optional)
+
+You can assign more attributes by manipulating the node table returned by the entry-function. A few example attributes:
+
+* *i18n* defines which translation file should be automatically loaded when the page gets requested
+* *dependent* protects plugins to be called out of their context if a parent node is missing
+* *leaf* stops parsing the request at this node and goes no further in the dispatching tree
+* *sysauth* requires the user to authenticate with a given system user account
+
+
+# It's all about names (Naming and the module file)
+Now that you know the basics about dispatching, we can start writing modules. But before you have to choose the category and name of your new digital child.
+
+We assume you want to create a new application "myapp" with a module "mymodule".
+
+So you have to create a new subdirectory *_lucidir''/controller/myapp''' with a file '_mymodule.lua* with the following content:
+       
+       module("luci.controller.myapp.mymodule", package.seeall)
+       
+       function index()
+       
+       end
+       
+
+The first line is required for Lua to correctly identify the module and create its scope.
+The index-Function will be used to register actions in the dispatching tree.
+
+
+
+# Teaching your new child (Actions)
+So it is there and has a name but it has no actions.
+
+We assume you want to reuse your module myapp.mymodule that you begun in the last step.
+
+
+## Actions
+Reopen *_lucidir_/controller/myapp/mymodule.lua* and just add a function to it so that its content looks like this example:
+
+       
+       module("luci.controller.myapp.mymodule", package.seeall)
+       
+       function index()
+           entry({"click", "here", "now"}, call("action_tryme"), "Click here", 10).dependent=false
+       end
+        
+       function action_tryme()
+           luci.http.prepare_content("text/plain")
+           luci.http.write("Haha, rebooting now...")
+           luci.sys.reboot()
+       end
+       
+
+And now type */cgi-bin/luci/click/here/now_' ('_[http://localhost:8080/luci/click/here/now]* if you are using the development environment) in your browser.
+
+You see these action functions simple have to be added to a dispatching entry.
+
+As you might or might not know: CGI specification requires you to send a Content-Type header before you can send your content. You will find several shortcuts (like the one used above) as well as redirecting functions in the module *luci.http*
+
+## Views
+If you only want to show the user a text or some interesting familiy photos it may be enough to use a HTML-template. These templates can also include some Lua code but be aware that writing whole office suites by only using these templates might be called "dirty" by other developers.
+
+Now let's create a little template *_lucidir_/view/myapp-mymodule/helloworld.htm* with the content:
+
+       
+       <%+header%>
+       <h1><%:Hello World%></h1> 
+       <%+footer%>
+       
+
+
+and add the following line to the index-Function of your module file.
+       
+       entry({"my", "new", "template"}, template("myapp-mymodule/helloworld"), "Hello world", 20).dependent=false
+       
+
+Now type */cgi-bin/luci/my/new/template_' ('_[http://localhost:8080/luci/my/new/template]* if you are using the development environment) in your browser.
+
+You may notice those fancy <% %>-Tags, these are [wiki:Documentation/Templates|template markups] used by the LuCI template processor.
+It is always good to include header and footer at the beginning and end of a template as those create the default design and menu.
+
+## <a name=cbimodels></a> CBI models
+The CBI is one of the uber coolest features of LuCI. It creates a formular based user interface and saves its contents to a specific UCI config file. You only have to describe the structure of the configuration file in a CBI model file and Luci does the rest of the work. This includes generating, parsing and validating a XHTML form and reading and writing the UCI file.
+
+So let's be serious at least for this paragraph and create a real pratical example *_lucidir_/model/cbi/myapp-mymodule/netifaces.lua* with the following contents:
+
+       
+       m = Map("network", "Network") -- We want to edit the uci config file /etc/config/network
+       
+       s = m:section(TypedSection, "interface", "Interfaces") -- Especially the "interface"-sections
+       s.addremove = true -- Allow the user to create and remove the interfaces
+       function s:filter(value)
+          return value ~= "loopback" and value -- Don't touch loopback
+       end 
+       s:depends("proto", "static") -- Only show those with "static"
+       s:depends("proto", "dhcp") -- or "dhcp" as protocol and leave PPPoE and PPTP alone
+       
+       p = s:option(ListValue, "proto", "Protocol") -- Creates an element list (select box)
+       p:value("static", "static") -- Key and value pairs
+       p:value("dhcp", "DHCP")
+       p.default = "static"
+       
+       s:option(Value, "ifname", "interface", "the physical interface to be used") -- This will give a simple textbox
+       
+       s:option(Value, "ipaddr", translate("ip", "IP Address")) -- Ja, das ist eine i18n-Funktion ;-)
+       
+       s:option(Value, "netmask", "Netmask"):depends("proto", "static") -- You may remember this "depends" function from above
+       
+       mtu = s:option(Value, "mtu", "MTU")
+       mtu.optional = true -- This one is very optional
+       
+       dns = s:option(Value, "dns", "DNS-Server")
+       dns:depends("proto", "static")
+       dns.optional = true
+       function dns:validate(value) -- Now, that's nifty, eh?
+           return value:match("[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+") -- Returns nil if it doesn't match otherwise returns match
+       end
+       
+       gw = s:option(Value, "gateway", "Gateway")
+       gw:depends("proto", "static")
+       gw.rmempty = true -- Remove entry if it is empty
+       
+       return m -- Returns the map
+       
+
+and of course don't forget to add something like this to your module's index-Function.
+       
+       entry({"admin", "network", "interfaces"}, cbi("myapp-mymodule/netifaces"), "Network interfaces", 30).dependent=false
+       
+
+There are many more features, see [wiki:Documentation/CBI the CBI reference] and the modules shipped with LuCI.
diff --git a/docs/Templates.md b/docs/Templates.md
new file mode 100644 (file)
index 0000000..adf019c
--- /dev/null
@@ -0,0 +1,65 @@
+LuCI has a simple regex based template processor which parses HTML-files to Lua functions and allows to store precompiled template files.
+The simplest form of a template is just an ordinary HTML-file. It will be printed out to the user as is.
+
+In LuCI every template is an object with an own scope. It can therefore be instantiated and each instance can has a different scope. As every template processor. LuCI supports several special markups. Those are enclosed in `<% %>`-Tags.
+
+By adding `-` (dash) right after the opening `<%` every whitespace before the markup will be stripped. Adding a `-` right before the closing `%>` will equivalently strip every whitespace behind the markup.
+
+
+# Builtin functions and markups
+## Including Lua code
+*Markup:*
+       
+       <% code %>
+       
+
+
+## Writing variables and function values
+*Syntax:*
+       
+       <% write (value) %>
+       
+
+*Short-Markup:*
+       
+       <%=value%>
+       
+
+## Including templates
+*Syntax:*
+       
+       <% include (templatename) %>
+       
+
+*Short-Markup:*
+       
+       <%+templatename%>
+       
+
+
+## Translating
+*Syntax:*
+       
+       <%= translate("Text to translate") %>
+       
+
+
+*Short-Markup:*
+       
+       <%:Text to translate%>
+       
+
+
+## Commenting
+*Markup:*
+       
+       <%# comment %>
+       
+
+# Builtin constants
+| Name | Value |
+---------|---------
+|`REQUEST_URI`|The current URL (without server part)|
+|`controller`|Path to the Luci main dispatcher|
+|`resource`|Path to the resource directory|
+|`media`|Path to the active theme directory|
diff --git a/docs/ThemesHowTo.md b/docs/ThemesHowTo.md
new file mode 100644 (file)
index 0000000..ae6f8e0
--- /dev/null
@@ -0,0 +1,76 @@
+# HowTo: Create Themes
+*Note:* You should read the [Module Reference](Modules.md) and the [Template Reference](Templates.md) before.
+
+We assume you want to call your new theme _mytheme_. Make sure you replace this by your module name every time this is mentionend in this Howto.
+
+
+
+# Creating the structure
+At first create a new theme directory *themes/_mytheme_*.
+
+Create a _Makefile_ inside your theme directory with the following content:
+       
+       include ../../build/config.mk
+       include ../../build/module.mk
+       
+
+Create the following directory structure inside your theme directory.
+* ipkg
+* htdocs
+  * luci-static
+   * _mytheme_
+* luasrc
+  * view
+   * themes
+    * _mytheme_
+* root
+  * etc
+   * uci-defaults
+
+
+
+# Designing
+Create two LuCI HTML-Templates named _header.htm'' and ''footer.htm'' under *luasrc/view/themes/''mytheme_*.
+The _header.htm'' will be included at the beginning of each rendered page and the ''footer.htm_ at the end.
+So your _header.htm'' will probably contain a DOCTYPE description, headers, the menu and layout of the page and the ''footer.htm_ will close all remaining open tags and may add a footer bar but hey that's your choice you are the designer ;-).
+
+Just make sure your _header.htm_ *begins* with the following lines:
+       
+       <%
+       require("luci.http").prepare_content("text/html")
+       -%>
+       
+
+This makes sure your content will be sent to the client with the right content type. Of course you can adapt _text/html_ to your needs.
+
+
+Put any stylesheets, Javascripts, images, ... into *htdocs/luci-static/_mytheme_*.
+You should refer to this directory in your header and footer templates as: _<%=media%>''. That means for a stylesheet *htdocs/luci-static/''mytheme_/cascade.css* you would write:
+       
+       <link rel="stylesheet" type="text/css" href="<%=media%>/cascade.css" />
+       
+
+
+
+# Making the theme selectable
+If you are done with your work there are two last steps to do.
+To make your theme OpenWRT-capable and selectable on the settings page you should now create a file *root/etc/uci-defaults/luci-theme-_mytheme_* with the following contents:
+       
+       #!/bin/sh
+       uci batch <<-EOF
+               set luci.themes.MyTheme=/luci-static/mytheme
+               commit luci
+       EOF
+       
+
+and another file *ipkg/postinst* with the following content:
+       
+       #!/bin/sh
+       [ -n "${IPKG_INSTROOT}" ] || {
+               ( . /etc/uci-defaults/luci-theme-mytheme ) &&        rm -f /etc/uci-defaults/luci-theme-mytheme
+       }
+       
+
+This is some OpenWRT magic to correctly register the template with LuCI when it gets installed.
+
+That's all. Now send your theme to the LuCI developers to get it into the development repository - if you like.
diff --git a/docs/api/index.html b/docs/api/index.html
new file mode 100644 (file)
index 0000000..5e3f3c2
--- /dev/null
@@ -0,0 +1,426 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><strong>Index</strong></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+</div> <!-- id="navigation" -->
+
+<div id="content">
+
+
+
+<h2>Modules</h2>
+<table class="module_list">
+<!--<tr><td colspan="2">Modules</td></tr>-->
+
+       <tr>
+               <td class="name"><a href="modules/luci.dispatcher.html">luci.dispatcher</a></td>
+               <td class="summary"></td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/luci.http.html">luci.http</a></td>
+               <td class="summary"></td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/luci.http.conditionals.html">luci.http.conditionals</a></td>
+               <td class="summary"></td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/luci.http.date.html">luci.http.date</a></td>
+               <td class="summary"></td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/luci.http.mime.html">luci.http.mime</a></td>
+               <td class="summary"></td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/luci.i18n.html">luci.i18n</a></td>
+               <td class="summary"></td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/luci.ip.html">luci.ip</a></td>
+               <td class="summary">
+ LuCI IP calculation and netlink access library.</td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/luci.ip.cidr.html">luci.ip.cidr</a></td>
+               <td class="summary">
+ IP CIDR Object.</td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/luci.json.html">luci.json</a></td>
+               <td class="summary"></td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/luci.jsonc.html">luci.jsonc</a></td>
+               <td class="summary">
+ LuCI JSON parsing and serialization library.</td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/luci.jsonc.parser.html">luci.jsonc.parser</a></td>
+               <td class="summary">
+ LuCI JSON parser instance.</td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/luci.model.ipkg.html">luci.model.ipkg</a></td>
+               <td class="summary"></td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/luci.model.uci.html">luci.model.uci</a></td>
+               <td class="summary"></td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/luci.rpcc.html">luci.rpcc</a></td>
+               <td class="summary"></td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a></td>
+               <td class="summary"></td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/luci.sys.html">luci.sys</a></td>
+               <td class="summary"></td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/luci.sys.init.html">luci.sys.init</a></td>
+               <td class="summary">
+LuCI system utilities / init related functions.</td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/luci.sys.iptparser.html">luci.sys.iptparser</a></td>
+               <td class="summary"></td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/luci.sys.net.html">luci.sys.net</a></td>
+               <td class="summary">
+LuCI system utilities / network related functions.</td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/luci.sys.process.html">luci.sys.process</a></td>
+               <td class="summary">
+LuCI system utilities / process related functions.</td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/luci.sys.user.html">luci.sys.user</a></td>
+               <td class="summary">
+LuCI system utilities / user related functions.</td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/luci.sys.wifi.html">luci.sys.wifi</a></td>
+               <td class="summary">
+LuCI system utilities / wifi related functions.</td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/luci.util.html">luci.util</a></td>
+               <td class="summary"></td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/nixio.html">nixio</a></td>
+               <td class="summary">
+ General POSIX IO library.</td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a></td>
+               <td class="summary">
+ Changes and improvements.</td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/nixio.CryptoHash.html">nixio.CryptoHash</a></td>
+               <td class="summary">
+ Cryptographical Hash and HMAC object.</td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/nixio.File.html">nixio.File</a></td>
+               <td class="summary">
+ Large File Object.</td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/nixio.README.html">nixio.README</a></td>
+               <td class="summary">
+ General Information.</td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/nixio.Socket.html">nixio.Socket</a></td>
+               <td class="summary">
+ Socket Object.</td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/nixio.TLSContext.html">nixio.TLSContext</a></td>
+               <td class="summary">
+ Transport Layer Security Context Object.</td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/nixio.TLSSocket.html">nixio.TLSSocket</a></td>
+               <td class="summary">
+ TLS Socket Object.</td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a></td>
+               <td class="summary">
+ Unified high-level I/O utility API for Files, Sockets and TLS-Sockets.</td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/nixio.bin.html">nixio.bin</a></td>
+               <td class="summary">
+ Binary operations and conversion.</td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/nixio.bit.html">nixio.bit</a></td>
+               <td class="summary">
+ Bitfield operators and mainpulation functions.</td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/nixio.crypto.html">nixio.crypto</a></td>
+               <td class="summary">
+ Cryptographical library.</td>
+       </tr>
+
+       <tr>
+               <td class="name"><a href="modules/nixio.fs.html">nixio.fs</a></td>
+               <td class="summary">
+ Low-level and high-level filesystem manipulation library.</td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" --> 
+</body>
+</html>
diff --git a/docs/api/luadoc.css b/docs/api/luadoc.css
new file mode 100644 (file)
index 0000000..f9f9749
--- /dev/null
@@ -0,0 +1,285 @@
+body { 
+    margin-left: 1em; 
+    margin-right: 1em; 
+    font-family: arial, helvetica, geneva, sans-serif;
+       background-color:#ffffff; margin:0px;
+}
+
+code {
+    font-family: "Andale Mono", monospace; 
+}
+
+tt {
+    font-family: "Andale Mono", monospace; 
+}
+
+body, td, th { font-size: 11pt; }
+
+h1, h2, h3, h4 { margin-left: 0em; }
+
+textarea, pre, tt { font-size:10pt; }
+body, td, th { color:#000000; }
+small { font-size:0.85em; }
+h1 { font-size:1.5em; }
+h2 { font-size:1.25em; }
+h3 { font-size:1.15em; }
+h4 { font-size:1.06em; }
+
+a:link { font-weight:bold; color: #004080; text-decoration: none; }
+a:visited { font-weight:bold; color: #006699; text-decoration: none; }
+a:link:hover { text-decoration:underline; }
+hr { color:#cccccc }
+img { border-width: 0px; }
+
+
+h3 { padding: 1em 0 0.5em; }
+
+p { margin-left: 1em; }
+
+p.name { 
+    font-family: "Andale Mono", monospace; 
+    padding-top: 1em;
+    margin-left: 0em; 
+}
+
+blockquote { margin-left: 3em; }
+
+pre.example {
+    background-color: rgb(245, 245, 245);
+    border-top-width: 1px;
+    border-right-width: 1px;
+    border-bottom-width: 1px;
+    border-left-width: 1px;
+    border-top-style: solid;
+    border-right-style: solid;
+    border-bottom-style: solid;
+    border-left-style: solid;
+    border-top-color: silver;
+    border-right-color: silver;
+    border-bottom-color: silver;
+    border-left-color: silver;
+    padding: 1em;
+    margin-left: 1em;
+    margin-right: 1em;
+    font-family: "Andale Mono", monospace; 
+    font-size: smaller;
+}
+
+
+hr { 
+    margin-left: 0em;
+       background: #00007f; 
+       border: 0px;
+       height: 1px;
+}
+
+ul { list-style-type: disc; }
+
+table.index { border: 1px #00007f; }
+table.index td { text-align: left; vertical-align: top; }
+table.index ul { padding-top: 0em; margin-top: 0em; }
+
+table {
+    border: 1px solid black;
+    border-collapse: collapse;
+    margin: 1em auto;
+}
+th {
+    border: 1px solid black;
+    padding: 0.5em;
+}
+td {
+    border: 1px solid black;
+    padding: 0.5em;
+}
+div.header, div.footer { margin-left: 0em; }
+
+#container
+{
+       margin-left: 1em;
+       margin-right: 1em;
+       background-color: #f0f0f0;
+}
+
+#product
+{
+       text-align: center;
+       border-bottom: 1px solid #cccccc;
+       background-color: #ffffff;
+}
+
+#product big {
+       font-size: 2em;
+}
+
+#product_logo
+{
+}
+
+#product_name
+{
+}
+
+#product_description
+{
+}
+
+#main
+{
+       background-color: #f0f0f0;
+       border-left: 2px solid #cccccc;
+}
+
+#navigation
+{
+       float: left;
+       width: 18em;
+       margin: 0;
+       vertical-align: top;
+       background-color: #f0f0f0;
+       overflow:visible;
+}
+
+#navigation h1 {
+       background-color:#e7e7e7;
+       font-size:1.1em;
+       color:#000000;
+       text-align:left;
+       margin:0px;
+       padding:0.2em;
+       border-top:1px solid #dddddd;
+       border-bottom:1px solid #dddddd;
+}
+
+#navigation ul
+{
+       font-size:1em;
+       list-style-type: none;
+       padding: 0;
+       margin: 1px;
+}
+
+#navigation li
+{
+       text-indent: -1em;
+       margin: 0em 0em 0em 0.5em;
+       display: block;
+       padding: 3px 0px 0px 12px;
+}
+
+#navigation li li a
+{
+       padding: 0px 3px 0px -1em;
+}
+
+#content
+{
+       margin-left: 18em;
+       padding: 1em;
+       border-left: 2px solid #cccccc;
+       border-right: 2px solid #cccccc;
+       background-color: #ffffff;
+}
+
+#about
+{
+       clear: both;
+       margin: 0;
+       padding: 5px;
+       border-top: 2px solid #cccccc;
+       background-color: #ffffff;
+}
+
+@media print {
+       body { 
+               font: 12pt "Times New Roman", "TimeNR", Times, serif;
+       }
+       a { font-weight:bold; color: #004080; text-decoration: underline; }
+       
+       #main\r  {\r              background-color: #ffffff;\r             border-left: 0px;\r      }\r      
+       #container\r     {\r              margin-left: 2%;\r               margin-right: 2%;\r              background-color: #ffffff;\r     }
+       
+       #content\r       {\r              margin-left: 0px;\r              padding: 1em;\r          border-left: 0px;\r              border-right: 0px;\r             background-color: #ffffff;\r     }
+       
+       #navigation\r    {\r              display: none;
+       }
+       pre.example {
+               font-family: "Andale Mono", monospace; 
+               font-size: 10pt;
+               page-break-inside: avoid;
+       }
+}
+
+table.module_list td
+{
+       border-width: 1px;
+       padding: 3px;
+       border-style: solid;
+       border-color: #cccccc;
+}
+table.module_list td.name { background-color: #f0f0f0; }
+table.module_list td.summary { width: 100%; }
+
+table.file_list
+{
+       border-width: 1px;
+       border-style: solid;
+       border-color: #cccccc;
+       border-collapse: collapse;
+}
+table.file_list td
+{
+       border-width: 1px;
+       padding: 3px;
+       border-style: solid;
+       border-color: #cccccc;
+}
+table.file_list td.name { background-color: #f0f0f0; }
+table.file_list td.summary { width: 100%; }
+
+
+table.function_list
+{
+       border-width: 1px;
+       border-style: solid;
+       border-color: #cccccc;
+       border-collapse: collapse;
+}
+table.function_list td
+{
+       border-width: 1px;
+       padding: 3px;
+       border-style: solid;
+       border-color: #cccccc;
+}
+table.function_list td.name { background-color: #f0f0f0; }
+table.function_list td.summary { width: 100%; }
+
+
+table.table_list
+{
+       border-width: 1px;
+       border-style: solid;
+       border-color: #cccccc;
+       border-collapse: collapse;
+}
+table.table_list td
+{
+       border-width: 1px;
+       padding: 3px;
+       border-style: solid;
+       border-color: #cccccc;
+}
+table.table_list td.name { background-color: #f0f0f0; }
+table.table_list td.summary { width: 100%; }
+
+dl.function dt {border-top: 1px solid #ccc; padding-top: 1em;}
+dl.function dd {padding: 0.5em 0;}
+dl.function h3 {margin: 0; font-size: medium;}
+
+dl.table dt {border-top: 1px solid #ccc; padding-top: 1em;}
+dl.table dd {padding-bottom: 1em;}
+dl.table h3 {padding: 0; margin: 0; font-size: medium;}
+
+#TODO: make module_list, file_list, function_list, table_list inherit from a list
+
diff --git a/docs/api/modules/luci.dispatcher.html b/docs/api/modules/luci.dispatcher.html
new file mode 100644 (file)
index 0000000..ea33a5c
--- /dev/null
@@ -0,0 +1,1145 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li><strong>luci.dispatcher</strong></li>
+       
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Class <code>luci.dispatcher</code></h1>
+
+<p></p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#_">_</a>&nbsp;()</td>
+       <td class="summary">
+No-op function used to mark translation entries for menu labels.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#alias">alias</a>&nbsp;(...)</td>
+       <td class="summary">
+Create a redirect to another dispatching node.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#arcombine">arcombine</a>&nbsp;(trg1, trg2)</td>
+       <td class="summary">
+Create a combined dispatching target for non argv and argv requests.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#assign">assign</a>&nbsp;(path, clone, title, order)</td>
+       <td class="summary">
+Clone a node of the dispatching tree to another position.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#build_url">build_url</a>&nbsp;(...)</td>
+       <td class="summary">
+Build the URL relative to the server webroot from given virtual path.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#call">call</a>&nbsp;(name, ...)</td>
+       <td class="summary">
+Create a function-call dispatching target.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#cbi">cbi</a>&nbsp;(model)</td>
+       <td class="summary">
+Create a CBI model dispatching target.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#createindex">createindex</a>&nbsp;()</td>
+       <td class="summary">
+Generate the dispatching index using the native file-cache based strategy.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#createtree">createtree</a>&nbsp;()</td>
+       <td class="summary">
+Create the dispatching tree from the index.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#dispatch">dispatch</a>&nbsp;(request)</td>
+       <td class="summary">
+Dispatches a LuCI virtual path.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#entry">entry</a>&nbsp;(path, target, title, order)</td>
+       <td class="summary">
+Create a new dispatching node and define common parameters.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#error404">error404</a>&nbsp;(message)</td>
+       <td class="summary">
+Send a 404 error code and render the "error404" template if available.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#error500">error500</a>&nbsp;(message)</td>
+       <td class="summary">
+Send a 500 error code and render the "error500" template if available.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#firstchild">firstchild</a>&nbsp;()</td>
+       <td class="summary">
+Alias the first (lowest order) page automatically 
+ </td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#form">form</a>&nbsp;(model)</td>
+       <td class="summary">
+Create a CBI form model dispatching target.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#get">get</a>&nbsp;(...)</td>
+       <td class="summary">
+Fetch or create a dispatching node without setting the target module or 
+enabling the node.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#httpdispatch">httpdispatch</a>&nbsp;(request)</td>
+       <td class="summary">
+Dispatch an HTTP request.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#lookup">lookup</a>&nbsp;(...)</td>
+       <td class="summary">
+Lookup node in dispatching tree.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#node">node</a>&nbsp;(...)</td>
+       <td class="summary">
+Fetch or create a new dispatching node.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#node_childs">node_childs</a>&nbsp;(node)</td>
+       <td class="summary">
+Return a sorted table of visible children within a given node 
+ </td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#node_visible">node_visible</a>&nbsp;(node)</td>
+       <td class="summary">
+Check whether a dispatch node shall be visible 
+ </td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#rewrite">rewrite</a>&nbsp;(n, ...)</td>
+       <td class="summary">
+Rewrite the first x path values of the request.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#template">template</a>&nbsp;(name)</td>
+       <td class="summary">
+Create a template render dispatching target.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#translate">translate</a>&nbsp;(text)</td>
+       <td class="summary">
+Access the luci.i18n translate() api.</td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="_"></a><strong>_</strong>&nbsp;()</dt>
+<dd>
+
+No-op function used to mark translation entries for menu labels. 
+This function does not actually translate the given argument but 
+is used by build/i18n-scan.pl to find translatable entries. 
+
+
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="alias"></a><strong>alias</strong>&nbsp;(...)</dt>
+<dd>
+
+Create a redirect to another dispatching node. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         ...: Virtual path destination
+       </li>
+       
+</ul>
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="arcombine"></a><strong>arcombine</strong>&nbsp;(trg1, trg2)</dt>
+<dd>
+
+Create a combined dispatching target for non argv and argv requests. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         trg1: Overview Target
+       </li>
+       
+       <li>
+         trg2: Detail Target
+       </li>
+       
+</ul>
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="assign"></a><strong>assign</strong>&nbsp;(path, clone, title, order)</dt>
+<dd>
+
+Clone a node of the dispatching tree to another position. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         path: Virtual path destination
+       </li>
+       
+       <li>
+         clone: Virtual path source
+       </li>
+       
+       <li>
+         title: Destination node title (optional)
+       </li>
+       
+       <li>
+         order: Destination node order value (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Dispatching tree node
+
+
+
+</dd>
+
+
+
+
+<dt><a name="build_url"></a><strong>build_url</strong>&nbsp;(...)</dt>
+<dd>
+
+Build the URL relative to the server webroot from given virtual path. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         ...: Virtual path
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Relative URL
+
+
+
+</dd>
+
+
+
+
+<dt><a name="call"></a><strong>call</strong>&nbsp;(name, ...)</dt>
+<dd>
+
+Create a function-call dispatching target. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         name: Target function of local controller
+       </li>
+       
+       <li>
+         ...: Additional parameters passed to the function
+       </li>
+       
+</ul>
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="cbi"></a><strong>cbi</strong>&nbsp;(model)</dt>
+<dd>
+
+Create a CBI model dispatching target. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         model: CBI model to be rendered
+       </li>
+       
+</ul>
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="createindex"></a><strong>createindex</strong>&nbsp;()</dt>
+<dd>
+
+Generate the dispatching index using the native file-cache based strategy. 
+
+
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="createtree"></a><strong>createtree</strong>&nbsp;()</dt>
+<dd>
+
+Create the dispatching tree from the index. 
+Build the index before if it does not exist yet. 
+
+
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="dispatch"></a><strong>dispatch</strong>&nbsp;(request)</dt>
+<dd>
+
+Dispatches a LuCI virtual path. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         request: Virtual path
+       </li>
+       
+</ul>
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="entry"></a><strong>entry</strong>&nbsp;(path, target, title, order)</dt>
+<dd>
+
+Create a new dispatching node and define common parameters. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         path: Virtual path
+       </li>
+       
+       <li>
+         target: Target function to call when dispatched.
+       </li>
+       
+       <li>
+         title: Destination node title
+       </li>
+       
+       <li>
+         order: Destination node order value (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Dispatching tree node
+
+
+
+</dd>
+
+
+
+
+<dt><a name="error404"></a><strong>error404</strong>&nbsp;(message)</dt>
+<dd>
+
+Send a 404 error code and render the "error404" template if available. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         message: Custom error message (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+false
+
+
+
+</dd>
+
+
+
+
+<dt><a name="error500"></a><strong>error500</strong>&nbsp;(message)</dt>
+<dd>
+
+Send a 500 error code and render the "error500" template if available. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         message: Custom error message (optional)#
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+false
+
+
+
+</dd>
+
+
+
+
+<dt><a name="firstchild"></a><strong>firstchild</strong>&nbsp;()</dt>
+<dd>
+
+Alias the first (lowest order) page automatically 
+
+
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="form"></a><strong>form</strong>&nbsp;(model)</dt>
+<dd>
+
+Create a CBI form model dispatching target. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         model: CBI form model tpo be rendered
+       </li>
+       
+</ul>
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="get"></a><strong>get</strong>&nbsp;(...)</dt>
+<dd>
+
+Fetch or create a dispatching node without setting the target module or 
+enabling the node. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         ...: Virtual path
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Dispatching tree node
+
+
+
+</dd>
+
+
+
+
+<dt><a name="httpdispatch"></a><strong>httpdispatch</strong>&nbsp;(request)</dt>
+<dd>
+
+Dispatch an HTTP request. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         request: LuCI HTTP Request object
+       </li>
+       
+</ul>
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="lookup"></a><strong>lookup</strong>&nbsp;(...)</dt>
+<dd>
+
+Lookup node in dispatching tree. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         ...: Virtual path
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Node object, canonical url or nil if the path was not found.
+
+
+
+</dd>
+
+
+
+
+<dt><a name="node"></a><strong>node</strong>&nbsp;(...)</dt>
+<dd>
+
+Fetch or create a new dispatching node. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         ...: Virtual path
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Dispatching tree node
+
+
+
+</dd>
+
+
+
+
+<dt><a name="node_childs"></a><strong>node_childs</strong>&nbsp;(node)</dt>
+<dd>
+
+Return a sorted table of visible children within a given node 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         node: Dispatch node
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Ordered table of child node names
+
+
+
+</dd>
+
+
+
+
+<dt><a name="node_visible"></a><strong>node_visible</strong>&nbsp;(node)</dt>
+<dd>
+
+Check whether a dispatch node shall be visible 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         node: Dispatch node
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean indicating whether the node should be visible
+
+
+
+</dd>
+
+
+
+
+<dt><a name="rewrite"></a><strong>rewrite</strong>&nbsp;(n, ...)</dt>
+<dd>
+
+Rewrite the first x path values of the request. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         n: Number of path values to replace
+       </li>
+       
+       <li>
+         ...: Virtual path to replace removed path values with
+       </li>
+       
+</ul>
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="template"></a><strong>template</strong>&nbsp;(name)</dt>
+<dd>
+
+Create a template render dispatching target. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         name: Template to be rendered
+       </li>
+       
+</ul>
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="translate"></a><strong>translate</strong>&nbsp;(text)</dt>
+<dd>
+
+Access the luci.i18n translate() api. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         text: Text to translate
+       </li>
+       
+</ul>
+
+
+
+
+
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/luci.http.conditionals.html b/docs/api/modules/luci.http.conditionals.html
new file mode 100644 (file)
index 0000000..8c940bd
--- /dev/null
@@ -0,0 +1,552 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li><strong>luci.http.conditionals</strong></li>
+       
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Class <code>luci.http.conditionals</code></h1>
+
+<p></p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#if_match">if_match</a>&nbsp;(req, stat)</td>
+       <td class="summary">
+14.24 / If-Match 
+Test whether the given message object contains an "If-Match" header and 
+compare it against the given stat object.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#if_modified_since">if_modified_since</a>&nbsp;(req, stat)</td>
+       <td class="summary">
+14.25 / If-Modified-Since 
+Test whether the given message object contains an "If-Modified-Since" header 
+and compare it against the given stat object.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#if_none_match">if_none_match</a>&nbsp;(req, stat)</td>
+       <td class="summary">
+14.26 / If-None-Match 
+Test whether the given message object contains an "If-None-Match" header and 
+compare it against the given stat object.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#if_range">if_range</a>&nbsp;(req, stat)</td>
+       <td class="summary">
+14.27 / If-Range 
+The If-Range header is currently not implemented due to the lack of general 
+byte range stuff in luci.http.protocol .</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#if_unmodified_since">if_unmodified_since</a>&nbsp;(req, stat)</td>
+       <td class="summary">
+14.28 / If-Unmodified-Since 
+Test whether the given message object contains an "If-Unmodified-Since" 
+header and compare it against the given stat object.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#mk_etag">mk_etag</a>&nbsp;(stat)</td>
+       <td class="summary">
+Implement 14.19 / ETag.</td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="if_match"></a><strong>if_match</strong>&nbsp;(req, stat)</dt>
+<dd>
+
+14.24 / If-Match 
+Test whether the given message object contains an "If-Match" header and 
+compare it against the given stat object.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         req: HTTP request message object
+       </li>
+       
+       <li>
+         stat: A file.stat object
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>Boolean indicating whether the precondition is ok
+       
+       <li>Alternative status code if the precondition failed
+       
+</ol>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="if_modified_since"></a><strong>if_modified_since</strong>&nbsp;(req, stat)</dt>
+<dd>
+
+14.25 / If-Modified-Since 
+Test whether the given message object contains an "If-Modified-Since" header 
+and compare it against the given stat object.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         req: HTTP request message object
+       </li>
+       
+       <li>
+         stat: A file.stat object
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>Boolean indicating whether the precondition is ok
+       
+       <li>Alternative status code if the precondition failed
+       
+       <li>Table containing extra HTTP headers if the precondition failed
+       
+</ol>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="if_none_match"></a><strong>if_none_match</strong>&nbsp;(req, stat)</dt>
+<dd>
+
+14.26 / If-None-Match 
+Test whether the given message object contains an "If-None-Match" header and 
+compare it against the given stat object.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         req: HTTP request message object
+       </li>
+       
+       <li>
+         stat: A file.stat object
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>Boolean indicating whether the precondition is ok
+       
+       <li>Alternative status code if the precondition failed
+       
+       <li>Table containing extra HTTP headers if the precondition failed
+       
+</ol>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="if_range"></a><strong>if_range</strong>&nbsp;(req, stat)</dt>
+<dd>
+
+14.27 / If-Range 
+The If-Range header is currently not implemented due to the lack of general 
+byte range stuff in luci.http.protocol . This function will always return 
+false, 412 to indicate a failed precondition.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         req: HTTP request message object
+       </li>
+       
+       <li>
+         stat: A file.stat object
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>Boolean indicating whether the precondition is ok
+       
+       <li>Alternative status code if the precondition failed
+       
+</ol>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="if_unmodified_since"></a><strong>if_unmodified_since</strong>&nbsp;(req, stat)</dt>
+<dd>
+
+14.28 / If-Unmodified-Since 
+Test whether the given message object contains an "If-Unmodified-Since" 
+header and compare it against the given stat object.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         req: HTTP request message object
+       </li>
+       
+       <li>
+         stat: A file.stat object
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>Boolean indicating whether the precondition is ok
+       
+       <li>Alternative status code if the precondition failed
+       
+</ol>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="mk_etag"></a><strong>mk_etag</strong>&nbsp;(stat)</dt>
+<dd>
+
+Implement 14.19 / ETag. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         stat: A file.stat structure
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing the generated tag suitable for ETag headers
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/luci.http.date.html b/docs/api/modules/luci.http.date.html
new file mode 100644 (file)
index 0000000..1ec5beb
--- /dev/null
@@ -0,0 +1,406 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li><strong>luci.http.date</strong></li>
+       
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Class <code>luci.http.date</code></h1>
+
+<p></p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#compare">compare</a>&nbsp;(d1, d2)</td>
+       <td class="summary">
+Compare two dates which can either be unix epoch times or HTTP date strings.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#to_http">to_http</a>&nbsp;(time)</td>
+       <td class="summary">
+Convert the given unix epoch time to valid HTTP date string.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#to_unix">to_unix</a>&nbsp;(data)</td>
+       <td class="summary">
+Parse given HTTP date string and convert it to unix epoch time.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#tz_offset">tz_offset</a>&nbsp;(tz)</td>
+       <td class="summary">
+Return the time offset in seconds between the UTC and given time zone.</td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="compare"></a><strong>compare</strong>&nbsp;(d1, d2)</dt>
+<dd>
+
+Compare two dates which can either be unix epoch times or HTTP date strings. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         d1: The first date or epoch time to compare
+       </li>
+       
+       <li>
+         d2: The first date or epoch time to compare
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>-1  -  if d1 is lower then d2
+       
+       <li>0   -  if both dates are equal
+       
+       <li>1   -  if d1 is higher then d2
+       
+</ol>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="to_http"></a><strong>to_http</strong>&nbsp;(time)</dt>
+<dd>
+
+Convert the given unix epoch time to valid HTTP date string. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         time: Unix epoch time
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing the formatted date
+
+
+
+</dd>
+
+
+
+
+<dt><a name="to_unix"></a><strong>to_unix</strong>&nbsp;(data)</dt>
+<dd>
+
+Parse given HTTP date string and convert it to unix epoch time. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         data: String containing the date
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Unix epoch time
+
+
+
+</dd>
+
+
+
+
+<dt><a name="tz_offset"></a><strong>tz_offset</strong>&nbsp;(tz)</dt>
+<dd>
+
+Return the time offset in seconds between the UTC and given time zone. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         tz: Symbolic or numeric timezone specifier
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Time offset to UTC in seconds
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/luci.http.html b/docs/api/modules/luci.http.html
new file mode 100644 (file)
index 0000000..4731727
--- /dev/null
@@ -0,0 +1,1267 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li><strong>luci.http</strong></li>
+       
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Class <code>luci.http</code></h1>
+
+<p></p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#build_querystring">build_querystring</a>&nbsp;(table)</td>
+       <td class="summary">
+Create a querystring out of a table of key - value pairs.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#close">close</a>&nbsp;()</td>
+       <td class="summary">
+Close the HTTP-Connection.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#content">content</a>&nbsp;()</td>
+       <td class="summary">
+Return the request content if the request was of unknown type.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#formvalue">formvalue</a>&nbsp;(name, noparse)</td>
+       <td class="summary">
+Get a certain HTTP input value or a table of all input values.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#formvaluetable">formvaluetable</a>&nbsp;(prefix)</td>
+       <td class="summary">
+Get a table of all HTTP input values with a certain prefix.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#getcookie">getcookie</a>&nbsp;(name)</td>
+       <td class="summary">
+Get the value of a certain HTTP-Cookie.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#getenv">getenv</a>&nbsp;(name)</td>
+       <td class="summary">
+Get the value of a certain HTTP environment variable 
+or the environment table itself.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#header">header</a>&nbsp;(key, value)</td>
+       <td class="summary">
+Send a HTTP-Header.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#mimedecode_message_body">mimedecode_message_body</a>&nbsp;(src, msg, filecb)</td>
+       <td class="summary">
+Decode a mime encoded http message body with multipart/form-data Content-Type.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#parse_message_body">parse_message_body</a>&nbsp;(src, msg, filecb)</td>
+       <td class="summary">
+Try to extract and decode a http message body from the given ltn12 source.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#prepare_content">prepare_content</a>&nbsp;(mime)</td>
+       <td class="summary">
+Set the mime type of following content data.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#redirect">redirect</a>&nbsp;(url)</td>
+       <td class="summary">
+Redirects the client to a new URL and closes the connection.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#setfilehandler">setfilehandler</a>&nbsp;(callback)</td>
+       <td class="summary">
+Set a handler function for incoming user file uploads.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#source">source</a>&nbsp;()</td>
+       <td class="summary">
+Get the RAW HTTP input source 
+ </td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#splice">splice</a>&nbsp;(fp, size)</td>
+       <td class="summary">
+Splice data from a filedescriptor to the client.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#status">status</a>&nbsp;(code, message)</td>
+       <td class="summary">
+Set the HTTP status code and status message.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#urldecode">urldecode</a>&nbsp;(str, no_plus)</td>
+       <td class="summary">
+Return the URL-decoded equivalent of a string.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#urldecode_message_body">urldecode_message_body</a>&nbsp;(src, msg)</td>
+       <td class="summary">
+Decode an urlencoded http message body with application/x-www-urlencoded 
+Content-Type.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#urldecode_params">urldecode_params</a>&nbsp;(url, tbl)</td>
+       <td class="summary">
+Extract and split urlencoded data pairs, separated bei either "&" or ";" 
+from given url or string.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#urlencode">urlencode</a>&nbsp;(str)</td>
+       <td class="summary">
+Return the URL-encoded equivalent of a string.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#urlencode_params">urlencode_params</a>&nbsp;(tbl)</td>
+       <td class="summary">
+Encode each key-value-pair in given table to x-www-urlencoded format, 
+separated by "&".</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#write">write</a>&nbsp;(content, src_err)</td>
+       <td class="summary">
+Send a chunk of content data to the client.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#write_json">write_json</a>&nbsp;(data)</td>
+       <td class="summary">
+Send the given data as JSON encoded string.</td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="build_querystring"></a><strong>build_querystring</strong>&nbsp;(table)</dt>
+<dd>
+
+Create a querystring out of a table of key - value pairs. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         table: Query string source table
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Encoded HTTP query string
+
+
+
+</dd>
+
+
+
+
+<dt><a name="close"></a><strong>close</strong>&nbsp;()</dt>
+<dd>
+
+Close the HTTP-Connection. 
+
+
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="content"></a><strong>content</strong>&nbsp;()</dt>
+<dd>
+
+Return the request content if the request was of unknown type. 
+
+
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>HTTP request body
+       
+       <li>HTTP request body length
+       
+</ol>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="formvalue"></a><strong>formvalue</strong>&nbsp;(name, noparse)</dt>
+<dd>
+
+Get a certain HTTP input value or a table of all input values. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         name: Name of the GET or POST variable to fetch
+       </li>
+       
+       <li>
+         noparse: Don't parse POST data before getting the value
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+HTTP input value or table of all input value
+
+
+
+</dd>
+
+
+
+
+<dt><a name="formvaluetable"></a><strong>formvaluetable</strong>&nbsp;(prefix)</dt>
+<dd>
+
+Get a table of all HTTP input values with a certain prefix. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         prefix: Prefix
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table of all HTTP input values with given prefix
+
+
+
+</dd>
+
+
+
+
+<dt><a name="getcookie"></a><strong>getcookie</strong>&nbsp;(name)</dt>
+<dd>
+
+Get the value of a certain HTTP-Cookie. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         name: Cookie Name
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing cookie data
+
+
+
+</dd>
+
+
+
+
+<dt><a name="getenv"></a><strong>getenv</strong>&nbsp;(name)</dt>
+<dd>
+
+Get the value of a certain HTTP environment variable 
+or the environment table itself. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         name: Environment variable
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+HTTP environment value or environment table
+
+
+
+</dd>
+
+
+
+
+<dt><a name="header"></a><strong>header</strong>&nbsp;(key, value)</dt>
+<dd>
+
+Send a HTTP-Header. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         key: Header key
+       </li>
+       
+       <li>
+         value: Header value
+       </li>
+       
+</ul>
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="mimedecode_message_body"></a><strong>mimedecode_message_body</strong>&nbsp;(src, msg, filecb)</dt>
+<dd>
+
+Decode a mime encoded http message body with multipart/form-data Content-Type. 
+Stores all extracted data associated with its parameter name 
+in the params table within the given message object. Multiple parameter 
+values are stored as tables, ordinary ones as strings. 
+If an optional file callback function is given then it is fed with the 
+file contents chunk by chunk and only the extracted file name is stored 
+within the params table. The callback function will be called subsequently 
+with three arguments: 
+ o Table containing decoded (name, file) and raw (headers) mime header data 
+ o String value containing a chunk of the file data 
+ o Boolean which indicates whether the current chunk is the last one (eof) 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         src: Ltn12 source function
+       </li>
+       
+       <li>
+         msg: HTTP message object
+       </li>
+       
+       <li>
+         filecb: File callback function (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>Value indicating successful operation (not nil means "ok")
+       
+       <li>String containing the error if unsuccessful
+       
+</ol>
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="">
+               parse_message_header
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="parse_message_body"></a><strong>parse_message_body</strong>&nbsp;(src, msg, filecb)</dt>
+<dd>
+
+Try to extract and decode a http message body from the given ltn12 source. 
+This function will examine the Content-Type within the given message object 
+to select the appropriate content decoder. 
+Currently the application/x-www-urlencoded and application/form-data 
+mime types are supported. If the encountered content encoding can't be 
+handled then the whole message body will be stored unaltered as "content" 
+property within the given message object. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         src: Ltn12 source function
+       </li>
+       
+       <li>
+         msg: HTTP message object
+       </li>
+       
+       <li>
+         filecb: File data callback (optional, see mimedecode_message_body())
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>Value indicating successful operation (not nil means "ok")
+       
+       <li>String containing the error if unsuccessful
+       
+</ol>
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="">
+               parse_message_header
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="prepare_content"></a><strong>prepare_content</strong>&nbsp;(mime)</dt>
+<dd>
+
+Set the mime type of following content data. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         mime: Mimetype of following content
+       </li>
+       
+</ul>
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="redirect"></a><strong>redirect</strong>&nbsp;(url)</dt>
+<dd>
+
+Redirects the client to a new URL and closes the connection. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         url: Target URL
+       </li>
+       
+</ul>
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="setfilehandler"></a><strong>setfilehandler</strong>&nbsp;(callback)</dt>
+<dd>
+
+Set a handler function for incoming user file uploads. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         callback: Handler function
+       </li>
+       
+</ul>
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="source"></a><strong>source</strong>&nbsp;()</dt>
+<dd>
+
+Get the RAW HTTP input source 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+HTTP LTN12 source
+
+
+
+</dd>
+
+
+
+
+<dt><a name="splice"></a><strong>splice</strong>&nbsp;(fp, size)</dt>
+<dd>
+
+Splice data from a filedescriptor to the client. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         fp: File descriptor
+       </li>
+       
+       <li>
+         size: Bytes to splice (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="status"></a><strong>status</strong>&nbsp;(code, message)</dt>
+<dd>
+
+Set the HTTP status code and status message. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         code: Status code
+       </li>
+       
+       <li>
+         message: Status message
+       </li>
+       
+</ul>
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="urldecode"></a><strong>urldecode</strong>&nbsp;(str, no_plus)</dt>
+<dd>
+
+Return the URL-decoded equivalent of a string. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         str: URL-encoded string
+       </li>
+       
+       <li>
+         no_plus: Don't decode + to " "
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+URL-decoded string
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#urlencode">
+               urlencode
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="urldecode_message_body"></a><strong>urldecode_message_body</strong>&nbsp;(src, msg)</dt>
+<dd>
+
+Decode an urlencoded http message body with application/x-www-urlencoded 
+Content-Type. 
+Stores all extracted data associated with its parameter name in the params 
+table within the given message object. Multiple parameter values are stored 
+as tables, ordinary ones as strings. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         src: Ltn12 source function
+       </li>
+       
+       <li>
+         msg: HTTP message object
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>Value indicating successful operation (not nil means "ok")
+       
+       <li>String containing the error if unsuccessful
+       
+</ol>
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="">
+               parse_message_header
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="urldecode_params"></a><strong>urldecode_params</strong>&nbsp;(url, tbl)</dt>
+<dd>
+
+Extract and split urlencoded data pairs, separated bei either "&" or ";" 
+from given url or string. Returns a table with urldecoded values. 
+Simple parameters are stored as string values associated with the parameter 
+name within the table. Parameters with multiple values are stored as array 
+containing the corresponding values. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         url: The url or string which contains x-www-urlencoded form data
+       </li>
+       
+       <li>
+         tbl: Use the given table for storing values (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table containing the urldecoded parameters
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#urlencode_params">
+               urlencode_params
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="urlencode"></a><strong>urlencode</strong>&nbsp;(str)</dt>
+<dd>
+
+Return the URL-encoded equivalent of a string. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         str: Source string
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+URL-encoded string
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#urldecode">
+               urldecode
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="urlencode_params"></a><strong>urlencode_params</strong>&nbsp;(tbl)</dt>
+<dd>
+
+Encode each key-value-pair in given table to x-www-urlencoded format, 
+separated by "&". 
+Tables are encoded as parameters with multiple values by repeating the 
+parameter name with each value. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         tbl: Table with the values
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing encoded values
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#urldecode_params">
+               urldecode_params
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="write"></a><strong>write</strong>&nbsp;(content, src_err)</dt>
+<dd>
+
+Send a chunk of content data to the client. 
+This function is as a valid LTN12 sink. 
+If the content chunk is nil this function will automatically invoke close. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         content: Content chunk
+       </li>
+       
+       <li>
+         src_err: Error object from source (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#close">
+               close
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="write_json"></a><strong>write_json</strong>&nbsp;(data)</dt>
+<dd>
+
+Send the given data as JSON encoded string. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         data: Data to send
+       </li>
+       
+</ul>
+
+
+
+
+
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/luci.http.mime.html b/docs/api/modules/luci.http.mime.html
new file mode 100644 (file)
index 0000000..85eaf53
--- /dev/null
@@ -0,0 +1,322 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li><strong>luci.http.mime</strong></li>
+       
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Class <code>luci.http.mime</code></h1>
+
+<p></p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#to_ext">to_ext</a>&nbsp;(mimetype)</td>
+       <td class="summary">
+Return corresponding extension for a given mime type or nil if the 
+given mime-type is unknown.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#to_mime">to_mime</a>&nbsp;(filename)</td>
+       <td class="summary">
+Extract extension from a filename and return corresponding mime-type or 
+"application/octet-stream" if the extension is unknown.</td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="to_ext"></a><strong>to_ext</strong>&nbsp;(mimetype)</dt>
+<dd>
+
+Return corresponding extension for a given mime type or nil if the 
+given mime-type is unknown.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         mimetype: The mimetype to retrieve the extension from
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String with the extension or nil for unknown type
+
+
+
+</dd>
+
+
+
+
+<dt><a name="to_mime"></a><strong>to_mime</strong>&nbsp;(filename)</dt>
+<dd>
+
+Extract extension from a filename and return corresponding mime-type or 
+"application/octet-stream" if the extension is unknown.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         filename: The filename for which the mime type is guessed
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containign the determined mime type
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/luci.i18n.html b/docs/api/modules/luci.i18n.html
new file mode 100644 (file)
index 0000000..0f315be
--- /dev/null
@@ -0,0 +1,391 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li><strong>luci.i18n</strong></li>
+       
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Class <code>luci.i18n</code></h1>
+
+<p></p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#dump">dump</a>&nbsp;()</td>
+       <td class="summary">
+Return all currently loaded translation strings as a key-value table.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#setlanguage">setlanguage</a>&nbsp;(lang)</td>
+       <td class="summary">
+Set the context default translation language.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#translate">translate</a>&nbsp;(key)</td>
+       <td class="summary">
+Return the translated value for a specific translation key.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#translatef">translatef</a>&nbsp;(key, ...)</td>
+       <td class="summary">
+Return the translated value for a specific translation key and use it as sprintf pattern.</td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="dump"></a><strong>dump</strong>&nbsp;()</dt>
+<dd>
+
+Return all currently loaded translation strings as a key-value table. The key is the 
+hexadecimal representation of the translation key while the value is the translated 
+text content. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Key-value translation string table.
+
+
+
+</dd>
+
+
+
+
+<dt><a name="setlanguage"></a><strong>setlanguage</strong>&nbsp;(lang)</dt>
+<dd>
+
+Set the context default translation language. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         lang: An IETF/BCP 47 language tag or ISO3166 country code, e.g. "en-US" or "de"
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+The effective loaded language, e.g. "en" for "en-US" - or nil on failure
+
+
+
+</dd>
+
+
+
+
+<dt><a name="translate"></a><strong>translate</strong>&nbsp;(key)</dt>
+<dd>
+
+Return the translated value for a specific translation key. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         key: Default translation text
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Translated string
+
+
+
+</dd>
+
+
+
+
+<dt><a name="translatef"></a><strong>translatef</strong>&nbsp;(key, ...)</dt>
+<dd>
+
+Return the translated value for a specific translation key and use it as sprintf pattern. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         key: Default translation text
+       </li>
+       
+       <li>
+         ...: Format parameters
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Translated and formatted string
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/luci.ip.cidr.html b/docs/api/modules/luci.ip.cidr.html
new file mode 100644 (file)
index 0000000..ae6c61d
--- /dev/null
@@ -0,0 +1,1511 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li><strong>luci.ip.cidr</strong></li>
+       
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Object Instance <code>luci.ip.cidr</code></h1>
+
+<p>
+ IP CIDR Object. 
+ Represents an IPv4 or IPv6 address range.</p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#cidr.is4">cidr:is4</a>&nbsp;()</td>
+       <td class="summary">
+Checks whether the CIDR instance is an IPv4 address range 
+ </td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#cidr.is4rfc1918">cidr:is4rfc1918</a>&nbsp;()</td>
+       <td class="summary">
+Checks whether the CIDR instance is within the private RFC1918 address space 
+ </td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#cidr.is4linklocal">cidr:is4linklocal</a>&nbsp;()</td>
+       <td class="summary">
+Checks whether the CIDR instance is an IPv4 link local (Zeroconf) address 
+ </td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#cidr.is6">cidr:is6</a>&nbsp;()</td>
+       <td class="summary">
+Checks whether the CIDR instance is an IPv6 address range 
+ </td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#cidr.is6linklocal">cidr:is6linklocal</a>&nbsp;()</td>
+       <td class="summary">
+Checks whether the CIDR instance is an IPv6 link local address 
+ </td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#cidr.is6mapped4">cidr:is6mapped4</a>&nbsp;()</td>
+       <td class="summary">
+Checks whether the CIDR instance is an IPv6 mapped IPv4 address 
+ </td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#cidr.ismac">cidr:ismac</a>&nbsp;()</td>
+       <td class="summary">
+Checks whether the CIDR instance is an ethernet MAC address range 
+ </td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#cidr.ismaclocal">cidr:ismaclocal</a>&nbsp;()</td>
+       <td class="summary">
+Checks whether the CIDR instance is a locally administered (LAA) MAC address 
+ </td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#cidr.ismacmcast">cidr:ismacmcast</a>&nbsp;()</td>
+       <td class="summary">
+Checks whether the CIDR instance is a multicast MAC address 
+ </td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#cidr.lower">cidr:lower</a>&nbsp;(addr)</td>
+       <td class="summary">
+Checks whether this CIDR instance is lower than the given argument.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#cidr.higher">cidr:higher</a>&nbsp;(addr)</td>
+       <td class="summary">
+Checks whether this CIDR instance is higher than the given argument.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#cidr.equal">cidr:equal</a>&nbsp;(addr)</td>
+       <td class="summary">
+Checks whether this CIDR instance is equal to the given argument.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#cidr.prefix">cidr:prefix</a>&nbsp;(mask)</td>
+       <td class="summary">
+Get or set prefix size of CIDR instance.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#cidr.network">cidr:network</a>&nbsp;(mask)</td>
+       <td class="summary">
+Derive network address of CIDR instance.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#cidr.host">cidr:host</a>&nbsp;()</td>
+       <td class="summary">
+Derive host address of CIDR instance.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#cidr.mask">cidr:mask</a>&nbsp;(mask)</td>
+       <td class="summary">
+Derive netmask of CIDR instance.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#cidr.broadcast">cidr:broadcast</a>&nbsp;(mask)</td>
+       <td class="summary">
+Derive broadcast address of CIDR instance.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#cidr.mapped4">cidr:mapped4</a>&nbsp;()</td>
+       <td class="summary">
+Derive mapped IPv4 address of CIDR instance.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#cidr.tomac">cidr:tomac</a>&nbsp;()</td>
+       <td class="summary">
+Derive MAC address of IPv6 link local CIDR instance.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#cidr.tolinklocal">cidr:tolinklocal</a>&nbsp;()</td>
+       <td class="summary">
+Derive IPv6 link local address from MAC address CIDR instance.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#cidr.contains">cidr:contains</a>&nbsp;(addr)</td>
+       <td class="summary">
+Test whether CIDR contains given range.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#cidr.add">cidr:add</a>&nbsp;(amount, inplace)</td>
+       <td class="summary">
+Add given amount to CIDR instance.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#cidr.sub">cidr:sub</a>&nbsp;(amount, inplace)</td>
+       <td class="summary">
+Subtract given amount from CIDR instance.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#cidr.minhost">cidr:minhost</a>&nbsp;()</td>
+       <td class="summary">
+Calculate the lowest possible host address within this CIDR instance.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#cidr.maxhost">cidr:maxhost</a>&nbsp;()</td>
+       <td class="summary">
+Calculate the highest possible host address within this CIDR instance.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#cidr.string">cidr:string</a>&nbsp;()</td>
+       <td class="summary">
+Convert CIDR instance into string representation.</td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="cidr.is4"></a><strong>cidr:is4</strong>&nbsp;()</dt>
+<dd>
+
+Checks whether the CIDR instance is an IPv4 address range 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+<code>true</code> if the CIDR is an IPv4 range, else <code>false</code>
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#cidr.is6">
+               cidr:is6
+       </a>
+       
+       <li><a href="#cidr.ismac">
+               cidr:ismac
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="cidr.is4rfc1918"></a><strong>cidr:is4rfc1918</strong>&nbsp;()</dt>
+<dd>
+
+Checks whether the CIDR instance is within the private RFC1918 address space 
+
+
+
+
+
+
+<h3>Usage:</h3>
+<pre>local addr = luci.ip.new("192.168.45.2/24") 
+if addr:is4rfc1918() then 
+       print("Is a private address") 
+end</pre>
+
+
+
+<h3>Return value:</h3>
+<code>true</code> if the entire range of this CIDR lies within one of 
+       the ranges <code>10.0.0.0-10.255.255.255</code>, 
+       <code>172.16.0.0-172.31.0.0</code> or 
+       <code>192.168.0.0-192.168.255.255</code>, else <code>false</code>.
+
+
+
+</dd>
+
+
+
+
+<dt><a name="cidr.is4linklocal"></a><strong>cidr:is4linklocal</strong>&nbsp;()</dt>
+<dd>
+
+Checks whether the CIDR instance is an IPv4 link local (Zeroconf) address 
+
+
+
+
+
+
+<h3>Usage:</h3>
+<pre>local addr = luci.ip.new("169.254.34.125") 
+if addr:is4linklocal() then 
+       print("Is a zeroconf address") 
+end</pre>
+
+
+
+<h3>Return value:</h3>
+<code>true</code> if the entire range of this CIDR lies within the range 
+       the range <code>169.254.0.0-169.254.255.255</code>, else <code>false</code>.
+
+
+
+</dd>
+
+
+
+
+<dt><a name="cidr.is6"></a><strong>cidr:is6</strong>&nbsp;()</dt>
+<dd>
+
+Checks whether the CIDR instance is an IPv6 address range 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+<code>true</code> if the CIDR is an IPv6 range, else <code>false</code>
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#cidr.is4">
+               cidr:is4
+       </a>
+       
+       <li><a href="#cidr.ismac">
+               cidr:ismac
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="cidr.is6linklocal"></a><strong>cidr:is6linklocal</strong>&nbsp;()</dt>
+<dd>
+
+Checks whether the CIDR instance is an IPv6 link local address 
+
+
+
+
+
+
+<h3>Usage:</h3>
+<pre>local addr = luci.ip.new("fe92:53a:3216:af01:221:63ff:fe75:aa17/64") 
+if addr:is6linklocal() then 
+       print("Is a linklocal address") 
+end</pre>
+
+
+
+<h3>Return value:</h3>
+<code>true</code> if the entire range of this CIDR lies within the range 
+       the <code>fe80::/10</code> range, else <code>false</code>.
+
+
+
+</dd>
+
+
+
+
+<dt><a name="cidr.is6mapped4"></a><strong>cidr:is6mapped4</strong>&nbsp;()</dt>
+<dd>
+
+Checks whether the CIDR instance is an IPv6 mapped IPv4 address 
+
+
+
+
+
+
+<h3>Usage:</h3>
+<pre>local addr = luci.ip.new("::ffff:192.168.1.1") 
+if addr:is6mapped4() then 
+       print("Is a mapped IPv4 address") 
+end</pre>
+
+
+
+<h3>Return value:</h3>
+<code>true</code> if the address is an IPv6 mapped IPv4 address in the 
+       form <code>::ffff:1.2.3.4</code>.
+
+
+
+</dd>
+
+
+
+
+<dt><a name="cidr.ismac"></a><strong>cidr:ismac</strong>&nbsp;()</dt>
+<dd>
+
+Checks whether the CIDR instance is an ethernet MAC address range 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+<code>true</code> if the CIDR is a MAC address range, else <code>false</code>
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#cidr.is4">
+               cidr:is4
+       </a>
+       
+       <li><a href="#cidr.is6">
+               cidr:is6
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="cidr.ismaclocal"></a><strong>cidr:ismaclocal</strong>&nbsp;()</dt>
+<dd>
+
+Checks whether the CIDR instance is a locally administered (LAA) MAC address 
+
+
+
+
+
+
+<h3>Usage:</h3>
+<pre>local mac = luci.ip.new("02:C0:FF:EE:00:01") 
+if mac:ismaclocal() then 
+  print("Is an LAA MAC address") 
+end</pre>
+
+
+
+<h3>Return value:</h3>
+<code>true</code> if the MAC address sets the locally administered bit.
+
+
+
+</dd>
+
+
+
+
+<dt><a name="cidr.ismacmcast"></a><strong>cidr:ismacmcast</strong>&nbsp;()</dt>
+<dd>
+
+Checks whether the CIDR instance is a multicast MAC address 
+
+
+
+
+
+
+<h3>Usage:</h3>
+<pre>local mac = luci.ip.new("01:00:5E:7F:00:10") 
+if addr:ismacmcast() then 
+  print("Is a multicast MAC address") 
+end</pre>
+
+
+
+<h3>Return value:</h3>
+<code>true</code> if the MAC address sets the multicast bit.
+
+
+
+</dd>
+
+
+
+
+<dt><a name="cidr.lower"></a><strong>cidr:lower</strong>&nbsp;(addr)</dt>
+<dd>
+
+Checks whether this CIDR instance is lower than the given argument. 
+The comparisation follows these rules: 
+<ul><li>An IPv4 address is always lower than an IPv6 address and IPv6 addresses 
+are considered lower than MAC addresses</li> 
+<li>Prefix sizes are ignored</li></ul> 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         addr: A <code>luci.ip.cidr</code> instance or a string convertible by 
+       <code>luci.ip.new()</code> to compare against.
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+<pre>local addr = luci.ip.new("192.168.1.1") 
+print(addr:lower(addr)) -- false 
+print(addr:lower("10.10.10.10/24")) -- false 
+print(addr:lower(luci.ip.new("::1"))) -- true 
+print(addr:lower(luci.ip.new("192.168.200.1"))) -- true 
+print(addr:lower(luci.ip.new("00:14:22:01:23:45"))) -- true</pre>
+
+
+
+<h3>Return value:</h3>
+<code>true</code> if this CIDR is lower than the given address, 
+       else <code>false</code>.
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#cidr.higher">
+               cidr:higher
+       </a>
+       
+       <li><a href="#cidr.equal">
+               cidr:equal
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="cidr.higher"></a><strong>cidr:higher</strong>&nbsp;(addr)</dt>
+<dd>
+
+Checks whether this CIDR instance is higher than the given argument. 
+The comparisation follows these rules: 
+<ul><li>An IPv4 address is always lower than an IPv6 address and IPv6 addresses 
+are considered lower than MAC addresses</li> 
+<li>Prefix sizes are ignored</li></ul> 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         addr: A <code>luci.ip.cidr</code> instance or a string convertible by 
+       <code>luci.ip.new()</code> to compare against.
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+<pre>local addr = luci.ip.new("192.168.1.1") 
+print(addr:higher(addr)) -- false 
+print(addr:higher("10.10.10.10/24")) -- true 
+print(addr:higher(luci.ip.new("::1"))) -- false 
+print(addr:higher(luci.ip.new("192.168.200.1"))) -- false 
+print(addr:higher(luci.ip.new("00:14:22:01:23:45"))) -- false</pre>
+
+
+
+<h3>Return value:</h3>
+<code>true</code> if this CIDR is higher than the given address, 
+       else <code>false</code>.
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#cidr.lower">
+               cidr:lower
+       </a>
+       
+       <li><a href="#cidr.equal">
+               cidr:equal
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="cidr.equal"></a><strong>cidr:equal</strong>&nbsp;(addr)</dt>
+<dd>
+
+Checks whether this CIDR instance is equal to the given argument. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         addr: A <code>luci.ip.cidr</code> instance or a string convertible by 
+       <code>luci.ip.new()</code> to compare against.
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+<pre>local addr = luci.ip.new("192.168.1.1") 
+print(addr:equal(addr)) -- true 
+print(addr:equal("192.168.1.1")) -- true 
+print(addr:equal(luci.ip.new("::1"))) -- false 
+local addr6 = luci.ip.new("::1") 
+print(addr6:equal("0:0:0:0:0:0:0:1/64")) -- true 
+print(addr6:equal(luci.ip.new("fe80::221:63ff:fe75:aa17"))) -- false 
+local mac = luci.ip.new("00:14:22:01:23:45") 
+print(mac:equal("0:14:22:1:23:45")) -- true 
+print(mac:equal(luci.ip.new("01:23:45:67:89:AB")) -- false</pre>
+
+
+
+<h3>Return value:</h3>
+<code>true</code> if this CIDR is equal to the given address, 
+       else <code>false</code>.
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#cidr.lower">
+               cidr:lower
+       </a>
+       
+       <li><a href="#cidr.higher">
+               cidr:higher
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="cidr.prefix"></a><strong>cidr:prefix</strong>&nbsp;(mask)</dt>
+<dd>
+
+Get or set prefix size of CIDR instance. 
+If the optional mask parameter is given, the prefix size of this CIDR is altered 
+else the current prefix size is returned. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         mask: Either a number containing the number of bits (<code>0..32</code> 
+       for IPv4, <code>0..128</code> for IPv6 or <code>0..48</code> for MAC addresses) or a string 
+  containing a valid netmask (optional)
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+<pre>local range = luci.ip.new("192.168.1.1/255.255.255.0") 
+print(range:prefix()) -- 24 
+range:prefix(16) 
+print(range:prefix()) -- 16 
+range:prefix("255.255.255.255") 
+print(range:prefix()) -- 32</pre>
+
+
+
+<h3>Return value:</h3>
+Bit count of the current prefix size
+
+
+
+</dd>
+
+
+
+
+<dt><a name="cidr.network"></a><strong>cidr:network</strong>&nbsp;(mask)</dt>
+<dd>
+
+Derive network address of CIDR instance. 
+Returns a new CIDR instance representing the network address of this instance 
+with all host parts masked out. The used prefix size can be overridden by the 
+optional mask parameter. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         mask: Either a number containing the number of bits (<code>0..32</code> 
+       for IPv4, <code>0..128</code> for IPv6 or <code>0..48</code> for MAC addresses) or a string 
+  containing a valid netmask (optional)
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+<pre>local range = luci.ip.new("192.168.62.243/255.255.0.0") 
+print(range:network())                -- "192.168.0.0" 
+print(range:network(24))              -- "192.168.62.0" 
+print(range:network("255.255.255.0")) -- "192.168.62.0" 
+local range6 = luci.ip.new("fd9b:62b3:9cc5:0:221:63ff:fe75:aa17/64") 
+print(range6:network())               -- "fd9b:62b3:9cc5::"</pre>
+
+
+
+<h3>Return value:</h3>
+CIDR instance representing the network address
+
+
+
+</dd>
+
+
+
+
+<dt><a name="cidr.host"></a><strong>cidr:host</strong>&nbsp;()</dt>
+<dd>
+
+Derive host address of CIDR instance. 
+This function essentially constructs a copy of this CIDR with the prefix size 
+set to <code>32</code> for IPv4, <code>128</code> for IPv6 or <code>48</code> for MAC addresses. 
+
+
+
+
+
+
+<h3>Usage:</h3>
+<pre>local range = luci.ip.new("172.19.37.45/16") 
+print(range)        -- "172.19.37.45/16" 
+print(range:host()) -- "172.19.37.45"</pre>
+
+
+
+<h3>Return value:</h3>
+CIDR instance representing the host address
+
+
+
+</dd>
+
+
+
+
+<dt><a name="cidr.mask"></a><strong>cidr:mask</strong>&nbsp;(mask)</dt>
+<dd>
+
+Derive netmask of CIDR instance. 
+Constructs a CIDR instance representing the netmask of this instance. The used 
+prefix size can be overridden by the optional mask parameter. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         mask: Either a number containing the number of bits (<code>0..32</code> 
+       for IPv4, <code>0..128</code> for IPv6 or <code>0..48</code> for MAC addresses) or a string 
+  containing a valid netmask (optional)
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+<pre>local range = luci.ip.new("172.19.37.45/16") 
+print(range:mask())            -- "255.255.0.0" 
+print(range:mask(24))          -- "255.255.255.0" 
+print(range:mask("255.0.0.0")) -- "255.0.0.0"</pre>
+
+
+
+<h3>Return value:</h3>
+CIDR instance representing the netmask
+
+
+
+</dd>
+
+
+
+
+<dt><a name="cidr.broadcast"></a><strong>cidr:broadcast</strong>&nbsp;(mask)</dt>
+<dd>
+
+Derive broadcast address of CIDR instance. 
+Constructs a CIDR instance representing the broadcast address of this instance. 
+The used prefix size can be overridden by the optional mask parameter. 
+This function has no effect on IPv6 or MAC address instances, it will return 
+nothing in this case. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         mask: Either a number containing the number of bits (<code>0..32</code> for IPv4) or 
+  a string containing a valid netmask (optional)
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+<pre>local range = luci.ip.new("172.19.37.45/16") 
+print(range:broadcast())            -- "172.19.255.255" 
+print(range:broadcast(24))          -- "172.19.37.255" 
+print(range:broadcast("255.0.0.0")) -- "172.255.255.255"</pre>
+
+
+
+<h3>Return value:</h3>
+Return a new CIDR instance representing the broadcast address if this 
+       instance is an IPv4 range, else return nothing.
+
+
+
+</dd>
+
+
+
+
+<dt><a name="cidr.mapped4"></a><strong>cidr:mapped4</strong>&nbsp;()</dt>
+<dd>
+
+Derive mapped IPv4 address of CIDR instance. 
+Constructs a CIDR instance representing the IPv4 address of the IPv6 mapped 
+IPv4 address in this instance. 
+This function has no effect on IPv4 instances, MAC address instances or IPv6 
+instances which are not a mapped address, it will return nothing in this case. 
+
+
+
+
+
+
+<h3>Usage:</h3>
+<pre>local addr = luci.ip.new("::ffff:172.16.19.1") 
+print(addr:mapped4()) -- "172.16.19.1"</pre>
+
+
+
+<h3>Return value:</h3>
+Return a new CIDR instance representing the IPv4 address if this 
+       instance is an IPv6 mapped IPv4 address, else return nothing.
+
+
+
+</dd>
+
+
+
+
+<dt><a name="cidr.tomac"></a><strong>cidr:tomac</strong>&nbsp;()</dt>
+<dd>
+
+Derive MAC address of IPv6 link local CIDR instance. 
+Constructs a CIDR instance representing the MAC address contained in the IPv6 
+link local address of this instance. 
+This function has no effect on IPv4 instances, MAC address instances or IPv6 
+instances which are not a link local address, it will return nothing in this 
+case. 
+
+
+
+
+
+
+<h3>Usage:</h3>
+<pre>local addr = luci.ip.new("fe80::6666:b3ff:fe47:e1b9") 
+print(addr:tomac()) -- "64:66:B3:47:E1:B9"</pre>
+
+
+
+<h3>Return value:</h3>
+Return a new CIDR instance representing the MAC address if this 
+  instance is an IPv6 link local address, else return nothing.
+
+
+
+</dd>
+
+
+
+
+<dt><a name="cidr.tolinklocal"></a><strong>cidr:tolinklocal</strong>&nbsp;()</dt>
+<dd>
+
+Derive IPv6 link local address from MAC address CIDR instance. 
+Constructs a CIDR instance representing the IPv6 link local address of the 
+MAC address represented by this instance. 
+This function has no effect on IPv4 instances or IPv6 instances, it will return 
+nothing in this case. 
+
+
+
+
+
+
+<h3>Usage:</h3>
+<pre>local mac = luci.ip.new("64:66:B3:47:E1:B9") 
+print(mac:tolinklocal()) -- "fe80::6666:b3ff:fe47:e1b9"</pre>
+
+
+
+<h3>Return value:</h3>
+Return a new CIDR instance representing the IPv6 link local address.
+
+
+
+</dd>
+
+
+
+
+<dt><a name="cidr.contains"></a><strong>cidr:contains</strong>&nbsp;(addr)</dt>
+<dd>
+
+Test whether CIDR contains given range. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         addr: A <code>luci.ip.cidr</code> instance or a string convertible by 
+       <code>luci.ip.new()</code> to test.
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+<pre>local range = luci.ip.new("10.24.0.0/255.255.0.0") 
+print(range:contains("10.24.5.1"))  -- true 
+print(range:contains("::1"))        -- false 
+print(range:contains("10.0.0.0/8")) -- false 
+local range6 = luci.ip.new("fe80::/10") 
+print(range6:contains("fe80::221:63f:fe75:aa17/64"))         -- true 
+print(range6:contains("fd9b:6b3:c5:0:221:63f:fe75:aa17/64")) -- false 
+local intel_macs = luci.ip.MAC("C0:B6:F9:00:00:00/24") 
+print(intel_macs:contains("C0:B6:F9:A3:C:11"))  -- true 
+print(intel_macs:contains("64:66:B3:47:E1:B9")) -- false</pre>
+
+
+
+<h3>Return value:</h3>
+<code>true</code> if this instance fully contains the given address else 
+       <code>false</code>.
+
+
+
+</dd>
+
+
+
+
+<dt><a name="cidr.add"></a><strong>cidr:add</strong>&nbsp;(amount, inplace)</dt>
+<dd>
+
+Add given amount to CIDR instance. If the result would overflow the maximum 
+address space, the result is set to the highest possible address. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         amount: A numeric value between 0 and 0xFFFFFFFF, a 
+       <code>luci.ip.cidr</code> instance or a string convertible by 
+       <code>luci.ip.new()</code>.
+       </li>
+       
+       <li>
+         inplace: If <code>true</code>, modify this instance instead of returning 
+       a new derived CIDR instance.
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+<pre>local addr = luci.ip.new("192.168.1.1/24") 
+print(addr:add(250))           -- "192.168.1.251/24" 
+print(addr:add("0.0.99.0"))    -- "192.168.100.1/24" 
+addr:add(256, true)            -- true 
+print(addr)                    -- "192.168.2.1/24 
+addr:add("255.0.0.0", true)    -- false (overflow) 
+print(addr)                    -- "255.255.255.255/24 
+local addr6 = luci.ip.new("fe80::221:63f:fe75:aa17/64") 
+print(addr6:add(256))          -- "fe80::221:63f:fe75:ab17/64" 
+print(addr6:add("::ffff:0"))   -- "fe80::221:640:fe74:aa17/64" 
+addr6:add(256, true)           -- true 
+print(addr6)                   -- "fe80::221:63f:fe75:ab17/64 
+addr6:add("ffff::", true)      -- false (overflow) 
+print(addr6)                   -- "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/64" 
+local mac = luci.ip.new("00:14:22:01:23:45") 
+print(mac:add(256))            -- "00:14:22:01:24:45" 
+print(mac:add("0:0:0:0:FF:0")  -- "00:14:22:02:22:45" 
+mac:add(256, true)             -- true 
+print(mac)                     -- "00:14:22:01:24:45" 
+mac:add("FF:FF:0:0:0:0", true) -- false (overflow) 
+print(mac)                     -- "FF:FF:FF:FF:FF:FF"</pre>
+
+
+
+<h3>Return value:</h3>
+<ul> 
+       <li>When adding inplace: Return <code>true</code> if the addition succeeded 
+           or <code>false</code> when the addition overflowed.</li> 
+       <li>When deriving new CIDR: Return new instance representing the value of 
+        this instance plus the added amount or the highest possible address if 
+           the addition overflowed the available address space.</li></ul>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="cidr.sub"></a><strong>cidr:sub</strong>&nbsp;(amount, inplace)</dt>
+<dd>
+
+Subtract given amount from CIDR instance. If the result would under, the lowest 
+possible address is returned. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         amount: A numeric value between 0 and 0xFFFFFFFF, a 
+       <code>luci.ip.cidr</code> instance or a string convertible by 
+       <code>luci.ip.new()</code>.
+       </li>
+       
+       <li>
+         inplace: If <code>true</code>, modify this instance instead of returning 
+       a new derived CIDR instance.
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+<pre>local addr = luci.ip.new("192.168.1.1/24") 
+print(addr:sub(256))         -- "192.168.0.1/24" 
+print(addr:sub("0.168.0.0")) -- "192.0.1.1/24" 
+addr:sub(256, true)          -- true 
+print(addr)                  -- "192.168.0.1/24 
+addr:sub("255.0.0.0", true)  -- false (underflow) 
+print(addr)                  -- "0.0.0.0/24 
+local addr6 = luci.ip.new("fe80::221:63f:fe75:aa17/64") 
+print(addr6:sub(256))        -- "fe80::221:63f:fe75:a917/64" 
+print(addr6:sub("::ffff:0")) -- "fe80::221:63e:fe76:aa17/64" 
+addr:sub(256, true)          -- true 
+print(addr)                  -- "fe80::221:63f:fe75:a917/64" 
+addr:sub("ffff::", true)     -- false (underflow) 
+print(addr)                  -- "::/64" 
+local mac = luci.ip.new("00:14:22:01:23:45") 
+print(mac:sub(256))            -- "00:14:22:01:22:45" 
+print(mac:sub("0:0:0:0:FF:0")  -- "00:14:22:00:24:45" 
+mac:sub(256, true)             -- true 
+print(mac)                     -- "00:14:22:01:22:45" 
+mac:sub("FF:FF:0:0:0:0", true) -- false (overflow) 
+print(mac)                     -- "00:00:00:00:00:00"</pre>
+
+
+
+<h3>Return value:</h3>
+<ul> 
+       <li>When subtracting inplace: Return <code>true</code> if the subtraction 
+           succeeded or <code>false</code> when the subtraction underflowed.</li> 
+       <li>When deriving new CIDR: Return new instance representing the value of 
+        this instance minus the subtracted amount or the lowest address if 
+           the subtraction underflowed.</li></ul>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="cidr.minhost"></a><strong>cidr:minhost</strong>&nbsp;()</dt>
+<dd>
+
+Calculate the lowest possible host address within this CIDR instance. 
+
+
+
+
+
+
+<h3>Usage:</h3>
+<pre>local addr = luci.ip.new("192.168.123.56/24") 
+print(addr:minhost())  -- "192.168.123.1" 
+local addr6 = luci.ip.new("fd9b:62b3:9cc5:0:221:63ff:fe75:aa17/64") 
+print(addr6:minhost()) -- "fd9b:62b3:9cc5::1" 
+local mac = luci.ip.new("00:14:22:01:22:45/32") 
+print(mac:minhost())   -- "00:14:22:01:00:01"</pre>
+
+
+
+<h3>Return value:</h3>
+Returns a new CIDR instance representing the lowest host address 
+       within this range.
+
+
+
+</dd>
+
+
+
+
+<dt><a name="cidr.maxhost"></a><strong>cidr:maxhost</strong>&nbsp;()</dt>
+<dd>
+
+Calculate the highest possible host address within this CIDR instance. 
+
+
+
+
+
+
+<h3>Usage:</h3>
+<pre>local addr = luci.ip.new("192.168.123.56/24") 
+print(addr:maxhost())  -- "192.168.123.254" (.255 is broadcast) 
+local addr6 = luci.ip.new("fd9b:62b3:9cc5:0:221:63ff:fe75:aa17/64") 
+print(addr6:maxhost()) -- "fd9b:62b3:9cc5:0:ffff:ffff:ffff:ffff" 
+local mac = luci.ip.new("00:14:22:01:22:45/32") 
+print(mac:maxhost())   -- "00:14:22:01:FF:FF"</pre>
+
+
+
+<h3>Return value:</h3>
+Returns a new CIDR instance representing the highest host address 
+       within this range.
+
+
+
+</dd>
+
+
+
+
+<dt><a name="cidr.string"></a><strong>cidr:string</strong>&nbsp;()</dt>
+<dd>
+
+Convert CIDR instance into string representation. 
+If the prefix size of instance is less than 32 for IPv4, 128 for IPv6 or 48 for 
+MACs, the address is returned in the form "address/prefix" otherwise just 
+"address". 
+It is usually not required to call this function directly as CIDR objects 
+define it as __tostring function in the associated metatable. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Returns a string representing the range or address of this CIDR instance
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/luci.ip.html b/docs/api/modules/luci.ip.html
new file mode 100644 (file)
index 0000000..0599396
--- /dev/null
@@ -0,0 +1,1217 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li><strong>luci.ip</strong></li>
+       
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Class <code>luci.ip</code></h1>
+
+<p>
+ LuCI IP calculation and netlink access library.</p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#new">new</a>&nbsp;(address, netmask)</td>
+       <td class="summary">
+Construct a new luci.ip.cidr instance and autodetect the address family.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#IPv4">IPv4</a>&nbsp;(address, netmask)</td>
+       <td class="summary">
+Construct a new IPv4 luci.ip.cidr instance.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#IPv6">IPv6</a>&nbsp;(address, netmask)</td>
+       <td class="summary">
+Construct a new IPv6 luci.ip.cidr instance.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#MAC">MAC</a>&nbsp;(address, netmask)</td>
+       <td class="summary">
+Construct a new MAC luci.ip.cidr instance.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#checkip4">checkip4</a>&nbsp;(address)</td>
+       <td class="summary">
+Verify an IPv4 address.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#checkip6">checkip6</a>&nbsp;(address)</td>
+       <td class="summary">
+Verify an IPv6 address.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#checkmac">checkmac</a>&nbsp;(address)</td>
+       <td class="summary">
+Verify an ethernet MAC address.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#route">route</a>&nbsp;(address, source)</td>
+       <td class="summary">
+Determine the route leading to the given destination.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#routes">routes</a>&nbsp;(filter, callback)</td>
+       <td class="summary">
+Fetch all routes, optionally matching the given criteria.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#neighbors">neighbors</a>&nbsp;(filter, callback)</td>
+       <td class="summary">
+Fetches entries from the IPv4 ARP and IPv6 neighbour kernel table </td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#link">link</a>&nbsp;(device)</td>
+       <td class="summary">
+Fetch basic device information </td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="new"></a><strong>new</strong>&nbsp;(address, netmask)</dt>
+<dd>
+
+Construct a new luci.ip.cidr instance and autodetect the address family. 
+Throws an error if the given strings do not represent a valid address or 
+if the given optional netmask is of a different family.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         address: String containing a valid IPv4 or IPv6 address, optionally 
+with prefix size (CIDR notation) or netmask separated by slash.
+       </li>
+       
+       <li>
+         netmask: String containing a valid IPv4 or IPv6 netmask or number 
+containing a prefix size in bits (<code>0..32</code> for IPv4, 
+<code>0..128</code> for IPv6). Overrides mask embedded in the first argument 
+if specified. (optional)
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+<pre>addr = luci.ip.new("10.24.0.1/24") 
+addr = luci.ip.new("10.24.0.1/255.255.255.0") 
+addr = luci.ip.new("10.24.0.1", "255.255.255.0")        -- separate netmask 
+addr = luci.ip.new("10.24.0.1/24", 16)                  -- override netmask 
+addr6 = luci.ip.new("fe80::221:63ff:fe75:aa17/64") 
+addr6 = luci.ip.new("fe80::221:63ff:fe75:aa17/ffff:ffff:ffff:ffff::") 
+addr6 = luci.ip.new("fe80::221:63ff:fe75:aa17", "ffff:ffff:ffff:ffff::") 
+addr6 = luci.ip.new("fe80::221:63ff:fe75:aa17/64", 128) -- override netmask</pre>
+
+
+
+<h3>Return value:</h3>
+A <code>luci.ip.cidr</code> object representing the given 
+address/mask range.
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#IPv4">
+               IPv4
+       </a>
+       
+       <li><a href="#IPv6">
+               IPv6
+       </a>
+       
+       <li><a href="#MAC">
+               MAC
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="IPv4"></a><strong>IPv4</strong>&nbsp;(address, netmask)</dt>
+<dd>
+
+Construct a new IPv4 luci.ip.cidr instance. 
+Throws an error if the given string does not represent a valid IPv4 address or 
+if the given optional netmask is of a different family.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         address: String containing a valid IPv4, optionally with prefix size 
+(CIDR notation) or netmask separated by slash.
+       </li>
+       
+       <li>
+         netmask: String containing a valid IPv4 netmask or number 
+containing a prefix size between <code>0</code> and <code>32</code> bit. 
+Overrides mask embedded in the first argument if specified. (optional)
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+<pre>addr = luci.ip.IPv4("10.24.0.1/24") 
+addr = luci.ip.IPv4("10.24.0.1/255.255.255.0") 
+addr = luci.ip.IPv4("10.24.0.1", "255.255.255.0")        -- separate netmask 
+addr = luci.ip.IPv4("10.24.0.1/24", 16)                  -- override netmask</pre>
+
+
+
+<h3>Return value:</h3>
+A <code>luci.ip.cidr</code> object representing the given IPv4 range.
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#IPv6">
+               IPv6
+       </a>
+       
+       <li><a href="#MAC">
+               MAC
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="IPv6"></a><strong>IPv6</strong>&nbsp;(address, netmask)</dt>
+<dd>
+
+Construct a new IPv6 luci.ip.cidr instance. 
+Throws an error if the given string does not represent a valid IPv6 address or 
+if the given optional netmask is of a different family.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         address: String containing a valid IPv6, optionally with prefix size 
+(CIDR notation) or netmask separated by slash.
+       </li>
+       
+       <li>
+         netmask: String containing a valid IPv4 netmask or number 
+containing a prefix size between <code>0</code> and <code>128</code> bit. 
+Overrides mask embedded in the first argument if specified. (optional)
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+<pre>addr6 = luci.ip.IPv6("fe80::221:63ff:fe75:aa17/64") 
+addr6 = luci.ip.IPv6("fe80::221:63ff:fe75:aa17/ffff:ffff:ffff:ffff::") 
+addr6 = luci.ip.IPv6("fe80::221:63ff:fe75:aa17", "ffff:ffff:ffff:ffff::") 
+addr6 = luci.ip.IPv6("fe80::221:63ff:fe75:aa17/64", 128) -- override netmask</pre>
+
+
+
+<h3>Return value:</h3>
+A <code>luci.ip.cidr</code> object representing the given IPv6 range.
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#IPv4">
+               IPv4
+       </a>
+       
+       <li><a href="#MAC">
+               MAC
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="MAC"></a><strong>MAC</strong>&nbsp;(address, netmask)</dt>
+<dd>
+
+Construct a new MAC luci.ip.cidr instance. 
+Throws an error if the given string does not represent a valid ethernet MAC 
+address or if the given optional mask is of a different family.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         address: String containing a valid ethernet MAC address, optionally with 
+prefix size (CIDR notation) or mask separated by slash.
+       </li>
+       
+       <li>
+         netmask: String containing a valid MAC address mask or number 
+containing a prefix size between <code>0</code> and <code>48</code> bit. 
+Overrides mask embedded in the first argument if specified. (optional)
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+<pre>intel_macs = luci.ip.MAC("C0:B6:F9:00:00:00/24") 
+intel_macs = luci.ip.MAC("C0:B6:F9:00:00:00/FF:FF:FF:0:0:0") 
+intel_macs = luci.ip.MAC("C0:B6:F9:00:00:00", "FF:FF:FF:0:0:0") 
+intel_macs = luci.ip.MAC("C0:B6:F9:00:00:00/24", 48) -- override mask</pre>
+
+
+
+<h3>Return value:</h3>
+A <code>luci.ip.cidr</code> object representing the given MAC address range.
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#IPv4">
+               IPv4
+       </a>
+       
+       <li><a href="#IPv6">
+               IPv6
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="checkip4"></a><strong>checkip4</strong>&nbsp;(address)</dt>
+<dd>
+
+Verify an IPv4 address. 
+Checks whether given argument is a preexisting luci.ip.cidr IPv4 address 
+instance or a string literal convertible to an IPv4 address and returns a 
+plain Lua string containing the canonical representation of the address. 
+If the argument is not a valid address, returns nothing. This function is 
+intended to aid in safely verifying address literals without having to deal 
+with exceptions.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         address: String containing a valid IPv4 address or existing 
+luci.ip.cidr IPv4 instance.
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+<pre>ipv4 = luci.ip.checkip4(luci.ip.new("127.0.0.1"))  -- "127.0.0.1" 
+ipv4 = luci.ip.checkip4("127.0.0.1")               -- "127.0.0.1" 
+ipv4 = luci.ip.checkip4("nonesense")               -- nothing 
+ipv4 = luci.ip.checkip4(123)                       -- nothing 
+ipv4 = luci.ip.checkip4(nil)                       -- nothing 
+ipv4 = luci.ip.checkip4()                          -- nothing</pre>
+
+
+
+<h3>Return value:</h3>
+A string representing the given IPv4 address.
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#checkip6">
+               checkip6
+       </a>
+       
+       <li><a href="#checkmac">
+               checkmac
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="checkip6"></a><strong>checkip6</strong>&nbsp;(address)</dt>
+<dd>
+
+Verify an IPv6 address. 
+Checks whether given argument is a preexisting luci.ip.cidr IPv6 address 
+instance or a string literal convertible to an IPv6 address and returns a 
+plain Lua string containing the canonical representation of the address. 
+If the argument is not a valid address, returns nothing. This function is 
+intended to aid in safely verifying address literals without having to deal 
+with exceptions.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         address: String containing a valid IPv6 address or existing 
+luci.ip.cidr IPv6 instance.
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+<pre>ipv6 = luci.ip.checkip6(luci.ip.new("0:0:0:0:0:0:0:1"))  -- "::1" 
+ipv6 = luci.ip.checkip6("0:0:0:0:0:0:0:1")               -- "::1" 
+ipv6 = luci.ip.checkip6("nonesense")                     -- nothing 
+ipv6 = luci.ip.checkip6(123)                             -- nothing 
+ipv6 = luci.ip.checkip6(nil)                             -- nothing 
+ipv6 = luci.ip.checkip6()                                -- nothing</pre>
+
+
+
+<h3>Return value:</h3>
+A string representing the given IPv6 address.
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#checkip4">
+               checkip4
+       </a>
+       
+       <li><a href="#checkmac">
+               checkmac
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="checkmac"></a><strong>checkmac</strong>&nbsp;(address)</dt>
+<dd>
+
+Verify an ethernet MAC address. 
+Checks whether given argument is a preexisting luci.ip.cidr MAC address 
+instance or a string literal convertible to an ethernet MAC and returns a 
+plain Lua string containing the canonical representation of the address. 
+If the argument is not a valid address, returns nothing. This function is 
+intended to aid in safely verifying address literals without having to deal 
+with exceptions.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         address: String containing a valid MAC address or existing luci.ip.cidr 
+MAC address instance.
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+<pre>mac = luci.ip.checkmac(luci.ip.new("00-11-22-cc-dd-ee"))  -- "00:11:22:CC:DD:EE" 
+mac = luci.ip.checkmac("00:11:22:cc:dd:ee")               -- "00:11:22:CC:DD:EE" 
+mac = luci.ip.checkmac("nonesense")                       -- nothing 
+mac = luci.ip.checkmac(123)                               -- nothing 
+mac = luci.ip.checkmac(nil)                               -- nothing 
+mac = luci.ip.checkmac()                                  -- nothing</pre>
+
+
+
+<h3>Return value:</h3>
+A string representing the given MAC address.
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#checkip4">
+               checkip4
+       </a>
+       
+       <li><a href="#checkip6">
+               checkip6
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="route"></a><strong>route</strong>&nbsp;(address, source)</dt>
+<dd>
+
+Determine the route leading to the given destination.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         address: A <code>luci.ip.cidr</code> instance or a string containing 
+a valid IPv4 or IPv6 range as specified by <code>luci.ip.new()</code>.
+       </li>
+       
+       <li>
+         source: A <code>luci.ip.cidr</code> instance or a string containing 
+the preferred source address for route selection (optional).
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+<ul> 
+<li>Find default gateway by getting route to Google's public NS server 
+<pre>rt = luci.ip.route("8.8.8.8") 
+if rt ~= nil then 
+       print("gateway is", rt.gw) 
+end</pre></li> 
+<li>Determine IPv6 upstream interface <pre>rt = luci.ip.route("2001::/7") 
+if rt ~= nil then 
+       print("ipv6 upstream device is", rt.dev) 
+end</pre></li> 
+</ul>
+
+
+
+<h3>Return value:</h3>
+<p>Table containing the fields described below.</p> 
+<table id="routetable"> 
+<tr><th>Field</th><th>Description</th></tr> 
+<tr><td><code>type</code><td> 
+  <p>Route type with one of the following numeric values:</p> 
+  <table> 
+  <tr> 
+       <td><code>1</code></td> 
+       <td><code>RTN_UNICAST</code> - Gateway or direct route</td> 
+  </tr> 
+  <tr> 
+       <td><code>2</code></td> 
+       <td><code>RTN_LOCAL</code> - Accept locally</td> 
+  </tr> 
+  <tr> 
+       <td><code>3</code></td> 
+       <td><code>RTN_BROADCAST</code> - 
+           Accept locally as broadcast send as broadcast</td> 
+  </tr> 
+  <tr> 
+       <td><code>4</code></td> 
+       <td><code>RTN_ANYCAST</code> - 
+        Accept locally as broadcast but send as unicast</td> 
+  </tr> 
+  <tr> 
+       <td><code>5</code></td> 
+       <td><code>RTN_MULTICAST</code> - Multicast route</td> 
+  </tr> 
+  </table> 
+</td></tr> 
+<tr> 
+  <td><code>family</code></td> 
+  <td>Number containing the route family, <code>4</code> for IPv4 or 
+      <code>6</code> for IPv6</td> 
+</tr> 
+<tr> 
+  <td><code>dest</code></td> 
+  <td>Destination <code>luci.ip.cidr</code> instance</td> 
+</tr> 
+<tr> 
+  <td><code>gw</code></td> 
+  <td>Gateway <code>luci.ip.cidr</code> instance (optional)</td> 
+</tr> 
+<tr> 
+  <td><code>from</code></td> 
+  <td>Source address <code>luci.ip.cidr</code> instance (optional)</td> 
+</tr> 
+<tr> 
+  <td><code>src</code></td> 
+  <td>Preferred source <code>luci.ip.cidr</code> instance (optional)</td> 
+</tr> 
+<tr> 
+  <td><code>dev</code></td> 
+  <td>String containing the name of the outgoing interface</td> 
+</tr> 
+<tr> 
+  <td><code>iif</code></td> 
+  <td>String containing the name of the incoming interface (optional)</td> 
+</tr> 
+<tr> 
+  <td><code>table</code></td> 
+  <td>Number of the associated routing table (<code>0..65535</code>)</td> 
+</tr> 
+<tr> 
+  <td><code>proto</code></td> 
+  <td>Number of the associated routing protocol</td> 
+</tr> 
+<tr> 
+  <td><code>scope</code></td> 
+  <td>Number describing the scope of the route, most commonly 
+      <code>0</code> for global or <code>253</code> for on-link</td> 
+</tr> 
+<tr> 
+  <td><code>metric</code></td> 
+  <td>Number describing the route metric (optional)</td> 
+</tr> 
+<tr> 
+  <td><code>expires</code></td> 
+  <td>Number of seconds the prefix is valid (IPv6 only, optional)</td> 
+</tr> 
+<tr> 
+  <td><code>error</code></td> 
+  <td>Route destination error code (optional)</td> 
+</tr> 
+</table>
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#routes">
+               routes
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="routes"></a><strong>routes</strong>&nbsp;(filter, callback)</dt>
+<dd>
+
+Fetch all routes, optionally matching the given criteria.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         filter: <p>Table containing one or more of the possible filter 
+criteria described below (optional)</p><table> 
+<tr><th>Field</th><th>Description</th></tr> 
+<tr><td><code>family</code></td><td> 
+ Number describing the address family to return - <code>4</code> selects 
+ IPv4 routes, <code>6</code> IPv6 ones. Any other value selects both. 
+</td></tr> 
+<tr><td><code>iif</code></td><td> 
+ String containing the incoming route interface to match. 
+</td></tr> 
+<tr><td><code>oif</code></td><td> 
+ String containing the outgoing route interface to match. 
+</td></tr> 
+<tr><td><code>type</code></td><td> 
+ Numeric type to match, e.g. <code>1</code> for unicast. 
+</td></tr> 
+<tr><td><code>scope</code></td><td> 
+ Numeric scope to match, e.g. <code>253</code> for onlink. 
+</td></tr> 
+<tr><td><code>proto</code></td><td> 
+ Numeric protocol to match, e.g. <code>2</code> for boot. 
+</td></tr> 
+<tr><td><code>table</code></td><td> 
+ Numeric routing table to match (<code>0..65535</code>). 
+</td></tr> 
+<tr><td><code>gw</code></td><td> 
+ String containing the gateway address to match. Can be in any notation 
+ specified by <code>luci.ip.new()</code>. Prefix matching is performed when 
+ comparing the routes, e.g. "192.168.1.0/24" would select routes with gateway 
+ addresses <code>192.168.1.1 .. 192.168.1.255</code>. 
+</td></tr> 
+<tr><td><code>dest</code></td><td> 
+ String containing the destination to match. Prefix matching is performed. 
+</td></tr> 
+<tr><td><code>from</code></td><td> 
+ String containing the source address to match. Prefix matching is performed. 
+</td></tr> 
+<tr><td><code>src</code></td><td> 
+ String containing the preferred source address to match. 
+ Prefix matching is performed. 
+</td></tr> 
+<tr><td><code>dest_exact</code></td><td> 
+ String containing the destination to match. Exact matching is performed, 
+ e.g. <code>dest = "0.0.0.0/0"</code> would match <em>any</em> IPv4 route 
+ while <code>dest_exact = "0.0.0.0/0"</code> will <em>only</em> match the 
+ default route. 
+</td></tr> 
+<tr><td><code>from_exact</code></td><td> 
+ String containing the source address to match. Exact matching is performed. 
+</td></tr> 
+</table>
+       </li>
+       
+       <li>
+         callback: <p>Callback function to invoke for each found route 
+instead of returning one table of route objects (optional)</p>
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+<ul> 
+<li>Find all IPv4 default routes: 
+<pre>luci.ip.routes({ dest_exact = "0.0.0.0/0" }, function(rt) 
+       print(rt.type, rt.gw, rt.dev) 
+end)</pre></li> 
+<li>Find all global IPv6 prefixes on the current system: 
+<pre>luci.ip.routes({ from = "2001::/7" }, function(rt) 
+       print(rt.from) 
+end)</pre></li> 
+<li>Fetch all IPv4 routes: 
+<pre>routes = luci.ip.routes({ family = 4 }) 
+for _, rt in ipairs(routes) do 
+       print(rt.dest, rt.gw, rt.dev) 
+end</pre></li> 
+</ul>
+
+
+
+<h3>Return value:</h3>
+If no callback function is provided, a table of routes 
+<a href="#routetable">as specified by <code>luci.ip.route()</code></a> 
+is returned. If a callback function is given, it is invoked for each route 
+and nothing is returned.
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#route">
+               route
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="neighbors"></a><strong>neighbors</strong>&nbsp;(filter, callback)</dt>
+<dd>
+
+Fetches entries from the IPv4 ARP and IPv6 neighbour kernel table
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         filter: <p>Table containing one or more of the possible filter 
+criteria described below (optional)</p><table> 
+<tr><th>Field</th><th>Description</th></tr> 
+<tr><td><code>family</code></td><td> 
+ Number describing the address family to return - <code>4</code> selects 
+ IPv4 ARP, <code>6</code> select IPv6 neighbour entries. Any other value 
+ selects both. 
+</td></tr> 
+<tr><td><code>dev</code></td><td> 
+ String containing the associated interface to match. 
+</td></tr> 
+<tr><td><code>dest</code></td><td> 
+ String containing the associated address to match. Can be in any notation 
+ specified by <code>luci.ip.new()</code>. Prefix matching is performed when 
+ comparing the addresses, e.g. "192.168.1.0/24" would select ARP entries 
+ for <code>192.168.1.1 .. 192.168.1.255</code>. 
+</td></tr> 
+<tr><td><code>mac</code></td><td> 
+ String containing MAC address to match. 
+</td></tr> 
+</table>
+       </li>
+       
+       <li>
+         callback: <p>Callback function to invoke for each found neighbour 
+entry instead of returning one table of neighbour entries (optional)</p>
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+<ul> 
+<li>Find all ARP neighbours in the LAN: 
+<pre>luci.ip.neighbors({ dest = "192.168.0.0/16" }, function(n) 
+       print(n.dest, n.mac) 
+end)</pre></li> 
+<li>Find all active IPv6 addresses of host with given MAC: 
+<pre>luci.ip.neighbors({ family = 6, mac = "00:21:63:75:aa:17" }, 
+       function(n) 
+               print(n.dest) 
+       end)</pre></li> 
+</ul>
+
+
+
+<h3>Return value:</h3>
+If no callback function is provided, a table of neighbour entries 
+is returned. If a callback function is given, it is invoked for each entry 
+and nothing is returned. 
+A neighbour entry is a table containing the following fields: 
+<table> 
+<tr><th>Field</th><th>Description</th></tr> 
+<tr> 
+  <td><code>family</code></td> 
+  <td>Number containing the neighbour entry family, <code>4</code> for IPv4 
+      ARP or <code>6</code> for IPv6 NDP</td> 
+</tr> 
+<tr> 
+  <td><code>dev</code></td> 
+  <td>String containing the associated device of the neighbour entry</td> 
+</tr> 
+<tr> 
+  <td><code>dest</code></td> 
+  <td>IP address <code>luci.ip.cidr</code> instance</td> 
+</tr> 
+<tr> 
+  <td><code>mac</code></td> 
+  <td>MAC address <code>luci.ip.cidr</code> instance</td> 
+</tr> 
+<tr> 
+  <td><code>router</code></td> 
+  <td>Boolean "true" if the neighbour entry is a router (IPv6, optional)</td> 
+</tr> 
+<tr> 
+  <td><code>proxy</code></td> 
+  <td>Boolean "true" if this is a proxy entry (optional)</td> 
+</tr> 
+<tr> 
+  <td><code>incomplete</code></td> 
+  <td>Boolean "true" if the entry is in incomplete state (optional)</td> 
+</tr> 
+<tr> 
+  <td><code>reachable</code></td> 
+  <td>Boolean "true" if the entry is in reachable state (optional)</td> 
+</tr> 
+<tr> 
+  <td><code>stale</code></td> 
+  <td>Boolean "true" if the entry is stale (optional)</td> 
+</tr> 
+<tr> 
+  <td><code>delay</code></td> 
+  <td>Boolean "true" if the entry is delayed (optional)</td> 
+</tr> 
+<tr> 
+  <td><code>probe</code></td> 
+  <td>Boolean "true" if the entry is in probe state (optional)</td> 
+</tr> 
+<tr> 
+  <td><code>failed</code></td> 
+  <td>Boolean "true" if the entry is in failed state (optional)</td> 
+</tr> 
+<tr> 
+  <td><code>noarp</code></td> 
+  <td>Boolean "true" if the entry is not caused by NDP or 
+      ARP (optional)</td> 
+</tr> 
+<tr> 
+  <td><code>permanent</code></td> 
+  <td>Boolean "true" if the entry was statically configured from 
+      userspace (optional)</td> 
+</tr> 
+</table>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="link"></a><strong>link</strong>&nbsp;(device)</dt>
+<dd>
+
+Fetch basic device information
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         device: String containing the network device to query
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+<ul> 
+<li>Test whether device br-lan exists: 
+<pre>print(luci.ip.link("br-lan").name ~= nil) 
+</pre></li> 
+<li>Query MAC address of eth0: 
+<pre>print(luci.ip.link("eth0").mac) 
+</pre></li> 
+</ul>
+
+
+
+<h3>Return value:</h3>
+If the given interface is found, a table containing the fields 
+described below is returned, else an empty table. 
+<table> 
+<tr><th>Field</th><th>Description</th></tr> 
+<tr> 
+  <td><code>up</code></td> 
+  <td>Boolean indicating whether the device is in IFF_RUNNING state</td> 
+</tr> 
+<tr> 
+  <td><code>type</code></td> 
+  <td>Numeric value indicating the type of the device, e.g. <code>1</code> 
+      for ethernet.</td> 
+</tr> 
+<tr> 
+  <td><code>name</code></td> 
+  <td>String containing the name of the device</td> 
+</tr> 
+<tr> 
+  <td><code>master</code></td> 
+  <td>If queried device is a bridge port, string containing the name of 
+      parent bridge device (optional)</td> 
+</tr> 
+<tr> 
+  <td><code>mtu</code></td> 
+  <td>Number containing the current MTU of the device</td> 
+</tr> 
+<tr> 
+  <td><code>qlen</code></td> 
+  <td>Number containing the TX queue length of the device</td> 
+</tr> 
+<tr> 
+  <td><code>mac</code></td> 
+  <td>MAC address <code>luci.ip.cidr</code> instance representing the device ethernet 
+      address</td> 
+</tr> 
+</table>
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/luci.json.html b/docs/api/modules/luci.json.html
new file mode 100644 (file)
index 0000000..db2d1da
--- /dev/null
@@ -0,0 +1,594 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li><strong>luci.json</strong></li>
+       
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Object Instance <code>luci.json</code></h1>
+
+<p></p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#ActiveDecoder">ActiveDecoder</a>&nbsp;(customnull)</td>
+       <td class="summary">
+Create a new Active JSON-Decoder.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#ActiveDecoder.get">ActiveDecoder:get</a>&nbsp;()</td>
+       <td class="summary">
+Fetches one JSON-object from given source 
+ </td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Decoder">Decoder</a>&nbsp;(customnull)</td>
+       <td class="summary">
+Create a new JSON-Decoder.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Decoder.get">Decoder:get</a>&nbsp;()</td>
+       <td class="summary">
+Get the decoded data packets after the rawdata has been sent to the sink.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Decoder.sink">Decoder:sink</a>&nbsp;()</td>
+       <td class="summary">
+Create an LTN12 sink from the decoder object which accepts the JSON-Data.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Encoder">Encoder</a>&nbsp;(data, buffersize, fastescape)</td>
+       <td class="summary">
+Create a new JSON-Encoder.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Encoder.source">Encoder:source</a>&nbsp;()</td>
+       <td class="summary">
+Create an LTN12 source providing the encoded JSON-Data.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#decode">decode</a>&nbsp;(json)</td>
+       <td class="summary">
+Directly decode a JSON string 
+ </td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#encode">encode</a>&nbsp;(obj)</td>
+       <td class="summary">
+Direcly encode a Lua object into a JSON string.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#null">null</a>&nbsp;()</td>
+       <td class="summary">
+Null replacement function 
+ </td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="ActiveDecoder"></a><strong>ActiveDecoder</strong>&nbsp;(customnull)</dt>
+<dd>
+
+Create a new Active JSON-Decoder. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         customnull: Use luci.json.null instead of nil for decoding null
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Active JSON-Decoder
+
+
+
+</dd>
+
+
+
+
+<dt><a name="ActiveDecoder.get"></a><strong>ActiveDecoder:get</strong>&nbsp;()</dt>
+<dd>
+
+Fetches one JSON-object from given source 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Decoded object
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Decoder"></a><strong>Decoder</strong>&nbsp;(customnull)</dt>
+<dd>
+
+Create a new JSON-Decoder. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         customnull: Use luci.json.null instead of nil for decoding null
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+JSON-Decoder
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Decoder.get"></a><strong>Decoder:get</strong>&nbsp;()</dt>
+<dd>
+
+Get the decoded data packets after the rawdata has been sent to the sink. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Decoded data
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Decoder.sink"></a><strong>Decoder:sink</strong>&nbsp;()</dt>
+<dd>
+
+Create an LTN12 sink from the decoder object which accepts the JSON-Data. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+LTN12 sink
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Encoder"></a><strong>Encoder</strong>&nbsp;(data, buffersize, fastescape)</dt>
+<dd>
+
+Create a new JSON-Encoder. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         data: Lua-Object to be encoded.
+       </li>
+       
+       <li>
+         buffersize: Blocksize of returned data source.
+       </li>
+       
+       <li>
+         fastescape: Use non-standard escaping (don't escape control chars)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+JSON-Encoder
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Encoder.source"></a><strong>Encoder:source</strong>&nbsp;()</dt>
+<dd>
+
+Create an LTN12 source providing the encoded JSON-Data. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+LTN12 source
+
+
+
+</dd>
+
+
+
+
+<dt><a name="decode"></a><strong>decode</strong>&nbsp;(json)</dt>
+<dd>
+
+Directly decode a JSON string 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         json: JSON-String
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Lua object
+
+
+
+</dd>
+
+
+
+
+<dt><a name="encode"></a><strong>encode</strong>&nbsp;(obj)</dt>
+<dd>
+
+Direcly encode a Lua object into a JSON string. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         obj: Lua Object
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+JSON string
+
+
+
+</dd>
+
+
+
+
+<dt><a name="null"></a><strong>null</strong>&nbsp;()</dt>
+<dd>
+
+Null replacement function 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+null
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/luci.jsonc.html b/docs/api/modules/luci.jsonc.html
new file mode 100644 (file)
index 0000000..79deb93
--- /dev/null
@@ -0,0 +1,393 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li><strong>luci.jsonc</strong></li>
+       
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Class <code>luci.jsonc</code></h1>
+
+<p>
+ LuCI JSON parsing and serialization library. 
+ The luci.jsonc class is a high level Lua binding to the JSON-C library to 
+ allow reading and writing JSON data with minimal overhead.</p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#new">new</a>&nbsp;()</td>
+       <td class="summary">
+Construct a new luci.jsonc.parser instance.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#parse">parse</a>&nbsp;(json)</td>
+       <td class="summary">
+Parse a complete JSON string and convert it into a Lua data structure.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#stringify">stringify</a>&nbsp;(data, pretty)</td>
+       <td class="summary">
+Convert given Lua data into a JSON string.</td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="new"></a><strong>new</strong>&nbsp;()</dt>
+<dd>
+
+Construct a new luci.jsonc.parser instance.
+
+
+
+
+
+<h3>Usage:</h3>
+<code>parser = luci.jsonc.new()</code>
+
+
+
+<h3>Return value:</h3>
+A <code>luci.jsonc.parser</code> object representing a JSON-C tokener.
+
+
+
+</dd>
+
+
+
+
+<dt><a name="parse"></a><strong>parse</strong>&nbsp;(json)</dt>
+<dd>
+
+Parse a complete JSON string and convert it into a Lua data structure.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         json: A string containing the JSON data to parse, must be either a 
+       JSON array or a JSON object.
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+<pre>data = luci.jsonc.parse('{ "name": "John", "age": 34 }') 
+print(data.name)  -- "John"</pre>
+
+
+
+<h3>Return value:</h3>
+On success, a table containing the parsed JSON data is returned, on 
+       failure the function returns <code>nil</code> and a string containing the reason of 
+       the parse error.
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#stringify">
+               stringify
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="stringify"></a><strong>stringify</strong>&nbsp;(data, pretty)</dt>
+<dd>
+
+Convert given Lua data into a JSON string. 
+This function recursively converts the given Lua data into a JSON string, 
+ignoring any unsupported data. Lua tables are converted into JSON arrays if they 
+only contain integer keys, mixed tables are turned into JSON objects with any 
+existing numeric keys converted into strings. 
+Lua functions, coroutines and userdata objects are ignored and Lua numbers are 
+converted to integers if they do not contain fractional values. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         data: The Lua data to convert, can be a table, string, boolean or number.
+       </li>
+       
+       <li>
+         pretty: A boolean value indicating whether the resulting JSON should be 
+       pretty printed.
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+<pre>json = luci.jsonc.stringify({ item = true, values = { 1, 2, 3 } }) 
+print(json)  -- '{"item":true,"values":[1,2,3]}'</pre>
+
+
+
+<h3>Return value:</h3>
+Returns a string containing the JSON representation of the given Lua 
+       data.
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#parse">
+               parse
+       </a>
+       
+</ul>
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/luci.jsonc.parser.html b/docs/api/modules/luci.jsonc.parser.html
new file mode 100644 (file)
index 0000000..709cb9a
--- /dev/null
@@ -0,0 +1,491 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li><strong>luci.jsonc.parser</strong></li>
+       
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Object Instance <code>luci.jsonc.parser</code></h1>
+
+<p>
+ LuCI JSON parser instance. 
+ A JSON parser instance is useful to parse JSON data chunk by chunk, without 
+ the need to assemble all data in advance.</p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#parser.parse">parser:parse</a>&nbsp;(json)</td>
+       <td class="summary">
+Parses one chunk of JSON data.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#parser.get">parser:get</a>&nbsp;()</td>
+       <td class="summary">
+Convert parsed JSON data into Lua table.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#parser.set">parser:set</a>&nbsp;(data)</td>
+       <td class="summary">
+Put Lua data into the parser.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#parser.sink">parser:sink</a>&nbsp;()</td>
+       <td class="summary">
+Generate an ltn12-compatible sink.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#parser.stringify">parser:stringify</a>&nbsp;(pretty)</td>
+       <td class="summary">
+Serialize current parser state as JSON.</td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="parser.parse"></a><strong>parser:parse</strong>&nbsp;(json)</dt>
+<dd>
+
+Parses one chunk of JSON data. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         json: String containing the JSON fragment to parse
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+<pre>parser = luci.jsonc.new() 
+while true do 
+       chunk = ...  -- fetch a cunk of data, e.g. from a socket 
+       finish, errmsg = <b>parser.parse(chunk)</b> 
+       if finish == nil then 
+               error("Cannot parse JSON: " .. errmsg) 
+       end 
+       if finish == true then 
+               break 
+       end 
+end</pre>
+
+
+
+<h3>Return value:</h3>
+<ul> 
+       <li><code>true</code> if a complete JSON object has been parsed and no further input is 
+           expected.</li> 
+       <li><code>false</code> if further input is required</li> 
+       <li><code>nil</code> if an error was encountered while parsing the current chunk. 
+           In this case a string describing the parse error is returned as second 
+           value.</li></ul>
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#parser.get">
+               parser:get
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="parser.get"></a><strong>parser:get</strong>&nbsp;()</dt>
+<dd>
+
+Convert parsed JSON data into Lua table. 
+
+
+
+
+
+
+<h3>Usage:</h3>
+<pre>parser = luci.jsonc.new() 
+parser:parse('{ "example": "test" }') 
+data = parser:get() 
+print(data.example)  -- "test"</pre>
+
+
+
+<h3>Return value:</h3>
+Parsed JSON object converted into a Lua table or <code>nil</code> if the parser 
+       didn't finish or encountered an error.
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#parser.parse">
+               parser:parse
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="parser.set"></a><strong>parser:set</strong>&nbsp;(data)</dt>
+<dd>
+
+Put Lua data into the parser. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         data: Lua data to put into the parser object. The data is converted to an 
+       internal JSON representation that can be dumped with <code>stringify()</code>. 
+       The conversion follows the rules described in <code>luci.jsonc.stringify</code>.
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+<pre>parser = luci.jsonc.new() 
+parser:set({ "some", "data" })</pre>
+
+
+
+<h3>Return value:</h3>
+Nothing is returned.
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#parser.stringify">
+               parser:stringify
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="parser.sink"></a><strong>parser:sink</strong>&nbsp;()</dt>
+<dd>
+
+Generate an ltn12-compatible sink. 
+
+
+
+
+
+
+<h3>Usage:</h3>
+<pre>parser = luci.jsonc.new() 
+ltn12.pump.all(ltn12.source.file(io.input()), parser:sink()) 
+print(parser:get())</pre>
+
+
+
+<h3>Return value:</h3>
+Returns a function that can be used as an ltn12 sink.
+
+
+
+</dd>
+
+
+
+
+<dt><a name="parser.stringify"></a><strong>parser:stringify</strong>&nbsp;(pretty)</dt>
+<dd>
+
+Serialize current parser state as JSON. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         pretty: A boolean value indicating whether the resulting JSON should be pretty printed.
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+<pre>parser = luci.jsonc.new() 
+parser:parse('{ "example": "test" }') 
+print(parser:serialize())  -- '{"example":"test"}'</pre>
+
+
+
+<h3>Return value:</h3>
+Returns the serialized JSON data of this parser instance.
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/luci.model.ipkg.html b/docs/api/modules/luci.model.ipkg.html
new file mode 100644 (file)
index 0000000..a0af318
--- /dev/null
@@ -0,0 +1,730 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li><strong>luci.model.ipkg</strong></li>
+       
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Class <code>luci.model.ipkg</code></h1>
+
+<p></p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#compare_versions">compare_versions</a>&nbsp;(ver1, ver2, comp)</td>
+       <td class="summary">
+lua version of opkg compare-versions 
+ </td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#find">find</a>&nbsp;(pat, cb)</td>
+       <td class="summary">
+Find packages that match the given pattern.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#info">info</a>&nbsp;(pkg)</td>
+       <td class="summary">
+Return information about installed and available packages.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#install">install</a>&nbsp;(...)</td>
+       <td class="summary">
+Install one or more packages.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#installed">installed</a>&nbsp;(pkg)</td>
+       <td class="summary">
+Determine whether a given package is installed.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#list_all">list_all</a>&nbsp;(pat, cb)</td>
+       <td class="summary">
+List all packages known to opkg.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#list_installed">list_installed</a>&nbsp;(pat, cb)</td>
+       <td class="summary">
+List installed packages.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#overlay_root">overlay_root</a>&nbsp;()</td>
+       <td class="summary">
+Determines the overlay root used by opkg.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#remove">remove</a>&nbsp;(...)</td>
+       <td class="summary">
+Remove one or more packages.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#status">status</a>&nbsp;(pkg)</td>
+       <td class="summary">
+Return the package status of one or more packages.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#update">update</a>&nbsp;()</td>
+       <td class="summary">
+Update package lists.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#upgrade">upgrade</a>&nbsp;()</td>
+       <td class="summary">
+Upgrades all installed packages.</td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="compare_versions"></a><strong>compare_versions</strong>&nbsp;(ver1, ver2, comp)</dt>
+<dd>
+
+lua version of opkg compare-versions 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         ver1: string version 1
+       </li>
+       
+       <li>
+         ver2: string version 2
+       </li>
+       
+       <li>
+         comp: string compare versions using 
+               "<=" or "<" lower-equal 
+               ">" or ">=" greater-equal 
+               "=" equal 
+               "<<" lower 
+               ">>" greater 
+               "~=" not equal
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean indicating the status of the compare
+
+
+
+</dd>
+
+
+
+
+<dt><a name="find"></a><strong>find</strong>&nbsp;(pat, cb)</dt>
+<dd>
+
+Find packages that match the given pattern. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         pat: Find packages whose names or descriptions match this pattern, nil results in zero results
+       </li>
+       
+       <li>
+         cb: Callback function invoked for each patckage, receives name, version and description as arguments
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+nothing
+
+
+
+</dd>
+
+
+
+
+<dt><a name="info"></a><strong>info</strong>&nbsp;(pkg)</dt>
+<dd>
+
+Return information about installed and available packages. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         pkg: Limit output to a (set of) packages
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table containing package information
+
+
+
+</dd>
+
+
+
+
+<dt><a name="install"></a><strong>install</strong>&nbsp;(...)</dt>
+<dd>
+
+Install one or more packages. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         ...: List of packages to install
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>Boolean indicating the status of the action
+       
+       <li>OPKG return code, STDOUT and STDERR
+       
+</ol>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="installed"></a><strong>installed</strong>&nbsp;(pkg)</dt>
+<dd>
+
+Determine whether a given package is installed. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         pkg: Package
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean
+
+
+
+</dd>
+
+
+
+
+<dt><a name="list_all"></a><strong>list_all</strong>&nbsp;(pat, cb)</dt>
+<dd>
+
+List all packages known to opkg. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         pat: Only find packages matching this pattern, nil lists all packages
+       </li>
+       
+       <li>
+         cb: Callback function invoked for each package, receives name, version and description as arguments
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+nothing
+
+
+
+</dd>
+
+
+
+
+<dt><a name="list_installed"></a><strong>list_installed</strong>&nbsp;(pat, cb)</dt>
+<dd>
+
+List installed packages. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         pat: Only find packages matching this pattern, nil lists all packages
+       </li>
+       
+       <li>
+         cb: Callback function invoked for each package, receives name, version and description as arguments
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+nothing
+
+
+
+</dd>
+
+
+
+
+<dt><a name="overlay_root"></a><strong>overlay_root</strong>&nbsp;()</dt>
+<dd>
+
+Determines the overlay root used by opkg. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing the directory path of the overlay root.
+
+
+
+</dd>
+
+
+
+
+<dt><a name="remove"></a><strong>remove</strong>&nbsp;(...)</dt>
+<dd>
+
+Remove one or more packages. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         ...: List of packages to install
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>Boolean indicating the status of the action
+       
+       <li>OPKG return code, STDOUT and STDERR
+       
+</ol>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="status"></a><strong>status</strong>&nbsp;(pkg)</dt>
+<dd>
+
+Return the package status of one or more packages. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         pkg: Limit output to a (set of) packages
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table containing package status information
+
+
+
+</dd>
+
+
+
+
+<dt><a name="update"></a><strong>update</strong>&nbsp;()</dt>
+<dd>
+
+Update package lists. 
+
+
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>Boolean indicating the status of the action
+       
+       <li>OPKG return code, STDOUT and STDERR
+       
+</ol>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="upgrade"></a><strong>upgrade</strong>&nbsp;()</dt>
+<dd>
+
+Upgrades all installed packages. 
+
+
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>Boolean indicating the status of the action
+       
+       <li>OPKG return code, STDOUT and STDERR
+       
+</ol>
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/luci.model.uci.html b/docs/api/modules/luci.model.uci.html
new file mode 100644 (file)
index 0000000..c1eaf5f
--- /dev/null
@@ -0,0 +1,1631 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li><strong>luci.model.uci</strong></li>
+       
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Object Instance <code>luci.model.uci</code></h1>
+
+<p></p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#Cursor.add">Cursor:add</a>&nbsp;(config, type)</td>
+       <td class="summary">
+Add an anonymous section.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Cursor.apply">Cursor:apply</a>&nbsp;(rollback)</td>
+       <td class="summary">
+Applies UCI configuration changes.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Cursor.changes">Cursor:changes</a>&nbsp;(config)</td>
+       <td class="summary">
+Get a table of saved but uncommitted changes.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Cursor.commit">Cursor:commit</a>&nbsp;(config)</td>
+       <td class="summary">
+Commit saved changes.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Cursor.confirm">Cursor:confirm</a>&nbsp;()</td>
+       <td class="summary">
+Confirms UCI apply process.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Cursor.delete">Cursor:delete</a>&nbsp;(config, section, option)</td>
+       <td class="summary">
+Deletes a section or an option.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Cursor.delete_all">Cursor:delete_all</a>&nbsp;(config, type, comparator)</td>
+       <td class="summary">
+Delete all sections of a given type that match certain criteria.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Cursor.foreach">Cursor:foreach</a>&nbsp;(config, type, callback)</td>
+       <td class="summary">
+Call a function for every section of a certain type.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Cursor.get">Cursor:get</a>&nbsp;(config, section, option)</td>
+       <td class="summary">
+Get a section type or an option 
+ </td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Cursor.get_all">Cursor:get_all</a>&nbsp;(config, section)</td>
+       <td class="summary">
+Get all sections of a config or all values of a section.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Cursor.get_bool">Cursor:get_bool</a>&nbsp;(config, section, option)</td>
+       <td class="summary">
+Get a boolean option and return it's value as true or false.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Cursor.get_confdir">Cursor:get_confdir</a>&nbsp;()</td>
+       <td class="summary">
+Get the configuration directory.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Cursor.get_first">Cursor:get_first</a>&nbsp;(config, type, option, default)</td>
+       <td class="summary">
+Get the given option from the first section with the given type.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Cursor.get_list">Cursor:get_list</a>&nbsp;(config, section, option)</td>
+       <td class="summary">
+Get an option or list and return values as table.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Cursor.get_savedir">Cursor:get_savedir</a>&nbsp;()</td>
+       <td class="summary">
+Get the directory for uncomitted changes.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Cursor.get_session_id">Cursor:get_session_id</a>&nbsp;()</td>
+       <td class="summary">
+Get the effective session ID.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Cursor.load">Cursor:load</a>&nbsp;(config)</td>
+       <td class="summary">
+Manually load a config.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Cursor.revert">Cursor:revert</a>&nbsp;(config)</td>
+       <td class="summary">
+Revert saved but uncommitted changes.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Cursor.rollback">Cursor:rollback</a>&nbsp;()</td>
+       <td class="summary">
+Cancels UCI apply process.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Cursor.rollback_pending">Cursor:rollback_pending</a>&nbsp;()</td>
+       <td class="summary">
+Checks whether a pending rollback is scheduled.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Cursor.save">Cursor:save</a>&nbsp;(config)</td>
+       <td class="summary">
+Saves changes made to a config to make them committable.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Cursor.section">Cursor:section</a>&nbsp;(config, type, name, values)</td>
+       <td class="summary">
+Create a new section and initialize it with data.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Cursor.set">Cursor:set</a>&nbsp;(config, section, option, value)</td>
+       <td class="summary">
+Set a value or create a named section.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Cursor.set_confdir">Cursor:set_confdir</a>&nbsp;(directory)</td>
+       <td class="summary">
+Set the configuration directory.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Cursor.set_list">Cursor:set_list</a>&nbsp;(config, section, option, value)</td>
+       <td class="summary">
+Set given values as list.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Cursor.set_savedir">Cursor:set_savedir</a>&nbsp;(directory)</td>
+       <td class="summary">
+Set the directory for uncommitted changes.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Cursor.set_session_id">Cursor:set_session_id</a>&nbsp;(id)</td>
+       <td class="summary">
+Set the effective session ID.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Cursor.substate">Cursor:substate</a>&nbsp;()</td>
+       <td class="summary">
+Create a sub-state of this cursor.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Cursor.tset">Cursor:tset</a>&nbsp;(config, section, values)</td>
+       <td class="summary">
+Updated the data of a section using data from a table.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Cursor.unload">Cursor:unload</a>&nbsp;(config)</td>
+       <td class="summary">
+Discard changes made to a config.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#cursor">cursor</a>&nbsp;()</td>
+       <td class="summary">
+Create a new UCI-Cursor.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#cursor_state">cursor_state</a>&nbsp;()</td>
+       <td class="summary">
+Create a new Cursor initialized to the state directory.</td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="Cursor.add"></a><strong>Cursor:add</strong>&nbsp;(config, type)</dt>
+<dd>
+
+Add an anonymous section. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         config: UCI config
+       </li>
+       
+       <li>
+         type: UCI section type
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Name of created section
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.apply"></a><strong>Cursor:apply</strong>&nbsp;(rollback)</dt>
+<dd>
+
+Applies UCI configuration changes. 
+If the rollback parameter is set to true, the apply function will invoke the 
+rollback mechanism which causes the configuration to be automatically reverted 
+if no confirm() call occurs within a certain timeout. 
+The current default timeout is 30s and can be increased using the 
+"luci.apply.timeout" uci configuration key. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         rollback: Enable rollback mechanism
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean whether operation succeeded
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.changes"></a><strong>Cursor:changes</strong>&nbsp;(config)</dt>
+<dd>
+
+Get a table of saved but uncommitted changes. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         config: UCI config
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table of changes
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#Cursor.save">
+               Cursor:save
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.commit"></a><strong>Cursor:commit</strong>&nbsp;(config)</dt>
+<dd>
+
+Commit saved changes. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         config: UCI config
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean whether operation succeeded
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#Cursor.revert">
+               Cursor:revert
+       </a>
+       
+       <li><a href="#Cursor.save">
+               Cursor:save
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.confirm"></a><strong>Cursor:confirm</strong>&nbsp;()</dt>
+<dd>
+
+Confirms UCI apply process. 
+If a previous UCI apply with rollback has been invoked using apply(true), 
+this function confirms the process and cancels the pending rollback timer. 
+If no apply with rollback session is active, the function has no effect and 
+returns with a "No data" error. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean whether operation succeeded
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.delete"></a><strong>Cursor:delete</strong>&nbsp;(config, section, option)</dt>
+<dd>
+
+Deletes a section or an option. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         config: UCI config
+       </li>
+       
+       <li>
+         section: UCI section name
+       </li>
+       
+       <li>
+         option: UCI option (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean whether operation succeeded
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.delete_all"></a><strong>Cursor:delete_all</strong>&nbsp;(config, type, comparator)</dt>
+<dd>
+
+Delete all sections of a given type that match certain criteria. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         config: UCI config
+       </li>
+       
+       <li>
+         type: UCI section type
+       </li>
+       
+       <li>
+         comparator: Function that will be called for each section and returns 
+                                       a boolean whether to delete the current section (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.foreach"></a><strong>Cursor:foreach</strong>&nbsp;(config, type, callback)</dt>
+<dd>
+
+Call a function for every section of a certain type. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         config: UCI config
+       </li>
+       
+       <li>
+         type: UCI section type
+       </li>
+       
+       <li>
+         callback: Function to be called
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean whether operation succeeded
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.get"></a><strong>Cursor:get</strong>&nbsp;(config, section, option)</dt>
+<dd>
+
+Get a section type or an option 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         config: UCI config
+       </li>
+       
+       <li>
+         section: UCI section name
+       </li>
+       
+       <li>
+         option: UCI option (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+UCI value
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.get_all"></a><strong>Cursor:get_all</strong>&nbsp;(config, section)</dt>
+<dd>
+
+Get all sections of a config or all values of a section. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         config: UCI config
+       </li>
+       
+       <li>
+         section: UCI section name (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table of UCI sections or table of UCI values
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.get_bool"></a><strong>Cursor:get_bool</strong>&nbsp;(config, section, option)</dt>
+<dd>
+
+Get a boolean option and return it's value as true or false. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         config: UCI config
+       </li>
+       
+       <li>
+         section: UCI section name
+       </li>
+       
+       <li>
+         option: UCI option
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.get_confdir"></a><strong>Cursor:get_confdir</strong>&nbsp;()</dt>
+<dd>
+
+Get the configuration directory. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Configuration directory
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.get_first"></a><strong>Cursor:get_first</strong>&nbsp;(config, type, option, default)</dt>
+<dd>
+
+Get the given option from the first section with the given type. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         config: UCI config
+       </li>
+       
+       <li>
+         type: UCI section type
+       </li>
+       
+       <li>
+         option: UCI option (optional)
+       </li>
+       
+       <li>
+         default: Default value (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+UCI value
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.get_list"></a><strong>Cursor:get_list</strong>&nbsp;(config, section, option)</dt>
+<dd>
+
+Get an option or list and return values as table. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         config: UCI config
+       </li>
+       
+       <li>
+         section: UCI section name
+       </li>
+       
+       <li>
+         option: UCI option
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+table.         If the option was not found, you will simply get an empty 
+                                       table.
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.get_savedir"></a><strong>Cursor:get_savedir</strong>&nbsp;()</dt>
+<dd>
+
+Get the directory for uncomitted changes. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Save directory
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.get_session_id"></a><strong>Cursor:get_session_id</strong>&nbsp;()</dt>
+<dd>
+
+Get the effective session ID. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing the session ID
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.load"></a><strong>Cursor:load</strong>&nbsp;(config)</dt>
+<dd>
+
+Manually load a config. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         config: UCI config
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean whether operation succeeded
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#Cursor.save">
+               Cursor:save
+       </a>
+       
+       <li><a href="#Cursor.unload">
+               Cursor:unload
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.revert"></a><strong>Cursor:revert</strong>&nbsp;(config)</dt>
+<dd>
+
+Revert saved but uncommitted changes. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         config: UCI config
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean whether operation succeeded
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#Cursor.commit">
+               Cursor:commit
+       </a>
+       
+       <li><a href="#Cursor.save">
+               Cursor:save
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.rollback"></a><strong>Cursor:rollback</strong>&nbsp;()</dt>
+<dd>
+
+Cancels UCI apply process. 
+If a previous UCI apply with rollback has been invoked using apply(true), 
+this function cancels the process and rolls back the configuration to the 
+pre-apply state. 
+If no apply with rollback session is active, the function has no effect and 
+returns with a "No data" error. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean whether operation succeeded
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.rollback_pending"></a><strong>Cursor:rollback_pending</strong>&nbsp;()</dt>
+<dd>
+
+Checks whether a pending rollback is scheduled. 
+If a previous UCI apply with rollback has been invoked using apply(true), 
+and has not been confirmed or rolled back yet, this function returns true 
+and the remaining time until rollback in seconds. If no rollback is pending, 
+the function returns false. On error, the function returns false and an 
+additional string describing the error. 
+
+
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>Boolean whether rollback is pending
+       
+       <li>Remaining time in seconds
+       
+</ol>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.save"></a><strong>Cursor:save</strong>&nbsp;(config)</dt>
+<dd>
+
+Saves changes made to a config to make them committable. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         config: UCI config
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean whether operation succeeded
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#Cursor.load">
+               Cursor:load
+       </a>
+       
+       <li><a href="#Cursor.unload">
+               Cursor:unload
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.section"></a><strong>Cursor:section</strong>&nbsp;(config, type, name, values)</dt>
+<dd>
+
+Create a new section and initialize it with data. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         config: UCI config
+       </li>
+       
+       <li>
+         type: UCI section type
+       </li>
+       
+       <li>
+         name: UCI section name (optional)
+       </li>
+       
+       <li>
+         values: Table of key - value pairs to initialize the section with
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Name of created section
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.set"></a><strong>Cursor:set</strong>&nbsp;(config, section, option, value)</dt>
+<dd>
+
+Set a value or create a named section. 
+When invoked with three arguments <code>config</code>, <code>sectionname</code>, <code>sectiontype</code>, 
+then a named section of the given type is created. 
+When invoked with four arguments <code>config</code>, <code>sectionname</code>, <code>optionname</code> and 
+<code>optionvalue</code> then the value of the specified option is set to the given value. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         config: UCI config
+       </li>
+       
+       <li>
+         section: UCI section name
+       </li>
+       
+       <li>
+         option: UCI option or UCI section type
+       </li>
+       
+       <li>
+         value: UCI value or nothing if you want to create a section
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean whether operation succeeded
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.set_confdir"></a><strong>Cursor:set_confdir</strong>&nbsp;(directory)</dt>
+<dd>
+
+Set the configuration directory. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         directory: UCI configuration directory
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean whether operation succeeded
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.set_list"></a><strong>Cursor:set_list</strong>&nbsp;(config, section, option, value)</dt>
+<dd>
+
+Set given values as list. Setting a list option to an empty list 
+has the same effect as deleting the option. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         config: UCI config
+       </li>
+       
+       <li>
+         section: UCI section name
+       </li>
+       
+       <li>
+         option: UCI option
+       </li>
+       
+       <li>
+         value: Value or table. Non-table values will be set as single 
+                                       item UCI list.
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean whether operation succeeded
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.set_savedir"></a><strong>Cursor:set_savedir</strong>&nbsp;(directory)</dt>
+<dd>
+
+Set the directory for uncommitted changes. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         directory: UCI changes directory
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean whether operation succeeded
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.set_session_id"></a><strong>Cursor:set_session_id</strong>&nbsp;(id)</dt>
+<dd>
+
+Set the effective session ID. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         id: String containing the session ID to set
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean whether operation succeeded
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.substate"></a><strong>Cursor:substate</strong>&nbsp;()</dt>
+<dd>
+
+Create a sub-state of this cursor. 
+The sub-state is tied to the parent cursor, means it the parent unloads or 
+loads configs, the sub state will do so as well. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+UCI state cursor tied to the parent cursor
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.tset"></a><strong>Cursor:tset</strong>&nbsp;(config, section, values)</dt>
+<dd>
+
+Updated the data of a section using data from a table. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         config: UCI config
+       </li>
+       
+       <li>
+         section: UCI section name (optional)
+       </li>
+       
+       <li>
+         values: Table of key - value pairs to update the section with
+       </li>
+       
+</ul>
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.unload"></a><strong>Cursor:unload</strong>&nbsp;(config)</dt>
+<dd>
+
+Discard changes made to a config. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         config: UCI config
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean whether operation succeeded
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#Cursor.load">
+               Cursor:load
+       </a>
+       
+       <li><a href="#Cursor.save">
+               Cursor:save
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="cursor"></a><strong>cursor</strong>&nbsp;()</dt>
+<dd>
+
+Create a new UCI-Cursor. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+UCI-Cursor
+
+
+
+</dd>
+
+
+
+
+<dt><a name="cursor_state"></a><strong>cursor_state</strong>&nbsp;()</dt>
+<dd>
+
+Create a new Cursor initialized to the state directory. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+UCI cursor
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/luci.rpcc.html b/docs/api/modules/luci.rpcc.html
new file mode 100644 (file)
index 0000000..1806578
--- /dev/null
@@ -0,0 +1,324 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li><strong>luci.rpcc</strong></li>
+       
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Object Instance <code>luci.rpcc</code></h1>
+
+<p></p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#Client.proxy">Client:proxy</a>&nbsp;(prefix)</td>
+       <td class="summary">
+Create a transparent RPC proxy.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Client.request">Client:request</a>&nbsp;(method, params, notification)</td>
+       <td class="summary">
+Request an RP call and get the response.</td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="Client.proxy"></a><strong>Client:proxy</strong>&nbsp;(prefix)</dt>
+<dd>
+
+Create a transparent RPC proxy. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         prefix: Method prefix
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+RPC Proxy object
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Client.request"></a><strong>Client:request</strong>&nbsp;(method, params, notification)</dt>
+<dd>
+
+Request an RP call and get the response. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         method: Remote method
+       </li>
+       
+       <li>
+         params: Parameters
+       </li>
+       
+       <li>
+         notification: Notification only?
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+response 
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/luci.rpcc.ruci.html b/docs/api/modules/luci.rpcc.ruci.html
new file mode 100644 (file)
index 0000000..7348f19
--- /dev/null
@@ -0,0 +1,277 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li><strong>luci.rpcc.ruci</strong></li>
+       
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Object Instance <code>luci.rpcc.ruci</code></h1>
+
+<p></p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#factory">factory</a>&nbsp;(rpccl)</td>
+       <td class="summary">
+Create a new UCI over RPC proxy.</td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="factory"></a><strong>factory</strong>&nbsp;(rpccl)</dt>
+<dd>
+
+Create a new UCI over RPC proxy. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         rpccl: RPC client
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Network transparent UCI module 
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/luci.sys.html b/docs/api/modules/luci.sys.html
new file mode 100644 (file)
index 0000000..b86d280
--- /dev/null
@@ -0,0 +1,641 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li><strong>luci.sys</strong></li>
+       
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Class <code>luci.sys</code></h1>
+
+<p></p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#call">call</a>&nbsp;(...)</td>
+       <td class="summary">
+Execute a given shell command and return the error code 
+ </td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#dmesg">dmesg</a>&nbsp;()</td>
+       <td class="summary">
+Retrieves the output of the "dmesg" command.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#exec">exec</a>&nbsp;(command)</td>
+       <td class="summary">
+Execute a given shell command and capture its standard output 
+ </td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#getenv">getenv</a>&nbsp;(var)</td>
+       <td class="summary">
+Retrieve environment variables.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#hostname">hostname</a>&nbsp;(String)</td>
+       <td class="summary">
+Get or set the current hostname.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#httpget">httpget</a>&nbsp;(url, stream, target)</td>
+       <td class="summary">
+Returns the contents of a documented referred by an URL.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#mounts">mounts</a>&nbsp;()</td>
+       <td class="summary">
+Retrieve information about currently mounted file systems.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#reboot">reboot</a>&nbsp;()</td>
+       <td class="summary">
+Initiate a system reboot.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#syslog">syslog</a>&nbsp;()</td>
+       <td class="summary">
+Retrieves the output of the "logread" command.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#uniqueid">uniqueid</a>&nbsp;(bytes)</td>
+       <td class="summary">
+Generates a random id with specified length.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#uptime">uptime</a>&nbsp;()</td>
+       <td class="summary">
+Returns the current system uptime stats.</td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="call"></a><strong>call</strong>&nbsp;(...)</dt>
+<dd>
+
+Execute a given shell command and return the error code 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         ...: Command to call
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Error code of the command
+
+
+
+</dd>
+
+
+
+
+<dt><a name="dmesg"></a><strong>dmesg</strong>&nbsp;()</dt>
+<dd>
+
+Retrieves the output of the "dmesg" command. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing the current log buffer
+
+
+
+</dd>
+
+
+
+
+<dt><a name="exec"></a><strong>exec</strong>&nbsp;(command)</dt>
+<dd>
+
+Execute a given shell command and capture its standard output 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         command: Command to call
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing the return the output of the command
+
+
+
+</dd>
+
+
+
+
+<dt><a name="getenv"></a><strong>getenv</strong>&nbsp;(var)</dt>
+<dd>
+
+Retrieve environment variables. If no variable is given then a table 
+containing the whole environment is returned otherwise this function returns 
+the corresponding string value for the given name or nil if no such variable 
+exists.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         var: Name of the environment variable to retrieve (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>String containing the value of the specified variable
+       
+       <li>Table containing all variables if no variable name is given
+       
+</ol>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="hostname"></a><strong>hostname</strong>&nbsp;(String)</dt>
+<dd>
+
+Get or set the current hostname. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         String: containing a new hostname to set (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing the system hostname
+
+
+
+</dd>
+
+
+
+
+<dt><a name="httpget"></a><strong>httpget</strong>&nbsp;(url, stream, target)</dt>
+<dd>
+
+Returns the contents of a documented referred by an URL. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         url: The URL to retrieve
+       </li>
+       
+       <li>
+         stream: Return a stream instead of a buffer
+       </li>
+       
+       <li>
+         target: Directly write to target file name
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing the contents of given the URL
+
+
+
+</dd>
+
+
+
+
+<dt><a name="mounts"></a><strong>mounts</strong>&nbsp;()</dt>
+<dd>
+
+Retrieve information about currently mounted file systems. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table containing mount information
+
+
+
+</dd>
+
+
+
+
+<dt><a name="reboot"></a><strong>reboot</strong>&nbsp;()</dt>
+<dd>
+
+Initiate a system reboot. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Return value of os.execute()
+
+
+
+</dd>
+
+
+
+
+<dt><a name="syslog"></a><strong>syslog</strong>&nbsp;()</dt>
+<dd>
+
+Retrieves the output of the "logread" command. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing the current log buffer
+
+
+
+</dd>
+
+
+
+
+<dt><a name="uniqueid"></a><strong>uniqueid</strong>&nbsp;(bytes)</dt>
+<dd>
+
+Generates a random id with specified length. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         bytes: Number of bytes for the unique id
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing hex encoded id
+
+
+
+</dd>
+
+
+
+
+<dt><a name="uptime"></a><strong>uptime</strong>&nbsp;()</dt>
+<dd>
+
+Returns the current system uptime stats. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing total uptime in seconds
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/luci.sys.init.html b/docs/api/modules/luci.sys.init.html
new file mode 100644 (file)
index 0000000..e2c51f9
--- /dev/null
@@ -0,0 +1,512 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li><strong>luci.sys.init</strong></li>
+       
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Class <code>luci.sys.init</code></h1>
+
+<p>
+LuCI system utilities / init related functions. 
+</p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#init.disable">disable</a>&nbsp;(name)</td>
+       <td class="summary">
+Disable the given init script 
+ </td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#init.enable">enable</a>&nbsp;(name)</td>
+       <td class="summary">
+Enable the given init script 
+ </td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#init.enabled">enabled</a>&nbsp;(name)</td>
+       <td class="summary">
+Test whether the given init script is enabled 
+ </td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#init.index">index</a>&nbsp;(name)</td>
+       <td class="summary">
+Get the index of he given init script 
+ </td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#init.names">names</a>&nbsp;()</td>
+       <td class="summary">
+Get the names of all installed init scripts 
+ </td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#init.start">start</a>&nbsp;(name)</td>
+       <td class="summary">
+Start the given init script 
+ </td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#init.stop">stop</a>&nbsp;(name)</td>
+       <td class="summary">
+Stop the given init script 
+ </td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="init.disable"></a><strong>disable</strong>&nbsp;(name)</dt>
+<dd>
+
+Disable the given init script 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         name: Name of the init script
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean indicating success
+
+
+
+</dd>
+
+
+
+
+<dt><a name="init.enable"></a><strong>enable</strong>&nbsp;(name)</dt>
+<dd>
+
+Enable the given init script 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         name: Name of the init script
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean indicating success
+
+
+
+</dd>
+
+
+
+
+<dt><a name="init.enabled"></a><strong>enabled</strong>&nbsp;(name)</dt>
+<dd>
+
+Test whether the given init script is enabled 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         name: Name of the init script
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean indicating whether init is enabled
+
+
+
+</dd>
+
+
+
+
+<dt><a name="init.index"></a><strong>index</strong>&nbsp;(name)</dt>
+<dd>
+
+Get the index of he given init script 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         name: Name of the init script
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Numeric index value
+
+
+
+</dd>
+
+
+
+
+<dt><a name="init.names"></a><strong>names</strong>&nbsp;()</dt>
+<dd>
+
+Get the names of all installed init scripts 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table containing the names of all inistalled init scripts
+
+
+
+</dd>
+
+
+
+
+<dt><a name="init.start"></a><strong>start</strong>&nbsp;(name)</dt>
+<dd>
+
+Start the given init script 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         name: Name of the init script
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean indicating success
+
+
+
+</dd>
+
+
+
+
+<dt><a name="init.stop"></a><strong>stop</strong>&nbsp;(name)</dt>
+<dd>
+
+Stop the given init script 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         name: Name of the init script
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean indicating success
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/luci.sys.iptparser.html b/docs/api/modules/luci.sys.iptparser.html
new file mode 100644 (file)
index 0000000..5928281
--- /dev/null
@@ -0,0 +1,462 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li><strong>luci.sys.iptparser</strong></li>
+       
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Object Instance <code>luci.sys.iptparser</code></h1>
+
+<p></p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#IptParser">IptParser</a>&nbsp;(family)</td>
+       <td class="summary">
+Create a new iptables parser object.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#IptParser.chain">IptParser:chain</a>&nbsp;(table, chain)</td>
+       <td class="summary">
+Return the given firewall chain within the given table name.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#IptParser.chains">IptParser:chains</a>&nbsp;(table)</td>
+       <td class="summary">
+Find the names of all chains within the given table name.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#IptParser.is_custom_target">IptParser:is_custom_target</a>&nbsp;(target)</td>
+       <td class="summary">
+Test whether the given target points to a custom chain.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#IptParser.resync">IptParser:resync</a>&nbsp;()</td>
+       <td class="summary">
+Rebuild the internal lookup table, for example when rules have changed 
+through external commands.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#IptParser.tables">IptParser:tables</a>&nbsp;()</td>
+       <td class="summary">
+Find the names of all tables.</td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="IptParser"></a><strong>IptParser</strong>&nbsp;(family)</dt>
+<dd>
+
+Create a new iptables parser object. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         family: Number specifying the address family. 4 for IPv4, 6 for IPv6
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+IptParser instance
+
+
+
+</dd>
+
+
+
+
+<dt><a name="IptParser.chain"></a><strong>IptParser:chain</strong>&nbsp;(table, chain)</dt>
+<dd>
+
+Return the given firewall chain within the given table name. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         table: String containing the table name
+       </li>
+       
+       <li>
+         chain: String containing the chain name
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table containing the fields "policy", "packets", "bytes" 
+                               and "rules". The "rules" field is a table of rule tables.
+
+
+
+</dd>
+
+
+
+
+<dt><a name="IptParser.chains"></a><strong>IptParser:chains</strong>&nbsp;(table)</dt>
+<dd>
+
+Find the names of all chains within the given table name. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         table: String containing the table name
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table of chain names in the order they occur.
+
+
+
+</dd>
+
+
+
+
+<dt><a name="IptParser.is_custom_target"></a><strong>IptParser:is_custom_target</strong>&nbsp;(target)</dt>
+<dd>
+
+Test whether the given target points to a custom chain. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         target: String containing the target action
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean indicating whether target is a custom chain.
+
+
+
+</dd>
+
+
+
+
+<dt><a name="IptParser.resync"></a><strong>IptParser:resync</strong>&nbsp;()</dt>
+<dd>
+
+Rebuild the internal lookup table, for example when rules have changed 
+through external commands.
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+nothing
+
+
+
+</dd>
+
+
+
+
+<dt><a name="IptParser.tables"></a><strong>IptParser:tables</strong>&nbsp;()</dt>
+<dd>
+
+Find the names of all tables. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table of table names.
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/luci.sys.net.html b/docs/api/modules/luci.sys.net.html
new file mode 100644 (file)
index 0000000..e7802bb
--- /dev/null
@@ -0,0 +1,597 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li><strong>luci.sys.net</strong></li>
+       
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Class <code>luci.sys.net</code></h1>
+
+<p>
+LuCI system utilities / network related functions. 
+</p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#net.arptable">arptable</a>&nbsp;()</td>
+       <td class="summary">
+Returns the current arp-table entries as two-dimensional table.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#net.conntrack">conntrack</a>&nbsp;()</td>
+       <td class="summary">
+Returns conntrack information 
+ </td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#net.deviceinfo">deviceinfo</a>&nbsp;()</td>
+       <td class="summary">
+Return information about available network interfaces.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#net.devices">devices</a>&nbsp;()</td>
+       <td class="summary">
+Determine the names of available network interfaces.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#net.host_hints">host_hints</a>&nbsp;()</td>
+       <td class="summary">
+Returns a two-dimensional table of host hints.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#net.ipv4_hints">ipv4_hints</a>&nbsp;()</td>
+       <td class="summary">
+Returns a two-dimensional table of IPv4 address hints.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#net.ipv6_hints">ipv6_hints</a>&nbsp;()</td>
+       <td class="summary">
+Returns a two-dimensional table of IPv6 address hints.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#net.mac_hints">mac_hints</a>&nbsp;()</td>
+       <td class="summary">
+Returns a two-dimensional table of mac address hints.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#net.pingtest">pingtest</a>&nbsp;(host)</td>
+       <td class="summary">
+Tests whether the given host responds to ping probes.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#net.routes">routes</a>&nbsp;()</td>
+       <td class="summary">
+Returns the current kernel routing table entries.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#net.routes6">routes6</a>&nbsp;()</td>
+       <td class="summary">
+Returns the current ipv6 kernel routing table entries.</td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="net.arptable"></a><strong>arptable</strong>&nbsp;()</dt>
+<dd>
+
+Returns the current arp-table entries as two-dimensional table. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table of table containing the current arp entries. 
+                       The following fields are defined for arp entry objects: 
+                       { "IP address", "HW address", "HW type", "Flags", "Mask", "Device" }
+
+
+
+</dd>
+
+
+
+
+<dt><a name="net.conntrack"></a><strong>conntrack</strong>&nbsp;()</dt>
+<dd>
+
+Returns conntrack information 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table with the currently tracked IP connections
+
+
+
+</dd>
+
+
+
+
+<dt><a name="net.deviceinfo"></a><strong>deviceinfo</strong>&nbsp;()</dt>
+<dd>
+
+Return information about available network interfaces. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table containing all current interface names and their information
+
+
+
+</dd>
+
+
+
+
+<dt><a name="net.devices"></a><strong>devices</strong>&nbsp;()</dt>
+<dd>
+
+Determine the names of available network interfaces. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table containing all current interface names
+
+
+
+</dd>
+
+
+
+
+<dt><a name="net.host_hints"></a><strong>host_hints</strong>&nbsp;()</dt>
+<dd>
+
+Returns a two-dimensional table of host hints. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table of table containing known hosts from various sources, 
+         indexed by mac address. Each subtable contains at least one 
+         of the fields "name", "ipv4" or "ipv6".
+
+
+
+</dd>
+
+
+
+
+<dt><a name="net.ipv4_hints"></a><strong>ipv4_hints</strong>&nbsp;()</dt>
+<dd>
+
+Returns a two-dimensional table of IPv4 address hints. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table of table containing known hosts from various sources. 
+         Each entry contains the values in the following order: 
+         [ "ip", "name" ]
+
+
+
+</dd>
+
+
+
+
+<dt><a name="net.ipv6_hints"></a><strong>ipv6_hints</strong>&nbsp;()</dt>
+<dd>
+
+Returns a two-dimensional table of IPv6 address hints. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table of table containing known hosts from various sources. 
+         Each entry contains the values in the following order: 
+         [ "ip", "name" ]
+
+
+
+</dd>
+
+
+
+
+<dt><a name="net.mac_hints"></a><strong>mac_hints</strong>&nbsp;()</dt>
+<dd>
+
+Returns a two-dimensional table of mac address hints. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table of table containing known hosts from various sources. 
+         Each entry contains the values in the following order: 
+         [ "mac", "name" ]
+
+
+
+</dd>
+
+
+
+
+<dt><a name="net.pingtest"></a><strong>pingtest</strong>&nbsp;(host)</dt>
+<dd>
+
+Tests whether the given host responds to ping probes. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         host: String containing a hostname or IPv4 address
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Number containing 0 on success and >= 1 on error
+
+
+
+</dd>
+
+
+
+
+<dt><a name="net.routes"></a><strong>routes</strong>&nbsp;()</dt>
+<dd>
+
+Returns the current kernel routing table entries. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table of tables with properties of the corresponding routes. 
+                       The following fields are defined for route entry tables: 
+                       { "dest", "gateway", "metric", "refcount", "usecount", "irtt", 
+                         "flags", "device" }
+
+
+
+</dd>
+
+
+
+
+<dt><a name="net.routes6"></a><strong>routes6</strong>&nbsp;()</dt>
+<dd>
+
+Returns the current ipv6 kernel routing table entries. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table of tables with properties of the corresponding routes. 
+                       The following fields are defined for route entry tables: 
+                       { "source", "dest", "nexthop", "metric", "refcount", "usecount", 
+                         "flags", "device" }
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/luci.sys.process.html b/docs/api/modules/luci.sys.process.html
new file mode 100644 (file)
index 0000000..d366481
--- /dev/null
@@ -0,0 +1,519 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li><strong>luci.sys.process</strong></li>
+       
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Class <code>luci.sys.process</code></h1>
+
+<p>
+LuCI system utilities / process related functions. 
+</p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#process.exec">exec</a>&nbsp;(commend, stdout, stderr, nowait)</td>
+       <td class="summary">
+Execute a process, optionally capturing stdio.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#process.info">info</a>&nbsp;()</td>
+       <td class="summary">
+Get the current process id.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#process.list">list</a>&nbsp;()</td>
+       <td class="summary">
+Retrieve information about currently running processes.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#process.setgroup">setgroup</a>&nbsp;(gid)</td>
+       <td class="summary">
+Set the gid of a process identified by given pid.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#process.setuser">setuser</a>&nbsp;(uid)</td>
+       <td class="summary">
+Set the uid of a process identified by given pid.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#process.signal">signal</a>&nbsp;(pid, sig)</td>
+       <td class="summary">
+Send a signal to a process identified by given pid.</td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="process.exec"></a><strong>exec</strong>&nbsp;(commend, stdout, stderr, nowait)</dt>
+<dd>
+
+Execute a process, optionally capturing stdio. 
+Executes the process specified by the given argv vector, e.g. 
+<code>{ "/bin/sh", "-c", "echo 1" }</code> and waits for it to terminate unless a true 
+value has been passed for the "nowait" parameter. 
+When a function value is passed for the stdout or stderr arguments, the passed 
+function is repeatedly called for each chunk read from the corresponding stdio 
+stream. The read data is passed as string containing at most 4096 bytes at a 
+time. 
+When a true, non-function value is passed for the stdout or stderr arguments, 
+the data of the corresponding stdio stream is read into an internal string 
+buffer and returned as "stdout" or "stderr" field respectively in the result 
+table. 
+When a true value is passed to the nowait parameter, the function does not 
+await process termination but returns as soon as all captured stdio streams 
+have been closed or - if no streams are captured - immediately after launching 
+the process. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         commend: Table containing the argv vector to execute
+       </li>
+       
+       <li>
+         stdout: Callback function or boolean to indicate capturing (optional)
+       </li>
+       
+       <li>
+         stderr: Callback function or boolean to indicate capturing (optional)
+       </li>
+       
+       <li>
+         nowait: Don't wait for process termination when true (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table containing at least the fields "code" which holds the exit 
+            status of the invoked process or "-1" on error and "pid", which 
+            contains the process id assigned to the spawned process. When 
+            stdout and/or stderr capturing has been requested, it additionally 
+            contains "stdout" and "stderr" fields respectively, holding the 
+            captured stdio data as string.
+
+
+
+</dd>
+
+
+
+
+<dt><a name="process.info"></a><strong>info</strong>&nbsp;()</dt>
+<dd>
+
+Get the current process id. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Number containing the current pid
+
+
+
+</dd>
+
+
+
+
+<dt><a name="process.list"></a><strong>list</strong>&nbsp;()</dt>
+<dd>
+
+Retrieve information about currently running processes. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table containing process information
+
+
+
+</dd>
+
+
+
+
+<dt><a name="process.setgroup"></a><strong>setgroup</strong>&nbsp;(gid)</dt>
+<dd>
+
+Set the gid of a process identified by given pid. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         gid: Number containing the Unix group id
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>Boolean indicating successful operation
+       
+       <li>String containing the error message if failed
+       
+       <li>Number containing the error code if failed
+       
+</ol>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="process.setuser"></a><strong>setuser</strong>&nbsp;(uid)</dt>
+<dd>
+
+Set the uid of a process identified by given pid. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         uid: Number containing the Unix user id
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>Boolean indicating successful operation
+       
+       <li>String containing the error message if failed
+       
+       <li>Number containing the error code if failed
+       
+</ol>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="process.signal"></a><strong>signal</strong>&nbsp;(pid, sig)</dt>
+<dd>
+
+Send a signal to a process identified by given pid. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         pid: Number containing the process id
+       </li>
+       
+       <li>
+         sig: Signal to send (default: 15 [SIGTERM])
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>Boolean indicating successful operation
+       
+       <li>Number containing the error code if failed
+       
+</ol>
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/luci.sys.user.html b/docs/api/modules/luci.sys.user.html
new file mode 100644 (file)
index 0000000..b2307ad
--- /dev/null
@@ -0,0 +1,412 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li><strong>luci.sys.user</strong></li>
+       
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Class <code>luci.sys.user</code></h1>
+
+<p>
+LuCI system utilities / user related functions. 
+</p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#getuser">getuser</a>&nbsp;(uid)</td>
+       <td class="summary">
+Retrieve user information for given uid.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#user.checkpasswd">checkpasswd</a>&nbsp;(username, pass)</td>
+       <td class="summary">
+Test whether given string matches the password of a given system user.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#user.getpasswd">getpasswd</a>&nbsp;(username)</td>
+       <td class="summary">
+Retrieve the current user password hash.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#user.setpasswd">setpasswd</a>&nbsp;(username, password)</td>
+       <td class="summary">
+Change the password of given user.</td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="getuser"></a><strong>getuser</strong>&nbsp;(uid)</dt>
+<dd>
+
+Retrieve user information for given uid. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         uid: Number containing the Unix user id
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table containing the following fields: 
+                               { "uid", "gid", "name", "passwd", "dir", "shell", "gecos" }
+
+
+
+</dd>
+
+
+
+
+<dt><a name="user.checkpasswd"></a><strong>checkpasswd</strong>&nbsp;(username, pass)</dt>
+<dd>
+
+Test whether given string matches the password of a given system user. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         username: String containing the Unix user name
+       </li>
+       
+       <li>
+         pass: String containing the password to compare
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean indicating whether the passwords are equal
+
+
+
+</dd>
+
+
+
+
+<dt><a name="user.getpasswd"></a><strong>getpasswd</strong>&nbsp;(username)</dt>
+<dd>
+
+Retrieve the current user password hash. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         username: String containing the username to retrieve the password for
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>String containing the hash or nil if no password is set.
+       
+       <li>Password database entry
+       
+</ol>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="user.setpasswd"></a><strong>setpasswd</strong>&nbsp;(username, password)</dt>
+<dd>
+
+Change the password of given user. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         username: String containing the Unix user name
+       </li>
+       
+       <li>
+         password: String containing the password to compare
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Number containing 0 on success and >= 1 on error
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/luci.sys.wifi.html b/docs/api/modules/luci.sys.wifi.html
new file mode 100644 (file)
index 0000000..6c89324
--- /dev/null
@@ -0,0 +1,280 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li><strong>luci.sys.wifi</strong></li>
+       
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Class <code>luci.sys.wifi</code></h1>
+
+<p>
+LuCI system utilities / wifi related functions. 
+</p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#wifi.getiwinfo">getiwinfo</a>&nbsp;(ifname)</td>
+       <td class="summary">
+Get wireless information for given interface.</td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="wifi.getiwinfo"></a><strong>getiwinfo</strong>&nbsp;(ifname)</dt>
+<dd>
+
+Get wireless information for given interface. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         ifname: String containing the interface name
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+A wrapped iwinfo object instance
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/luci.util.html b/docs/api/modules/luci.util.html
new file mode 100644 (file)
index 0000000..f8baddf
--- /dev/null
@@ -0,0 +1,1830 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li><strong>luci.util</strong></li>
+       
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Class <code>luci.util</code></h1>
+
+<p></p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#append">append</a>&nbsp;(src, ...)</td>
+       <td class="summary">
+Appends numerically indexed tables or single objects to a given table.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#bigendian">bigendian</a>&nbsp;()</td>
+       <td class="summary">
+Test whether the current system is operating in big endian mode.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#class">class</a>&nbsp;(base)</td>
+       <td class="summary">
+Create a Class object (Python-style object model).</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#clone">clone</a>&nbsp;(object, deep)</td>
+       <td class="summary">
+Clones the given object and return it's copy.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#cmatch">cmatch</a>&nbsp;(str, pattern)</td>
+       <td class="summary">
+Count the occurrences of given substring in given string.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#combine">combine</a>&nbsp;(tbl1, tbl2, ...)</td>
+       <td class="summary">
+Combines two or more numerically indexed tables and single objects into one table.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#contains">contains</a>&nbsp;(table, value)</td>
+       <td class="summary">
+Checks whether the given table contains the given value.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#copcall">copcall</a>&nbsp;(f, ...)</td>
+       <td class="summary">
+This is a coroutine-safe drop-in replacement for Lua's "pcall"-function 
+ </td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#coxpcall">coxpcall</a>&nbsp;(f, err, ...)</td>
+       <td class="summary">
+This is a coroutine-safe drop-in replacement for Lua's "xpcall"-function 
+ </td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#dumptable">dumptable</a>&nbsp;(t, maxdepth)</td>
+       <td class="summary">
+Recursively dumps a table to stdout, useful for testing and debugging.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#exec">exec</a>&nbsp;(command)</td>
+       <td class="summary">
+Execute given commandline and gather stdout.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#execi">execi</a>&nbsp;(command)</td>
+       <td class="summary">
+Return a line-buffered iterator over the output of given command.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#get_bytecode">get_bytecode</a>&nbsp;(val)</td>
+       <td class="summary">
+Return the current runtime bytecode of the given data.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#imatch">imatch</a>&nbsp;(val)</td>
+       <td class="summary">
+Return a matching iterator for the given value.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#instanceof">instanceof</a>&nbsp;(object, class)</td>
+       <td class="summary">
+Test whether the given object is an instance of the given class.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#keys">keys</a>&nbsp;(t)</td>
+       <td class="summary">
+Retrieve all keys of given associative table.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#kspairs">kspairs</a>&nbsp;(t)</td>
+       <td class="summary">
+Return a key, value iterator for the given table.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#libpath">libpath</a>&nbsp;()</td>
+       <td class="summary">
+Returns the absolute path to LuCI base directory.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#parse_units">parse_units</a>&nbsp;(ustr)</td>
+       <td class="summary">
+Parse certain units from the given string and return the canonical integer 
+value or 0 if the unit is unknown.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#pcdata">pcdata</a>&nbsp;(value)</td>
+       <td class="summary">
+Create valid XML PCDATA from given string.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#perror">perror</a>&nbsp;(obj)</td>
+       <td class="summary">
+Write given object to stderr.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#restore_data">restore_data</a>&nbsp;(str)</td>
+       <td class="summary">
+Restore data previously serialized with serialize_data().</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#serialize_data">serialize_data</a>&nbsp;(val)</td>
+       <td class="summary">
+Recursively serialize given data to lua code, suitable for restoring 
+with loadstring().</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#serialize_json">serialize_json</a>&nbsp;(data, writer)</td>
+       <td class="summary">
+Convert data structure to JSON 
+ </td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#shellquote">shellquote</a>&nbsp;(value)</td>
+       <td class="summary">
+Safely quote value for use in shell commands.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#spairs">spairs</a>&nbsp;(t, f)</td>
+       <td class="summary">
+Return a key, value iterator which returns the values sorted according to 
+the provided callback function.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#split">split</a>&nbsp;(str, pat, max, regex)</td>
+       <td class="summary">
+Splits given string on a defined separator sequence and return a table 
+containing the resulting substrings.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#strip_bytecode">strip_bytecode</a>&nbsp;(code)</td>
+       <td class="summary">
+Strips unnecessary lua bytecode from given string.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#striptags">striptags</a>&nbsp;(value)</td>
+       <td class="summary">
+Strip HTML tags from given string.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#threadlocal">threadlocal</a>&nbsp;()</td>
+       <td class="summary">
+Create a new or get an already existing thread local store associated with 
+the current active coroutine.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#trim">trim</a>&nbsp;(str)</td>
+       <td class="summary">
+Remove leading and trailing whitespace from given string value.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#ubus">ubus</a>&nbsp;(object, method, values)</td>
+       <td class="summary">
+Issue an ubus call.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#update">update</a>&nbsp;(t, updates)</td>
+       <td class="summary">
+Update values in given table with the values from the second given table.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#urldecode">urldecode</a>&nbsp;(str, decode_plus)</td>
+       <td class="summary">
+Decode an URL-encoded string - optionally decoding the "+" sign to space.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#urlencode">urlencode</a>&nbsp;(str)</td>
+       <td class="summary">
+URL-encode given string.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#vspairs">vspairs</a>&nbsp;(t)</td>
+       <td class="summary">
+Return a key, value iterator for the given table.</td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="append"></a><strong>append</strong>&nbsp;(src, ...)</dt>
+<dd>
+
+Appends numerically indexed tables or single objects to a given table. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         src: Target table
+       </li>
+       
+       <li>
+         ...: Objects to insert
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Target table
+
+
+
+</dd>
+
+
+
+
+<dt><a name="bigendian"></a><strong>bigendian</strong>&nbsp;()</dt>
+<dd>
+
+Test whether the current system is operating in big endian mode. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean value indicating whether system is big endian
+
+
+
+</dd>
+
+
+
+
+<dt><a name="class"></a><strong>class</strong>&nbsp;(base)</dt>
+<dd>
+
+Create a Class object (Python-style object model). 
+The class object can be instantiated by calling itself. 
+Any class functions or shared parameters can be attached to this object. 
+Attaching a table to the class object makes this table shared between 
+all instances of this class. For object parameters use the __init__ function. 
+Classes can inherit member functions and values from a base class. 
+Class can be instantiated by calling them. All parameters will be passed 
+to the __init__ function of this class - if such a function exists. 
+The __init__ function must be used to set any object parameters that are not shared 
+with other objects of this class. Any return values will be ignored. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         base: The base class to inherit from (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+A class object
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#instanceof">
+               instanceof
+       </a>
+       
+       <li><a href="#clone">
+               clone
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="clone"></a><strong>clone</strong>&nbsp;(object, deep)</dt>
+<dd>
+
+Clones the given object and return it's copy. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         object: Table value to clone
+       </li>
+       
+       <li>
+         deep: Boolean indicating whether to do recursive cloning
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Cloned table value
+
+
+
+</dd>
+
+
+
+
+<dt><a name="cmatch"></a><strong>cmatch</strong>&nbsp;(str, pattern)</dt>
+<dd>
+
+Count the occurrences of given substring in given string. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         str: String to search in
+       </li>
+       
+       <li>
+         pattern: String containing pattern to find
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Number of found occurrences
+
+
+
+</dd>
+
+
+
+
+<dt><a name="combine"></a><strong>combine</strong>&nbsp;(tbl1, tbl2, ...)</dt>
+<dd>
+
+Combines two or more numerically indexed tables and single objects into one table. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         tbl1: Table value to combine
+       </li>
+       
+       <li>
+         tbl2: Table value to combine
+       </li>
+       
+       <li>
+         ...: More tables to combine
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table value containing all values of given tables
+
+
+
+</dd>
+
+
+
+
+<dt><a name="contains"></a><strong>contains</strong>&nbsp;(table, value)</dt>
+<dd>
+
+Checks whether the given table contains the given value. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         table: Table value
+       </li>
+       
+       <li>
+         value: Value to search within the given table
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Number indicating the first index at which the given value occurs 
+                                       within table or false.
+
+
+
+</dd>
+
+
+
+
+<dt><a name="copcall"></a><strong>copcall</strong>&nbsp;(f, ...)</dt>
+<dd>
+
+This is a coroutine-safe drop-in replacement for Lua's "pcall"-function 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         f: Lua function to be called protected
+       </li>
+       
+       <li>
+         ...: Parameters passed to the function
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+A boolean whether the function call succeeded and the returns 
+                                       values of the function or the error object
+
+
+
+</dd>
+
+
+
+
+<dt><a name="coxpcall"></a><strong>coxpcall</strong>&nbsp;(f, err, ...)</dt>
+<dd>
+
+This is a coroutine-safe drop-in replacement for Lua's "xpcall"-function 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         f: Lua function to be called protected
+       </li>
+       
+       <li>
+         err: Custom error handler
+       </li>
+       
+       <li>
+         ...: Parameters passed to the function
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+A boolean whether the function call succeeded and the return 
+                                       values of either the function or the error handler
+
+
+
+</dd>
+
+
+
+
+<dt><a name="dumptable"></a><strong>dumptable</strong>&nbsp;(t, maxdepth)</dt>
+<dd>
+
+Recursively dumps a table to stdout, useful for testing and debugging. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         t: Table value to dump
+       </li>
+       
+       <li>
+         maxdepth: Maximum depth
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Always nil
+
+
+
+</dd>
+
+
+
+
+<dt><a name="exec"></a><strong>exec</strong>&nbsp;(command)</dt>
+<dd>
+
+Execute given commandline and gather stdout. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         command: String containing command to execute
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing the command's stdout
+
+
+
+</dd>
+
+
+
+
+<dt><a name="execi"></a><strong>execi</strong>&nbsp;(command)</dt>
+<dd>
+
+Return a line-buffered iterator over the output of given command. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         command: String containing the command to execute
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Iterator
+
+
+
+</dd>
+
+
+
+
+<dt><a name="get_bytecode"></a><strong>get_bytecode</strong>&nbsp;(val)</dt>
+<dd>
+
+Return the current runtime bytecode of the given data. The byte code 
+will be stripped before it is returned. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         val: Value to return as bytecode
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String value containing the bytecode of the given data
+
+
+
+</dd>
+
+
+
+
+<dt><a name="imatch"></a><strong>imatch</strong>&nbsp;(val)</dt>
+<dd>
+
+Return a matching iterator for the given value. 
+The iterator will return one token per invocation, the tokens are separated by 
+whitespace. If the input value is a table, it is transformed into a string first. 
+A nil value will result in a valid iterator which aborts with the first invocation. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         val: The value to scan (table, string or nil)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Iterator which returns one token per call
+
+
+
+</dd>
+
+
+
+
+<dt><a name="instanceof"></a><strong>instanceof</strong>&nbsp;(object, class)</dt>
+<dd>
+
+Test whether the given object is an instance of the given class. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         object: Object instance
+       </li>
+       
+       <li>
+         class: Class object to test against
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean indicating whether the object is an instance
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#class">
+               class
+       </a>
+       
+       <li><a href="#clone">
+               clone
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="keys"></a><strong>keys</strong>&nbsp;(t)</dt>
+<dd>
+
+Retrieve all keys of given associative table. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         t: Table to extract keys from
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Sorted table containing the keys
+
+
+
+</dd>
+
+
+
+
+<dt><a name="kspairs"></a><strong>kspairs</strong>&nbsp;(t)</dt>
+<dd>
+
+Return a key, value iterator for the given table. 
+The table pairs are sorted by key. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         t: The table to iterate
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Function value containing the corresponding iterator
+
+
+
+</dd>
+
+
+
+
+<dt><a name="libpath"></a><strong>libpath</strong>&nbsp;()</dt>
+<dd>
+
+Returns the absolute path to LuCI base directory. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing the directory path
+
+
+
+</dd>
+
+
+
+
+<dt><a name="parse_units"></a><strong>parse_units</strong>&nbsp;(ustr)</dt>
+<dd>
+
+Parse certain units from the given string and return the canonical integer 
+value or 0 if the unit is unknown. 
+Upper- or lower case is irrelevant. 
+Recognized units are: 
+       o "y"   - one year   (60*60*24*366) 
+ o "m" - one month  (60*60*24*31) 
+ o "w" - one week   (60*60*24*7) 
+ o "d" - one day    (60*60*24) 
+ o "h" - one hour       (60*60) 
+ o "min"       - one minute (60) 
+ o "kb"  - one kilobyte (1024) 
+ o "mb"        - one megabyte (1024*1024) 
+ o "gb"        - one gigabyte (1024*1024*1024) 
+ o "kib" - one si kilobyte (1000) 
+ o "mib"       - one si megabyte (1000*1000) 
+ o "gib"       - one si gigabyte (1000*1000*1000) 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         ustr: String containing a numerical value with trailing unit
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Number containing the canonical value
+
+
+
+</dd>
+
+
+
+
+<dt><a name="pcdata"></a><strong>pcdata</strong>&nbsp;(value)</dt>
+<dd>
+
+Create valid XML PCDATA from given string. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         value: String value containing the data to escape
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String value containing the escaped data
+
+
+
+</dd>
+
+
+
+
+<dt><a name="perror"></a><strong>perror</strong>&nbsp;(obj)</dt>
+<dd>
+
+Write given object to stderr. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         obj: Value to write to stderr
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean indicating whether the write operation was successful
+
+
+
+</dd>
+
+
+
+
+<dt><a name="restore_data"></a><strong>restore_data</strong>&nbsp;(str)</dt>
+<dd>
+
+Restore data previously serialized with serialize_data(). 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         str: String containing the data to restore
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Value containing the restored data structure
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#serialize_data">
+               serialize_data
+       </a>
+       
+       <li><a href="#get_bytecode">
+               get_bytecode
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="serialize_data"></a><strong>serialize_data</strong>&nbsp;(val)</dt>
+<dd>
+
+Recursively serialize given data to lua code, suitable for restoring 
+with loadstring(). 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         val: Value containing the data to serialize
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String value containing the serialized code
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#restore_data">
+               restore_data
+       </a>
+       
+       <li><a href="#get_bytecode">
+               get_bytecode
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="serialize_json"></a><strong>serialize_json</strong>&nbsp;(data, writer)</dt>
+<dd>
+
+Convert data structure to JSON 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         data: The data to serialize
+       </li>
+       
+       <li>
+         writer: A function to write a chunk of JSON data (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing the JSON if called without write callback
+
+
+
+</dd>
+
+
+
+
+<dt><a name="shellquote"></a><strong>shellquote</strong>&nbsp;(value)</dt>
+<dd>
+
+Safely quote value for use in shell commands. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         value: String containing the value to quote
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Single-quote enclosed string with embedded quotes escaped
+
+
+
+</dd>
+
+
+
+
+<dt><a name="spairs"></a><strong>spairs</strong>&nbsp;(t, f)</dt>
+<dd>
+
+Return a key, value iterator which returns the values sorted according to 
+the provided callback function. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         t: The table to iterate
+       </li>
+       
+       <li>
+         f: A callback function to decide the order of elements
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Function value containing the corresponding iterator
+
+
+
+</dd>
+
+
+
+
+<dt><a name="split"></a><strong>split</strong>&nbsp;(str, pat, max, regex)</dt>
+<dd>
+
+Splits given string on a defined separator sequence and return a table 
+containing the resulting substrings. 
+The optional max parameter specifies the number of bytes to process, 
+regardless of the actual length of the given string. The optional last 
+parameter, regex, specifies whether the separator sequence is 
+nterpreted as regular expression. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         str: String value containing the data to split up
+       </li>
+       
+       <li>
+         pat: String with separator pattern (optional, defaults to "\n")
+       </li>
+       
+       <li>
+         max: Maximum times to split (optional)
+       </li>
+       
+       <li>
+         regex: Boolean indicating whether to interpret the separator 
+                                       pattern as regular expression (optional, default is false)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table containing the resulting substrings
+
+
+
+</dd>
+
+
+
+
+<dt><a name="strip_bytecode"></a><strong>strip_bytecode</strong>&nbsp;(code)</dt>
+<dd>
+
+Strips unnecessary lua bytecode from given string. 
+Information like line numbers and debugging numbers will be discarded. 
+Original version by Peter Cawley (http://lua-users.org/lists/lua-l/2008-02/msg01158.html) 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         code: String value containing the original lua byte code
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String value containing the stripped lua byte code
+
+
+
+</dd>
+
+
+
+
+<dt><a name="striptags"></a><strong>striptags</strong>&nbsp;(value)</dt>
+<dd>
+
+Strip HTML tags from given string. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         value: String containing the HTML text
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String with HTML tags stripped of
+
+
+
+</dd>
+
+
+
+
+<dt><a name="threadlocal"></a><strong>threadlocal</strong>&nbsp;()</dt>
+<dd>
+
+Create a new or get an already existing thread local store associated with 
+the current active coroutine. 
+A thread local store is private a table object 
+whose values can't be accessed from outside of the running coroutine. 
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table value representing the corresponding thread local store
+
+
+
+</dd>
+
+
+
+
+<dt><a name="trim"></a><strong>trim</strong>&nbsp;(str)</dt>
+<dd>
+
+Remove leading and trailing whitespace from given string value. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         str: String value containing whitespace padded data
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String value with leading and trailing space removed
+
+
+
+</dd>
+
+
+
+
+<dt><a name="ubus"></a><strong>ubus</strong>&nbsp;(object, method, values)</dt>
+<dd>
+
+Issue an ubus call. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         object: String containing the ubus object to call
+       </li>
+       
+       <li>
+         method: String containing the ubus method to call
+       </li>
+       
+       <li>
+         values: Table containing the values to pass
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table containin the ubus result
+
+
+
+</dd>
+
+
+
+
+<dt><a name="update"></a><strong>update</strong>&nbsp;(t, updates)</dt>
+<dd>
+
+Update values in given table with the values from the second given table. 
+Both table are - in fact - merged together. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         t: Table which should be updated
+       </li>
+       
+       <li>
+         updates: Table containing the values to update
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Always nil
+
+
+
+</dd>
+
+
+
+
+<dt><a name="urldecode"></a><strong>urldecode</strong>&nbsp;(str, decode_plus)</dt>
+<dd>
+
+Decode an URL-encoded string - optionally decoding the "+" sign to space. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         str: Input string in x-www-urlencoded format
+       </li>
+       
+       <li>
+         decode_plus: Decode "+" signs to spaces if true (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+The decoded string
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#urlencode">
+               urlencode
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="urlencode"></a><strong>urlencode</strong>&nbsp;(str)</dt>
+<dd>
+
+URL-encode given string. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         str: String to encode
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing the encoded data
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#urldecode">
+               urldecode
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="vspairs"></a><strong>vspairs</strong>&nbsp;(t)</dt>
+<dd>
+
+Return a key, value iterator for the given table. 
+The table pairs are sorted by value. 
+
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         t: The table to iterate
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Function value containing the corresponding iterator
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/nixio.CHANGELOG.html b/docs/api/modules/nixio.CHANGELOG.html
new file mode 100644 (file)
index 0000000..94b44a5
--- /dev/null
@@ -0,0 +1,286 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li><strong>nixio.CHANGELOG</strong></li>
+       
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Class <code>nixio.CHANGELOG</code></h1>
+
+<p>
+ Changes and improvements.</p>
+
+
+
+
+
+
+
+
+
+
+<h2>Tables</h2>
+<table class="table_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#0.2">0.2</a></td>
+       <td class="summary">
+ Initial Release.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#0.3">0.3</a></td>
+       <td class="summary">
+ Service Release.</td>
+       </tr>
+
+</table>
+
+
+
+<br/>
+<br/>
+
+
+
+
+<h2><a name="tables"></a>Tables</h2>
+<dl class="table">
+
+<dt><a name="0.2"></a><strong>0.2</strong></dt>
+<dd>
+ Initial Release. 
+ <ul> 
+ <li>Initial Release</li>   
+ </ul>
+
+
+
+</dd>
+
+
+<dt><a name="0.3"></a><strong>0.3</strong></dt>
+<dd>
+ Service Release. 
+ <ul> 
+ <li>Added getifaddrs() function.</li> 
+ <li>Added getsockopt(), setsockopt(), getsockname() and getpeername() 
+ directly to TLS-socket objects unifying the socket interface.</li> 
+ <li>Added support for CyaSSL as cryptographical backend.</li> 
+ <li>Added support for x509 certificates in DER format.</li> 
+ <li>Added support for splice() in UnifiedIO.copyz().</li> 
+ <li>Added interface to inject chunks into UnifiedIO.linesource() buffer.</li> 
+ <li>Changed TLS behaviour to explicitly separate servers and clients.</li> 
+ <li>Fixed usage of signed datatype breaking Base64 decoding.</li> 
+ <li>Fixed namespace clashes for nixio.fs.</li> 
+ <li>Fixed splice() support for some exotic C libraries.</li> 
+ <li>Reconfigure axTLS cryptographical provider and mark it as obsolete.</li> 
+ </ul>
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/nixio.CryptoHash.html b/docs/api/modules/nixio.CryptoHash.html
new file mode 100644 (file)
index 0000000..7d2f48b
--- /dev/null
@@ -0,0 +1,312 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li><strong>nixio.CryptoHash</strong></li>
+       
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Object Instance <code>nixio.CryptoHash</code></h1>
+
+<p>
+ Cryptographical Hash and HMAC object.</p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#CryptoHash.final">CryptoHash:final</a>&nbsp;()</td>
+       <td class="summary">
+ Finalize the hash and return the digest.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#CryptoHash.update">CryptoHash:update</a>&nbsp;(chunk)</td>
+       <td class="summary">
+ Add another chunk of data to be hashed.</td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="CryptoHash.final"></a><strong>CryptoHash:final</strong>&nbsp;()</dt>
+<dd>
+
+ Finalize the hash and return the digest.
+
+
+
+
+
+<h3>Usage:</h3>
+You cannot call update on a hash object that was already finalized 
+ you can however call final multiple times to get the digest.
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>hexdigest
+       
+       <li>buffer containing binary digest
+       
+</ol>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="CryptoHash.update"></a><strong>CryptoHash:update</strong>&nbsp;(chunk)</dt>
+<dd>
+
+ Add another chunk of data to be hashed.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         chunk: Chunk of data
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+CryptoHash object (self)
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/nixio.File.html b/docs/api/modules/nixio.File.html
new file mode 100644 (file)
index 0000000..7a7500a
--- /dev/null
@@ -0,0 +1,669 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li><strong>nixio.File</strong></li>
+       
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Object Instance <code>nixio.File</code></h1>
+
+<p>
+ Large File Object. 
+ Large file operations are supported up to 52 bits if the Lua number type is 
+ double (default).</p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#File.close">File:close</a>&nbsp;()</td>
+       <td class="summary">
+ Close the file descriptor.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#File.fileno">File:fileno</a>&nbsp;()</td>
+       <td class="summary">
+ Get the number of the filedescriptor.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#File.lock">File:lock</a>&nbsp;(command, length)</td>
+       <td class="summary">
+ Apply or test a lock on the file.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#File.read">File:read</a>&nbsp;(length)</td>
+       <td class="summary">
+ Read from a file descriptor.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#File.seek">File:seek</a>&nbsp;(offset, whence)</td>
+       <td class="summary">
+ Reposition read / write offset of the file descriptor.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#File.setblocking">File:setblocking</a>&nbsp;(blocking)</td>
+       <td class="summary">
+ (POSIX) Set the blocking mode of the file descriptor.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#File.stat">File:stat</a>&nbsp;(field)</td>
+       <td class="summary">
+ Get file status and attributes.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#File.sync">File:sync</a>&nbsp;(data_only)</td>
+       <td class="summary">
+ Synchronizes the file with the storage device.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#File.tell">File:tell</a>&nbsp;()</td>
+       <td class="summary">
+ Return the current read / write offset of the file descriptor.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#File.write">File:write</a>&nbsp;(buffer, offset, length)</td>
+       <td class="summary">
+ Write to the file descriptor.</td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="File.close"></a><strong>File:close</strong>&nbsp;()</dt>
+<dd>
+
+ Close the file descriptor.
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="File.fileno"></a><strong>File:fileno</strong>&nbsp;()</dt>
+<dd>
+
+ Get the number of the filedescriptor.
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+file descriptor number
+
+
+
+</dd>
+
+
+
+
+<dt><a name="File.lock"></a><strong>File:lock</strong>&nbsp;(command, length)</dt>
+<dd>
+
+ Apply or test a lock on the file.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         command: Locking Command ["lock", "tlock", "ulock", "test"]
+       </li>
+       
+       <li>
+         length: Amount of Bytes to lock from current offset (optional)
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage</h3>
+<ul>
+       
+       <li>This function calls lockf() on POSIX and _locking() on Windows.
+       
+       <li>The "lock" command is blocking, "tlock" is non-blocking, 
+ "ulock" unlocks and "test" only tests for the lock.
+       
+       <li>The "test" command is not available on Windows.
+       
+       <li>Locks are by default advisory on POSIX, but mandatory on Windows.
+       
+</ul>
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="File.read"></a><strong>File:read</strong>&nbsp;(length)</dt>
+<dd>
+
+ Read from a file descriptor.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         length: Amount of data to read (in Bytes).
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage</h3>
+<ul>
+       
+       <li><strong>Warning:</strong> It is not guaranteed that all requested data 
+ is read at once especially when dealing with pipes. 
+ You have to check the return value - the length of the buffer actually read - 
+ or use the safe IO functions in the high-level IO utility module.
+       
+       <li>The length of the return buffer is limited by the (compile time)  
+ nixio buffersize which is <em>nixio.const.buffersize</em> (8192 by default). 
+ Any read request greater than that will be safely truncated to this value.  
+       
+</ul>
+
+
+
+<h3>Return value:</h3>
+buffer containing data successfully read
+
+
+
+</dd>
+
+
+
+
+<dt><a name="File.seek"></a><strong>File:seek</strong>&nbsp;(offset, whence)</dt>
+<dd>
+
+ Reposition read / write offset of the file descriptor. 
+ The seek will be done either from the beginning of the file or relative 
+ to the current position or relative to the end.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         offset: File Offset
+       </li>
+       
+       <li>
+         whence: Starting point [<strong>"set"</strong>, "cur", "end"]
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+This function calls lseek().
+
+
+
+<h3>Return value:</h3>
+new (absolute) offset position
+
+
+
+</dd>
+
+
+
+
+<dt><a name="File.setblocking"></a><strong>File:setblocking</strong>&nbsp;(blocking)</dt>
+<dd>
+
+ (POSIX) Set the blocking mode of the file descriptor.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         blocking: (boolean)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="File.stat"></a><strong>File:stat</strong>&nbsp;(field)</dt>
+<dd>
+
+ Get file status and attributes.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         field: Only return a specific field, not the whole table (optional)
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+This function calls fstat().
+
+
+
+<h3>Return value:</h3>
+Table containing: <ul> 
+ <li>atime = Last access timestamp</li> 
+ <li>blksize = Blocksize (POSIX only)</li> 
+ <li>blocks = Blocks used (POSIX only)</li> 
+ <li>ctime = Creation timestamp</li> 
+ <li>dev = Device ID</li> 
+ <li>gid = Group ID</li> 
+ <li>ino = Inode</li> 
+ <li>modedec = Mode converted into a decimal number</li> 
+ <li>modestr = Mode as string as returned by <code>ls -l</code></li> 
+ <li>mtime = Last modification timestamp</li> 
+ <li>nlink = Number of links</li> 
+ <li>rdev = Device ID (if special file)</li> 
+ <li>size = Size in bytes</li> 
+ <li>type = ["reg", "dir", "chr", "blk", "fifo", "lnk", "sock"]</li> 
+ <li>uid = User ID</li> 
+ </ul>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="File.sync"></a><strong>File:sync</strong>&nbsp;(data_only)</dt>
+<dd>
+
+ Synchronizes the file with the storage device. 
+ Returns when the file is successfully written to the disk.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         data_only: Do not synchronize the metadata. (optional, boolean)
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage</h3>
+<ul>
+       
+       <li>This function calls fsync() when data_only equals false 
+ otherwise fdatasync(), on Windows _commit() is used instead.
+       
+       <li>fdatasync() is only supported by Linux and Solaris. For other systems 
+ the <em>data_only</em> parameter is ignored and fsync() is always called.
+       
+</ul>
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="File.tell"></a><strong>File:tell</strong>&nbsp;()</dt>
+<dd>
+
+ Return the current read / write offset of the file descriptor.
+
+
+
+
+
+<h3>Usage:</h3>
+This function calls lseek() with offset 0 from the current position.
+
+
+
+<h3>Return value:</h3>
+offset position
+
+
+
+</dd>
+
+
+
+
+<dt><a name="File.write"></a><strong>File:write</strong>&nbsp;(buffer, offset, length)</dt>
+<dd>
+
+ Write to the file descriptor.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         buffer: Buffer holding the data to be written.
+       </li>
+       
+       <li>
+         offset: Offset to start reading the buffer from. (optional)
+       </li>
+       
+       <li>
+         length: Length of chunk to read from the buffer. (optional)
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage</h3>
+<ul>
+       
+       <li><strong>Warning:</strong> It is not guaranteed that all data 
+ in the buffer is written at once especially when dealing with pipes. 
+ You have to check the return value - the number of bytes actually written - 
+ or use the safe IO functions in the high-level IO utility module.
+       
+       <li>Unlike standard Lua indexing the lowest offset and default is 0.
+       
+</ul>
+
+
+
+<h3>Return value:</h3>
+number of bytes written
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/nixio.README.html b/docs/api/modules/nixio.README.html
new file mode 100644 (file)
index 0000000..e140659
--- /dev/null
@@ -0,0 +1,370 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li><strong>nixio.README</strong></li>
+       
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Class <code>nixio.README</code></h1>
+
+<p>
+ General Information.</p>
+
+
+
+
+
+
+
+
+
+
+<h2>Tables</h2>
+<table class="table_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#Errorhandling">Errorhandling</a></td>
+       <td class="summary">
+ General error handling information.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Functions">Functions</a></td>
+       <td class="summary">
+ Function conventions.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Platforms">Platforms</a></td>
+       <td class="summary">
+ Platform information.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#TLS-Crypto">TLS-Crypto</a></td>
+       <td class="summary">
+ Cryptography and TLS libraries.</td>
+       </tr>
+
+</table>
+
+
+
+<br/>
+<br/>
+
+
+
+
+<h2><a name="tables"></a>Tables</h2>
+<dl class="table">
+
+<dt><a name="Errorhandling"></a><strong>Errorhandling</strong></dt>
+<dd>
+ General error handling information. 
+ <ul> 
+ <li> Most of the functions available in this library may fail. If any error 
+ occurs the function returns <strong>nil or false</strong>, an error code 
+ (usually errno) and an additional error message text (if avaialable).</li> 
+ <li>At the moment false is only returned when a non-blocking I/O function 
+ fails with EAGAIN, EWOULDBLOCK or WSAEWOULDBLOCK for any others nil is 
+ returned as first parameter. Therefore you can use false to write portable 
+ non-blocking I/O applications.</li> 
+ <li>Note that the function documentation does only mention the return values 
+ in case of a successful operation.</li>  
+ <li>You can find a table of common error numbers and other useful constants 
+ like signal numbers in <strong>nixio.const</strong> e.g. nixio.const.EINVAL, 
+ nixio.const.SIGTERM, etc. For portability there is a second error constant 
+ table <strong>nixio.const_sock</strong> for socket error codes. This might 
+ be important if you are dealing with Windows applications, on POSIX however 
+ const_sock is just an alias for const.</li> 
+ <li>With some exceptions - which are explicitly stated in the function 
+ documentation - all blocking functions are signal-protected and will not fail 
+ with EINTR.</li> 
+ <li>On POSIX the SIGPIPE signal will be set to ignore upon initialization. 
+ You should restore the default behaviour or set a custom signal handler 
+ in your program after loading nixio if you need this behaviour.</li> 
+ </ul>
+
+
+
+</dd>
+
+
+<dt><a name="Functions"></a><strong>Functions</strong></dt>
+<dd>
+ Function conventions. 
+ <br />In general all functions are namend and behave like their POSIX API 
+ counterparts - where applicable - applying the following rules: 
+ <ul> 
+ <li>Functions should be named like the underlying POSIX API function omitting 
+ prefixes or suffixes - especially when placed in an object-context ( 
+ lockf -> File:lock, fsync -> File:sync, dup2 -> dup, ...)</li> 
+ <li>If you are unclear about the behaviour of a function you should consult 
+ your OS API documentation (e.g. the manpages).</li> 
+ <li>If the name is significantly different from the POSIX-function, the 
+ underlying function(s) are stated in the documentation.</li> 
+ <li>Parameters should reflect those of the C-API, buffer length arguments and  
+ by-reference parameters should be omitted for practical purposes.</li> 
+ <li>If a C function accepts a bitfield as parameter, it should be translated 
+ into lower case string flags representing the flags if the bitfield is the  
+ last parameter and also omitting prefixes or suffixes. (e.g.  waitpid 
+ (pid, &s, WNOHANG | WUNTRACED) -> waitpid(pid, "nohang", "untraced"),  
+ getsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) -> 
+ Socket:getopt("socket", "reuseaddr"), etc.) </li> 
+ <li>If it is not applicable to provide a string representation of the 
+ bitfield a bitfield generator helper is provided. It is named FUNCTION_flags. 
+ (open("/tmp/test", O_RDONLY | O_NONBLOCK) -> open("/tmp/test", open_flags( 
+ "rdonly", "nonblock")))</li>   
+ </ul>
+
+
+
+</dd>
+
+
+<dt><a name="Platforms"></a><strong>Platforms</strong></dt>
+<dd>
+ Platform information. 
+ <ul> 
+ <li>The minimum platform requirements are a decent POSIX 2001 support. 
+ Builds are more or less tested on Linux, Solaris and FreeBSD. Builds for 
+ Windows XP SP1 and later can be compiled with MinGW either from Windows 
+ itself or using the MinGW cross-compiler. Earlier versions of Windows are not 
+ supported.</li> 
+ <li>In general all functions which don't have any remarks  
+ in their documentation are available on all platforms.</li> 
+ <li>Functions with a (POSIX), (Linux) or similar prefix are only available 
+ on these specific platforms. Same appplies to parameters of functions 
+ with a similar suffix.</li> 
+ <li>Some functions might have limitations on some platforms. This should 
+ be stated in the documentation. Please also consult your OS API  
+ documentation.</li>    
+ </ul>
+
+
+
+</dd>
+
+
+<dt><a name="TLS-Crypto"></a><strong>TLS-Crypto</strong></dt>
+<dd>
+ Cryptography and TLS libraries. 
+ <ul> 
+ <li>Currently 3 underlying cryptography libraries are supported: openssl, 
+ cyassl and axTLS. The name of the library in use is written to  
+ <strong>nixio.tls_provider</strong></li> 
+ <li>You should whenever possible use openssl or cyassl as axTLS has only  
+ limited support. It does not provide support for non-blocking sockets and 
+ is probably less audited than the other ones.</li> 
+ <li>As the supported Windows versions are not suitable for embedded devices 
+ axTLS is at the moment not supported on Windows.</li>   
+ </ul>
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/nixio.Socket.html b/docs/api/modules/nixio.Socket.html
new file mode 100644 (file)
index 0000000..1850991
--- /dev/null
@@ -0,0 +1,1029 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li><strong>nixio.Socket</strong></li>
+       
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Object Instance <code>nixio.Socket</code></h1>
+
+<p>
+ Socket Object. 
+ Supports IPv4, IPv6 and UNIX (POSIX only) families.</p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#Socket.accept">Socket:accept</a>&nbsp;()</td>
+       <td class="summary">
+ Accept a connection on the socket.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Socket.bind">Socket:bind</a>&nbsp;(host, port)</td>
+       <td class="summary">
+ Bind the socket to a network address.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Socket.close">Socket:close</a>&nbsp;()</td>
+       <td class="summary">
+ Close the socket.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Socket.connect">Socket:connect</a>&nbsp;(host, port)</td>
+       <td class="summary">
+ Connect the socket to a network address.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Socket.fileno">Socket:fileno</a>&nbsp;()</td>
+       <td class="summary">
+ Get the number of the filedescriptor.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Socket.getopt">Socket:getopt</a>&nbsp;(level, option)</td>
+       <td class="summary">
+ Get a socket option.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Socket.getpeername">Socket:getpeername</a>&nbsp;()</td>
+       <td class="summary">
+ Get the peer address of a socket.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Socket.getsockname">Socket:getsockname</a>&nbsp;()</td>
+       <td class="summary">
+ Get the local address of a socket.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Socket.listen">Socket:listen</a>&nbsp;(backlog)</td>
+       <td class="summary">
+ Listen for connections on the socket.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Socket.read  ">Socket:read  </a>&nbsp;(length)</td>
+       <td class="summary">
+ Receive a message on the socket (This is an alias for recv).</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Socket.recv  ">Socket:recv  </a>&nbsp;(length)</td>
+       <td class="summary">
+ Receive a message on the socket.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Socket.recvfrom">Socket:recvfrom</a>&nbsp;(length)</td>
+       <td class="summary">
+ Receive a message on the socket including the senders source address.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Socket.send">Socket:send</a>&nbsp;(buffer, offset, length)</td>
+       <td class="summary">
+ Send a message on the socket.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Socket.sendto">Socket:sendto</a>&nbsp;(buffer, host, port, offset, length)</td>
+       <td class="summary">
+ Send a message on the socket specifying the destination.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Socket.setblocking">Socket:setblocking</a>&nbsp;(blocking)</td>
+       <td class="summary">
+ Set the blocking mode of the socket.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Socket.setopt">Socket:setopt</a>&nbsp;(level, option, value)</td>
+       <td class="summary">
+ Set a socket option.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Socket.shutdown">Socket:shutdown</a>&nbsp;(how)</td>
+       <td class="summary">
+ Shut down part of a full-duplex connection.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#Socket.write">Socket:write</a>&nbsp;(buffer, offset, length)</td>
+       <td class="summary">
+ Send a message on the socket (This is an alias for send).</td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="Socket.accept"></a><strong>Socket:accept</strong>&nbsp;()</dt>
+<dd>
+
+ Accept a connection on the socket.
+
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>Socket Object
+       
+       <li>Peer IP-Address
+       
+       <li>Peer Port
+       
+</ol>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Socket.bind"></a><strong>Socket:bind</strong>&nbsp;(host, port)</dt>
+<dd>
+
+ Bind the socket to a network address.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         host: Host (optional, default: all addresses)
+       </li>
+       
+       <li>
+         port: Port or service description
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage</h3>
+<ul>
+       
+       <li>This function calls getaddrinfo() and bind() but NOT listen().
+       
+       <li>If <em>host</em> is a domain name it will be looked up and bind()  
+ tries the IP-Addresses in the order returned by the DNS resolver 
+ until the bind succeeds. 
+       
+       <li>UNIX sockets ignore the <em>port</em>, 
+ and interpret <em>host</em> as a socket path.
+       
+</ul>
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Socket.close"></a><strong>Socket:close</strong>&nbsp;()</dt>
+<dd>
+
+ Close the socket.
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Socket.connect"></a><strong>Socket:connect</strong>&nbsp;(host, port)</dt>
+<dd>
+
+ Connect the socket to a network address.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         host: Hostname or IP-Address (optional, default: localhost)
+       </li>
+       
+       <li>
+         port: Port or service description
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage</h3>
+<ul>
+       
+       <li>This function calls getaddrinfo() and connect().
+       
+       <li>If <em>host</em> is a domain name it will be looked up and connect()  
+ tries the IP-Addresses in the order returned by the DNS resolver 
+ until the connect succeeds. 
+       
+       <li>UNIX sockets ignore the <em>port</em>, 
+ and interpret <em>host</em> as a socket path.
+       
+</ul>
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Socket.fileno"></a><strong>Socket:fileno</strong>&nbsp;()</dt>
+<dd>
+
+ Get the number of the filedescriptor.
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+file descriptor number
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Socket.getopt"></a><strong>Socket:getopt</strong>&nbsp;(level, option)</dt>
+<dd>
+
+ Get a socket option.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         level: Level ["socket", "tcp", "ip", "ipv6"]
+       </li>
+       
+       <li>
+         option: Option        ["keepalive", "reuseaddr", "sndbuf", "rcvbuf",  
+ "priority", "broadcast", "linger", "sndtimeo", "rcvtimeo", "dontroute",  
+ "bindtodevice", "error", "oobinline", "cork" (TCP),  "nodelay" (TCP), 
+ "mtu" (IP, IPv6), "hdrincl" (IP), "multicast_ttl" (IP), "multicast_loop" 
+ (IP, IPv6), "multicast_if" (IP, IPv6), "v6only" (IPv6), "multicast_hops" 
+ (IPv6), "add_membership" (IP, IPv6), "drop_membership" (IP, IPv6)]
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Value
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Socket.getpeername"></a><strong>Socket:getpeername</strong>&nbsp;()</dt>
+<dd>
+
+ Get the peer address of a socket.
+
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>IP-Address
+       
+       <li>Port
+       
+</ol>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Socket.getsockname"></a><strong>Socket:getsockname</strong>&nbsp;()</dt>
+<dd>
+
+ Get the local address of a socket.
+
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>IP-Address
+       
+       <li>Port
+       
+</ol>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Socket.listen"></a><strong>Socket:listen</strong>&nbsp;(backlog)</dt>
+<dd>
+
+ Listen for connections on the socket.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         backlog: Length of queue for pending connections
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Socket.read  "></a><strong>Socket:read  </strong>&nbsp;(length)</dt>
+<dd>
+
+ Receive a message on the socket (This is an alias for recv). 
+ See the recvfrom description for more details.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         length: Amount of data to read (in Bytes).
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+buffer containing data successfully read
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#Socket.recvfrom">
+               Socket:recvfrom
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="Socket.recv  "></a><strong>Socket:recv  </strong>&nbsp;(length)</dt>
+<dd>
+
+ Receive a message on the socket. 
+ This function is identical to recvfrom except that it does not return  
+ the sender's source address. See the recvfrom description for more details.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         length: Amount of data to read (in Bytes).
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+buffer containing data successfully read
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#Socket.recvfrom">
+               Socket:recvfrom
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="Socket.recvfrom"></a><strong>Socket:recvfrom</strong>&nbsp;(length)</dt>
+<dd>
+
+ Receive a message on the socket including the senders source address.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         length: Amount of data to read (in Bytes).
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage</h3>
+<ul>
+       
+       <li><strong>Warning:</strong> It is not guaranteed that all requested data 
+ is read at once. 
+ You have to check the return value - the length of the buffer actually read - 
+ or use the safe IO functions in the high-level IO utility module.
+       
+       <li>The length of the return buffer is limited by the (compile time)  
+ nixio buffersize which is <em>nixio.const.buffersize</em> (8192 by default). 
+ Any read request greater than that will be safely truncated to this value.  
+       
+</ul>
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>buffer containing data successfully read
+       
+       <li>host                IP-Address of the sender
+       
+       <li>port                Port of the sender
+       
+</ol>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Socket.send"></a><strong>Socket:send</strong>&nbsp;(buffer, offset, length)</dt>
+<dd>
+
+ Send a message on the socket. 
+ This function is identical to sendto except for the missing destination 
+ parameters. See the sendto description for a detailed description.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         buffer: Buffer holding the data to be written.
+       </li>
+       
+       <li>
+         offset: Offset to start reading the buffer from. (optional)
+       </li>
+       
+       <li>
+         length: Length of chunk to read from the buffer. (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+number of bytes written
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#Socket.sendto">
+               Socket:sendto
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="Socket.sendto"></a><strong>Socket:sendto</strong>&nbsp;(buffer, host, port, offset, length)</dt>
+<dd>
+
+ Send a message on the socket specifying the destination.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         buffer: Buffer holding the data to be written.
+       </li>
+       
+       <li>
+         host: Target IP-Address
+       </li>
+       
+       <li>
+         port: Target Port
+       </li>
+       
+       <li>
+         offset: Offset to start reading the buffer from. (optional)
+       </li>
+       
+       <li>
+         length: Length of chunk to read from the buffer. (optional)
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage</h3>
+<ul>
+       
+       <li><strong>Warning:</strong> It is not guaranteed that all data 
+ in the buffer is written at once. 
+ You have to check the return value - the number of bytes actually written - 
+ or use the safe IO functions in the high-level IO utility module.
+       
+       <li>Unlike standard Lua indexing the lowest offset and default is 0.
+       
+</ul>
+
+
+
+<h3>Return value:</h3>
+number of bytes written
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Socket.setblocking"></a><strong>Socket:setblocking</strong>&nbsp;(blocking)</dt>
+<dd>
+
+ Set the blocking mode of the socket.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         blocking: (boolean)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Socket.setopt"></a><strong>Socket:setopt</strong>&nbsp;(level, option, value)</dt>
+<dd>
+
+ Set a socket option.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         level: Level ["socket", "tcp", "ip", "ipv6"]
+       </li>
+       
+       <li>
+         option: Option        ["keepalive", "reuseaddr", "sndbuf", "rcvbuf",  
+ "priority", "broadcast", "linger", "sndtimeo", "rcvtimeo", "dontroute",  
+ "bindtodevice", "error", "oobinline", "cork" (TCP),  "nodelay" (TCP), 
+ "mtu" (IP, IPv6), "hdrincl" (IP), "multicast_ttl" (IP), "multicast_loop" 
+ (IP, IPv6), "multicast_if" (IP, IPv6), "v6only" (IPv6), "multicast_hops" 
+ (IPv6), "add_membership" (IP, IPv6), "drop_membership" (IP, IPv6)]
+       </li>
+       
+       <li>
+         value: Value
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Socket.shutdown"></a><strong>Socket:shutdown</strong>&nbsp;(how)</dt>
+<dd>
+
+ Shut down part of a full-duplex connection.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         how: (optional, default: rdwr) ["rdwr", "rd", "wr"] 
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Socket.write"></a><strong>Socket:write</strong>&nbsp;(buffer, offset, length)</dt>
+<dd>
+
+ Send a message on the socket (This is an alias for send). 
+ See the sendto description for a detailed description.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         buffer: Buffer holding the data to be written.
+       </li>
+       
+       <li>
+         offset: Offset to start reading the buffer from. (optional)
+       </li>
+       
+       <li>
+         length: Length of chunk to read from the buffer. (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+number of bytes written
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#Socket.sendto">
+               Socket:sendto
+       </a>
+       
+</ul>
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/nixio.TLSContext.html b/docs/api/modules/nixio.TLSContext.html
new file mode 100644 (file)
index 0000000..c84d318
--- /dev/null
@@ -0,0 +1,475 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li><strong>nixio.TLSContext</strong></li>
+       
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Object Instance <code>nixio.TLSContext</code></h1>
+
+<p>
+ Transport Layer Security Context Object.</p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#TLSContext.create">TLSContext:create</a>&nbsp;(socket)</td>
+       <td class="summary">
+ Create a TLS Socket from a socket descriptor.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#TLSContext.set_cert">TLSContext:set_cert</a>&nbsp;(path)</td>
+       <td class="summary">
+ Assign a PEM certificate to this context.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#TLSContext.set_ciphers">TLSContext:set_ciphers</a>&nbsp;(cipherlist)</td>
+       <td class="summary">
+ Set the available ciphers for this context.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#TLSContext.set_key">TLSContext:set_key</a>&nbsp;(path)</td>
+       <td class="summary">
+ Assign a PEM private key to this context.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#TLSContext.set_verify">TLSContext:set_verify</a>&nbsp;(flag1, ...)</td>
+       <td class="summary">
+ Set the verification flags of this context.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#TLSContext.set_verify_depth">TLSContext:set_verify_depth</a>&nbsp;(depth)</td>
+       <td class="summary">
+ Set the verification depth of this context.</td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="TLSContext.create"></a><strong>TLSContext:create</strong>&nbsp;(socket)</dt>
+<dd>
+
+ Create a TLS Socket from a socket descriptor.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         socket: Socket Object
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+TLSSocket Object
+
+
+
+</dd>
+
+
+
+
+<dt><a name="TLSContext.set_cert"></a><strong>TLSContext:set_cert</strong>&nbsp;(path)</dt>
+<dd>
+
+ Assign a PEM certificate to this context.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         path: Certificate File path
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+This function calls SSL_CTX_use_certificate_chain_file().
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="TLSContext.set_ciphers"></a><strong>TLSContext:set_ciphers</strong>&nbsp;(cipherlist)</dt>
+<dd>
+
+ Set the available ciphers for this context.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         cipherlist: String containing a list of ciphers
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+This function calls SSL_CTX_set_cipher_list().
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="TLSContext.set_key"></a><strong>TLSContext:set_key</strong>&nbsp;(path)</dt>
+<dd>
+
+ Assign a PEM private key to this context.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         path: Private Key File path
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+This function calls SSL_CTX_use_PrivateKey_file().
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="TLSContext.set_verify"></a><strong>TLSContext:set_verify</strong>&nbsp;(flag1, ...)</dt>
+<dd>
+
+ Set the verification flags of this context.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         flag1: First Flag     ["none", "peer", "verify_fail_if_no_peer_cert",  
+ "client_once"]
+       </li>
+       
+       <li>
+         ...: More Flags       [-"-]
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+This function calls SSL_CTX_set_verify().
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="TLSContext.set_verify_depth"></a><strong>TLSContext:set_verify_depth</strong>&nbsp;(depth)</dt>
+<dd>
+
+ Set the verification depth of this context.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         depth: Depth
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+This function calls SSL_CTX_set_verify_depth().
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/nixio.TLSSocket.html b/docs/api/modules/nixio.TLSSocket.html
new file mode 100644 (file)
index 0000000..5d6098a
--- /dev/null
@@ -0,0 +1,571 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li><strong>nixio.TLSSocket</strong></li>
+       
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Object Instance <code>nixio.TLSSocket</code></h1>
+
+<p>
+ TLS Socket Object. 
+ TLS Sockets contain the underlying socket and context in the fields 
+ "socket" and "context".</p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#TLSSocket.accept">TLSSocket:accept</a>&nbsp;()</td>
+       <td class="summary">
+ Wait for a TLS handshake from a client.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#TLSSocket.connect">TLSSocket:connect</a>&nbsp;()</td>
+       <td class="summary">
+ Initiate the TLS handshake as client with the server.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#TLSSocket.read  ">TLSSocket:read  </a>&nbsp;(length)</td>
+       <td class="summary">
+ Receive a message on the socket (This is an alias for recv).</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#TLSSocket.recv">TLSSocket:recv</a>&nbsp;(length)</td>
+       <td class="summary">
+ Receive a message on the socket.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#TLSSocket.send">TLSSocket:send</a>&nbsp;(buffer, offset, length)</td>
+       <td class="summary">
+ Send a message to the socket.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#TLSSocket.shutdown">TLSSocket:shutdown</a>&nbsp;()</td>
+       <td class="summary">
+ Shut down the TLS connection.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#TLSSocket.write">TLSSocket:write</a>&nbsp;(buffer, offset, length)</td>
+       <td class="summary">
+ Send a message on the socket (This is an alias for send).</td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="TLSSocket.accept"></a><strong>TLSSocket:accept</strong>&nbsp;()</dt>
+<dd>
+
+ Wait for a TLS handshake from a client.
+
+
+
+
+
+<h3>Usage</h3>
+<ul>
+       
+       <li>This function calls SSL_accept().
+       
+       <li>You have to call either connect or accept before transmitting data.
+       
+</ul>
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#TLSSocket.connect">
+               TLSSocket:connect
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="TLSSocket.connect"></a><strong>TLSSocket:connect</strong>&nbsp;()</dt>
+<dd>
+
+ Initiate the TLS handshake as client with the server.
+
+
+
+
+
+<h3>Usage</h3>
+<ul>
+       
+       <li>This function calls SSL_connect().
+       
+       <li>You have to call either connect or accept before transmitting data.
+       
+</ul>
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#TLSSocket.accept">
+               TLSSocket:accept
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="TLSSocket.read  "></a><strong>TLSSocket:read  </strong>&nbsp;(length)</dt>
+<dd>
+
+ Receive a message on the socket (This is an alias for recv). 
+ See the recv description for more details.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         length: Amount of data to read (in Bytes).
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+buffer containing data successfully read
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#TLSSocket.recv">
+               TLSSocket:recv
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="TLSSocket.recv"></a><strong>TLSSocket:recv</strong>&nbsp;(length)</dt>
+<dd>
+
+ Receive a message on the socket.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         length: Amount of data to read (in Bytes).
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage</h3>
+<ul>
+       
+       <li>This function calls SSL_read().
+       
+       <li><strong>Warning:</strong> It is not guaranteed that all requested data 
+ is read at once. 
+ You have to check the return value - the length of the buffer actually read - 
+ or use the safe IO functions in the high-level IO utility module.
+       
+       <li>The length of the return buffer is limited by the (compile time)  
+ nixio buffersize which is <em>nixio.const.buffersize</em> (8192 by default). 
+ Any read request greater than that will be safely truncated to this value.  
+       
+</ul>
+
+
+
+<h3>Return value:</h3>
+buffer containing data successfully read
+
+
+
+</dd>
+
+
+
+
+<dt><a name="TLSSocket.send"></a><strong>TLSSocket:send</strong>&nbsp;(buffer, offset, length)</dt>
+<dd>
+
+ Send a message to the socket.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         buffer: Buffer holding the data to be written.
+       </li>
+       
+       <li>
+         offset: Offset to start reading the buffer from. (optional)
+       </li>
+       
+       <li>
+         length: Length of chunk to read from the buffer. (optional)
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage</h3>
+<ul>
+       
+       <li>This function calls SSL_write().
+       
+       <li><strong>Warning:</strong> It is not guaranteed that all data 
+ in the buffer is written at once. 
+ You have to check the return value - the number of bytes actually written - 
+ or use the safe IO functions in the high-level IO utility module.
+       
+       <li>Unlike standard Lua indexing the lowest offset and default is 0.
+       
+</ul>
+
+
+
+<h3>Return value:</h3>
+number of bytes written
+
+
+
+</dd>
+
+
+
+
+<dt><a name="TLSSocket.shutdown"></a><strong>TLSSocket:shutdown</strong>&nbsp;()</dt>
+<dd>
+
+ Shut down the TLS connection.
+
+
+
+
+
+<h3>Usage:</h3>
+This function calls SSL_shutdown().
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="TLSSocket.write"></a><strong>TLSSocket:write</strong>&nbsp;(buffer, offset, length)</dt>
+<dd>
+
+ Send a message on the socket (This is an alias for send). 
+ See the send description for a detailed description.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         buffer: Buffer holding the data to be written.
+       </li>
+       
+       <li>
+         offset: Offset to start reading the buffer from. (optional)
+       </li>
+       
+       <li>
+         length: Length of chunk to read from the buffer. (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+number of bytes written
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#TLSSocket.send">
+               TLSSocket:send
+       </a>
+       
+</ul>
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/nixio.UnifiedIO.html b/docs/api/modules/nixio.UnifiedIO.html
new file mode 100644 (file)
index 0000000..6410ffb
--- /dev/null
@@ -0,0 +1,763 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li><strong>nixio.UnifiedIO</strong></li>
+       
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Object Instance <code>nixio.UnifiedIO</code></h1>
+
+<p>
+ Unified high-level I/O utility API for Files, Sockets and TLS-Sockets. 
+ These functions are added to the object function tables by doing <strong> 
+ require "nixio.util"</strong>, can be used on all nixio IO  Descriptors and 
+ are based on the shared low-level read() and write() functions.</p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#UnifiedIO.blocksource">UnifiedIO:blocksource</a>&nbsp;(blocksize, limit)</td>
+       <td class="summary">
+ Create a block-based iterator.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#UnifiedIO.close">UnifiedIO:close</a>&nbsp;()</td>
+       <td class="summary">
+ Close the descriptor.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#UnifiedIO.copy">UnifiedIO:copy</a>&nbsp;(fdout, size)</td>
+       <td class="summary">
+ Copy data from the current descriptor to another one.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#UnifiedIO.copyz">UnifiedIO:copyz</a>&nbsp;(fdout, size)</td>
+       <td class="summary">
+ Copy data from the current descriptor to another one using kernel-space 
+ copying if possible.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#UnifiedIO.is_file">UnifiedIO:is_file</a>&nbsp;()</td>
+       <td class="summary">
+ Test whether the I/O-Descriptor is a file.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#UnifiedIO.is_socket">UnifiedIO:is_socket</a>&nbsp;()</td>
+       <td class="summary">
+ Test whether the I/O-Descriptor is a socket.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#UnifiedIO.is_tls_socket">UnifiedIO:is_tls_socket</a>&nbsp;()</td>
+       <td class="summary">
+ Test whether the I/O-Descriptor is a TLS socket.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#UnifiedIO.linesource">UnifiedIO:linesource</a>&nbsp;(limit)</td>
+       <td class="summary">
+ Create a line-based iterator.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#UnifiedIO.readall">UnifiedIO:readall</a>&nbsp;(length)</td>
+       <td class="summary">
+ Read a block of data and wait until all data is available.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#UnifiedIO.sink">UnifiedIO:sink</a>&nbsp;(close_when_done)</td>
+       <td class="summary">
+ Create a sink.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#UnifiedIO.writeall">UnifiedIO:writeall</a>&nbsp;(block)</td>
+       <td class="summary">
+ Write a block of data and wait until all data is written.</td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="UnifiedIO.blocksource"></a><strong>UnifiedIO:blocksource</strong>&nbsp;(blocksize, limit)</dt>
+<dd>
+
+ Create a block-based iterator.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         blocksize: Advisory blocksize (optional)
+       </li>
+       
+       <li>
+         limit: Amount of data to consume (optional)
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage</h3>
+<ul>
+       
+       <li>This function uses the low-level read function of the descriptor.
+       
+       <li>The blocksize given is only advisory and to be seen as an upper limit, 
+ if an underlying read returns less bytes the chunk is nevertheless returned.
+       
+       <li>If the limit parameter is omitted, the iterator returns data 
+ until an end-of-file, end-of-stream, connection shutdown or similar happens.
+       
+       <li>The iterator will not buffer so it is safe to mix with calls to read.
+       
+       <li>If the descriptor is non-blocking the iterator may fail with EAGAIN.
+       
+       <li>The iterator can be used as an LTN12 source.
+       
+</ul>
+
+
+
+<h3>Return value:</h3>
+Block-based Iterator
+
+
+
+</dd>
+
+
+
+
+<dt><a name="UnifiedIO.close"></a><strong>UnifiedIO:close</strong>&nbsp;()</dt>
+<dd>
+
+ Close the descriptor.
+
+
+
+
+
+<h3>Usage:</h3>
+If the descriptor is a TLS-socket the underlying descriptor is 
+ closed without touching the TLS connection.
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="UnifiedIO.copy"></a><strong>UnifiedIO:copy</strong>&nbsp;(fdout, size)</dt>
+<dd>
+
+ Copy data from the current descriptor to another one.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         fdout: Target Descriptor
+       </li>
+       
+       <li>
+         size: Bytes to copy (optional)
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage</h3>
+<ul>
+       
+       <li>This function uses the blocksource function of the source descriptor 
+ and the sink function of the target descriptor.
+       
+       <li>If the limit parameter is omitted, data is copied 
+ until an end-of-file, end-of-stream, connection shutdown or similar happens.
+       
+       <li>If the descriptor is non-blocking the function may fail with EAGAIN.
+       
+</ul>
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>bytes that were successfully written if no error occurred
+       
+       <li>- reserved for error code -
+       
+       <li>- reserved for error message -
+       
+       <li>bytes that were successfully written even if an error occurred
+       
+</ol>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="UnifiedIO.copyz"></a><strong>UnifiedIO:copyz</strong>&nbsp;(fdout, size)</dt>
+<dd>
+
+ Copy data from the current descriptor to another one using kernel-space 
+ copying if possible.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         fdout: Target Descriptor
+       </li>
+       
+       <li>
+         size: Bytes to copy (optional)
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage</h3>
+<ul>
+       
+       <li>This function uses the sendfile() syscall to copy the data or the 
+ blocksource function of the source descriptor and the sink function 
+ of the target descriptor as a fallback mechanism.
+       
+       <li>If the limit parameter is omitted, data is copied 
+ until an end-of-file, end-of-stream, connection shutdown or similar happens.
+       
+       <li>If the descriptor is non-blocking the function may fail with EAGAIN.
+       
+</ul>
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>bytes that were successfully written if no error occurred
+       
+       <li>- reserved for error code -
+       
+       <li>- reserved for error message -
+       
+       <li>bytes that were successfully written even if an error occurred
+       
+</ol>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="UnifiedIO.is_file"></a><strong>UnifiedIO:is_file</strong>&nbsp;()</dt>
+<dd>
+
+ Test whether the I/O-Descriptor is a file. 
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+boolean
+
+
+
+</dd>
+
+
+
+
+<dt><a name="UnifiedIO.is_socket"></a><strong>UnifiedIO:is_socket</strong>&nbsp;()</dt>
+<dd>
+
+ Test whether the I/O-Descriptor is a socket. 
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+boolean
+
+
+
+</dd>
+
+
+
+
+<dt><a name="UnifiedIO.is_tls_socket"></a><strong>UnifiedIO:is_tls_socket</strong>&nbsp;()</dt>
+<dd>
+
+ Test whether the I/O-Descriptor is a TLS socket. 
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+boolean
+
+
+
+</dd>
+
+
+
+
+<dt><a name="UnifiedIO.linesource"></a><strong>UnifiedIO:linesource</strong>&nbsp;(limit)</dt>
+<dd>
+
+ Create a line-based iterator. 
+ Lines may end with either \n or \r\n, these control chars are not included 
+ in the return value.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         limit: Line limit
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage</h3>
+<ul>
+       
+       <li>This function uses the low-level read function of the descriptor.
+       
+       <li><strong>Note:</strong> This function uses an internal buffer to read 
+ ahead. Do NOT mix calls to read(all) and the returned iterator. If you want 
+ to stop reading line-based and want to use the read(all) functions instead 
+ you can pass "true" to the iterator which will flush the buffer  
+ and return the bufferd data.
+       
+       <li>If the limit parameter is omitted, this function uses the nixio 
+ buffersize (8192B by default).
+       
+       <li>If the descriptor is non-blocking the iterator may fail with EAGAIN.
+       
+       <li>The iterator can be used as an LTN12 source.
+       
+</ul>
+
+
+
+<h3>Return value:</h3>
+Line-based Iterator
+
+
+
+</dd>
+
+
+
+
+<dt><a name="UnifiedIO.readall"></a><strong>UnifiedIO:readall</strong>&nbsp;(length)</dt>
+<dd>
+
+ Read a block of data and wait until all data is available.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         length: Bytes to read (optional)
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage</h3>
+<ul>
+       
+       <li>This function uses the low-level read function of the descriptor.
+       
+       <li>If the length parameter is omitted, this function returns all data 
+ that can be read before an end-of-file, end-of-stream, connection shutdown 
+ or similar happens.
+       
+       <li>If the descriptor is non-blocking this function may fail with EAGAIN.
+       
+</ul>
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>data that was successfully read if no error occurred
+       
+       <li>- reserved for error code -
+       
+       <li>- reserved for error message -
+       
+       <li>data that was successfully read even if an error occurred
+       
+</ol>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="UnifiedIO.sink"></a><strong>UnifiedIO:sink</strong>&nbsp;(close_when_done)</dt>
+<dd>
+
+ Create a sink. 
+ This sink will simply write all data that it receives and optionally 
+ close the descriptor afterwards.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         close_when_done: (optional, boolean)
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage</h3>
+<ul>
+       
+       <li>This function uses the writeall function of the descriptor.
+       
+       <li>If the descriptor is non-blocking the sink may fail with EAGAIN.
+       
+       <li>The iterator can be used as an LTN12 sink.
+       
+</ul>
+
+
+
+<h3>Return value:</h3>
+Sink
+
+
+
+</dd>
+
+
+
+
+<dt><a name="UnifiedIO.writeall"></a><strong>UnifiedIO:writeall</strong>&nbsp;(block)</dt>
+<dd>
+
+ Write a block of data and wait until all data is written.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         block: Bytes to write
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage</h3>
+<ul>
+       
+       <li>This function uses the low-level write function of the descriptor.
+       
+       <li>If the descriptor is non-blocking this function may fail with EAGAIN.
+       
+</ul>
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>bytes that were successfully written if no error occurred
+       
+       <li>- reserved for error code -
+       
+       <li>- reserved for error message -
+       
+       <li>bytes that were successfully written even if an error occurred
+       
+</ol>
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/nixio.bin.html b/docs/api/modules/nixio.bin.html
new file mode 100644 (file)
index 0000000..48e6fcd
--- /dev/null
@@ -0,0 +1,423 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li><strong>nixio.bin</strong></li>
+       
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Class <code>nixio.bin</code></h1>
+
+<p>
+ Binary operations and conversion.</p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#b64decode">b64decode</a>&nbsp;(buffer)</td>
+       <td class="summary">
+ Base64 decode a given buffer.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#b64encode">b64encode</a>&nbsp;(buffer)</td>
+       <td class="summary">
+ Base64 encode a given buffer.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#crc32">crc32</a>&nbsp;(buffer, initial)</td>
+       <td class="summary">
+ Calculate the CRC32 value of a buffer.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#hexlify">hexlify</a>&nbsp;(buffer)</td>
+       <td class="summary">
+ Return a hexadecimal ASCII represantation of the content of a buffer.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#unhexlify">unhexlify</a>&nbsp;(hexvalue)</td>
+       <td class="summary">
+ Return a binary buffer from a hexadecimal ASCII representation.</td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="b64decode"></a><strong>b64decode</strong>&nbsp;(buffer)</dt>
+<dd>
+
+ Base64 decode a given buffer.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         buffer: Base 64 Encoded data
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+binary data
+
+
+
+</dd>
+
+
+
+
+<dt><a name="b64encode"></a><strong>b64encode</strong>&nbsp;(buffer)</dt>
+<dd>
+
+ Base64 encode a given buffer.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         buffer: Buffer
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+base64 encoded buffer
+
+
+
+</dd>
+
+
+
+
+<dt><a name="crc32"></a><strong>crc32</strong>&nbsp;(buffer, initial)</dt>
+<dd>
+
+ Calculate the CRC32 value of a buffer. 
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         buffer: Buffer
+       </li>
+       
+       <li>
+         initial: Initial CRC32 value (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+crc32 value
+
+
+
+</dd>
+
+
+
+
+<dt><a name="hexlify"></a><strong>hexlify</strong>&nbsp;(buffer)</dt>
+<dd>
+
+ Return a hexadecimal ASCII represantation of the content of a buffer. 
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         buffer: Buffer
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+representation using characters [0-9a-f]
+
+
+
+</dd>
+
+
+
+
+<dt><a name="unhexlify"></a><strong>unhexlify</strong>&nbsp;(hexvalue)</dt>
+<dd>
+
+ Return a binary buffer from a hexadecimal ASCII representation. 
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         hexvalue: representation using characters [0-9a-f]
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+binary data
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/nixio.bit.html b/docs/api/modules/nixio.bit.html
new file mode 100644 (file)
index 0000000..4197363
--- /dev/null
@@ -0,0 +1,740 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li><strong>nixio.bit</strong></li>
+       
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Class <code>nixio.bit</code></h1>
+
+<p>
+ Bitfield operators and mainpulation functions. 
+ Can be used as a drop-in replacement for bitlib.</p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#arshift">arshift</a>&nbsp;(oper, shift)</td>
+       <td class="summary">
+ Arithmetically right shift a number.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#band">band</a>&nbsp;(oper1, oper2, ...)</td>
+       <td class="summary">
+ Bitwise AND several numbers.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#bnot">bnot</a>&nbsp;(oper)</td>
+       <td class="summary">
+ Invert given number.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#bor">bor</a>&nbsp;(oper1, oper2, ...)</td>
+       <td class="summary">
+ Bitwise OR several numbers.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#bxor">bxor</a>&nbsp;(oper1, oper2, ...)</td>
+       <td class="summary">
+ Bitwise XOR several numbers.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#cast">cast</a>&nbsp;(oper)</td>
+       <td class="summary">
+ Cast a number to the bit-operating range.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#check">check</a>&nbsp;(bitfield, flag1, ...)</td>
+       <td class="summary">
+ Checks whether given flags are set in a bitfield.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#div">div</a>&nbsp;(oper1, oper2, ...)</td>
+       <td class="summary">
+ Integer division of 2 or more numbers.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#lshift">lshift</a>&nbsp;(oper, shift)</td>
+       <td class="summary">
+ Left shift a number.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#rshift">rshift</a>&nbsp;(oper, shift)</td>
+       <td class="summary">
+ Right shift a number.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#set">set</a>&nbsp;(bitfield, flag1, ...)</td>
+       <td class="summary">
+ Sets one or more flags of a bitfield.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#unset">unset</a>&nbsp;(bitfield, flag1, ...)</td>
+       <td class="summary">
+ Unsets one or more flags of a bitfield.</td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="arshift"></a><strong>arshift</strong>&nbsp;(oper, shift)</dt>
+<dd>
+
+ Arithmetically right shift a number.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         oper: number
+       </li>
+       
+       <li>
+         shift: bits to shift 
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+number
+
+
+
+</dd>
+
+
+
+
+<dt><a name="band"></a><strong>band</strong>&nbsp;(oper1, oper2, ...)</dt>
+<dd>
+
+ Bitwise AND several numbers.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         oper1: First Operand
+       </li>
+       
+       <li>
+         oper2: Second Operand
+       </li>
+       
+       <li>
+         ...: More Operands
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+number
+
+
+
+</dd>
+
+
+
+
+<dt><a name="bnot"></a><strong>bnot</strong>&nbsp;(oper)</dt>
+<dd>
+
+ Invert given number.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         oper: Operand
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+number
+
+
+
+</dd>
+
+
+
+
+<dt><a name="bor"></a><strong>bor</strong>&nbsp;(oper1, oper2, ...)</dt>
+<dd>
+
+ Bitwise OR several numbers.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         oper1: First Operand
+       </li>
+       
+       <li>
+         oper2: Second Operand
+       </li>
+       
+       <li>
+         ...: More Operands
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+number
+
+
+
+</dd>
+
+
+
+
+<dt><a name="bxor"></a><strong>bxor</strong>&nbsp;(oper1, oper2, ...)</dt>
+<dd>
+
+ Bitwise XOR several numbers.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         oper1: First Operand
+       </li>
+       
+       <li>
+         oper2: Second Operand
+       </li>
+       
+       <li>
+         ...: More Operands
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+number
+
+
+
+</dd>
+
+
+
+
+<dt><a name="cast"></a><strong>cast</strong>&nbsp;(oper)</dt>
+<dd>
+
+ Cast a number to the bit-operating range.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         oper: number
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+number
+
+
+
+</dd>
+
+
+
+
+<dt><a name="check"></a><strong>check</strong>&nbsp;(bitfield, flag1, ...)</dt>
+<dd>
+
+ Checks whether given flags are set in a bitfield.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         bitfield: Bitfield
+       </li>
+       
+       <li>
+         flag1: First Flag
+       </li>
+       
+       <li>
+         ...: More Flags
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+true when all flags are set, otherwise false
+
+
+
+</dd>
+
+
+
+
+<dt><a name="div"></a><strong>div</strong>&nbsp;(oper1, oper2, ...)</dt>
+<dd>
+
+ Integer division of 2 or more numbers.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         oper1: Operand 1
+       </li>
+       
+       <li>
+         oper2: Operand 2
+       </li>
+       
+       <li>
+         ...: More Operands
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+number
+
+
+
+</dd>
+
+
+
+
+<dt><a name="lshift"></a><strong>lshift</strong>&nbsp;(oper, shift)</dt>
+<dd>
+
+ Left shift a number.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         oper: number
+       </li>
+       
+       <li>
+         shift: bits to shift 
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+number
+
+
+
+</dd>
+
+
+
+
+<dt><a name="rshift"></a><strong>rshift</strong>&nbsp;(oper, shift)</dt>
+<dd>
+
+ Right shift a number.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         oper: number
+       </li>
+       
+       <li>
+         shift: bits to shift 
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+number
+
+
+
+</dd>
+
+
+
+
+<dt><a name="set"></a><strong>set</strong>&nbsp;(bitfield, flag1, ...)</dt>
+<dd>
+
+ Sets one or more flags of a bitfield.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         bitfield: Bitfield
+       </li>
+       
+       <li>
+         flag1: First Flag
+       </li>
+       
+       <li>
+         ...: More Flags
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+altered bitfield
+
+
+
+</dd>
+
+
+
+
+<dt><a name="unset"></a><strong>unset</strong>&nbsp;(bitfield, flag1, ...)</dt>
+<dd>
+
+ Unsets one or more flags of a bitfield.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         bitfield: Bitfield
+       </li>
+       
+       <li>
+         flag1: First Flag
+       </li>
+       
+       <li>
+         ...: More Flags
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+altered bitfield
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/nixio.crypto.html b/docs/api/modules/nixio.crypto.html
new file mode 100644 (file)
index 0000000..b91fe28
--- /dev/null
@@ -0,0 +1,315 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li><strong>nixio.crypto</strong></li>
+       
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Class <code>nixio.crypto</code></h1>
+
+<p>
+ Cryptographical library.</p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.crypto.hash">hash</a>&nbsp;(algo)</td>
+       <td class="summary">
+ Create a hash object.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.crypto.hmac">hmac</a>&nbsp;(algo, key)</td>
+       <td class="summary">
+ Create a HMAC object.</td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="nixio.crypto.hash"></a><strong>hash</strong>&nbsp;(algo)</dt>
+<dd>
+
+ Create a hash object. 
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         algo: Algorithm ["sha1", "md5"]
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+CryptoHash Object
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.crypto.hmac"></a><strong>hmac</strong>&nbsp;(algo, key)</dt>
+<dd>
+
+ Create a HMAC object. 
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         algo: Algorithm ["sha1", "md5"]
+       </li>
+       
+       <li>
+         key: HMAC-Key
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+CryptoHash Object
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/nixio.fs.html b/docs/api/modules/nixio.fs.html
new file mode 100644 (file)
index 0000000..c9d3459
--- /dev/null
@@ -0,0 +1,1558 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.html">nixio</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li><strong>nixio.fs</strong></li>
+       
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Class <code>nixio.fs</code></h1>
+
+<p>
+ Low-level and high-level filesystem manipulation library.</p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.fs.access">access</a>&nbsp;(path, mode1, ...)</td>
+       <td class="summary">
+ Check user's permission on a file.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.fs.basename">basename</a>&nbsp;(path)</td>
+       <td class="summary">
+ Strip the directory part from a path.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.fs.chmod">chmod</a>&nbsp;(path, mode)</td>
+       <td class="summary">
+ Change the file mode.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.fs.chown">chown</a>&nbsp;(path, user, group)</td>
+       <td class="summary">
+ (POSIX) Change owner and group of a file.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.fs.copy">copy</a>&nbsp;(src, dest)</td>
+       <td class="summary">
+ Copy a file, directory or symlink non-recursively preserving file mode, 
+ timestamps, owner and group.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.fs.copyr">copyr</a>&nbsp;(src, dest)</td>
+       <td class="summary">
+ Copy a file, directory or symlink recursively preserving file mode, 
+ timestamps, owner and group.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.fs.datacopy">datacopy</a>&nbsp;(src, dest, limit)</td>
+       <td class="summary">
+ Copy data between files.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.fs.dir">dir</a>&nbsp;(path)</td>
+       <td class="summary">
+ Iterate over the entries of a directory.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.fs.dirname">dirname</a>&nbsp;(path)</td>
+       <td class="summary">
+ Strip the base from a path.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.fs.glob">glob</a>&nbsp;(pattern)</td>
+       <td class="summary">
+ (POSIX) Find pathnames matching a pattern.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.fs.lchown">lchown</a>&nbsp;(path, user, group)</td>
+       <td class="summary">
+ (POSIX) Change owner and group of a file and do not resolve 
+ if target is a symlink.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.fs.link">link</a>&nbsp;(oldpath, newpath)</td>
+       <td class="summary">
+ Create a hard link.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.fs.lstat">lstat</a>&nbsp;(path, field)</td>
+       <td class="summary">
+ Get file status and attributes and do not resolve if target is a symlink.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.fs.mkdir">mkdir</a>&nbsp;(path, mode)</td>
+       <td class="summary">
+ Create a new directory.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.fs.mkdirr">mkdirr</a>&nbsp;(dest, mode)</td>
+       <td class="summary">
+ Create a directory and all needed parent directories recursively.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.fs.mkfifo">mkfifo</a>&nbsp;(path, mode)</td>
+       <td class="summary">
+ (POSIX) Create a FIFO (named pipe).</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.fs.move">move</a>&nbsp;(src, dest)</td>
+       <td class="summary">
+ Rename a file, directory or symlink non-recursively across filesystems.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.fs.mover">mover</a>&nbsp;(src, dest)</td>
+       <td class="summary">
+ Rename a file, directory or symlink recursively across filesystems.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.fs.readfile">readfile</a>&nbsp;(path, limit)</td>
+       <td class="summary">
+ Read the contents of a file into a buffer.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.fs.readlink">readlink</a>&nbsp;(path)</td>
+       <td class="summary">
+ (POSIX) Read the target of a symbolic link.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.fs.realpath">realpath</a>&nbsp;(path)</td>
+       <td class="summary">
+ Return the cannonicalized absolute pathname.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.fs.remove">remove</a>&nbsp;(path)</td>
+       <td class="summary">
+ Remove a file or directory.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.fs.rename">rename</a>&nbsp;(src, dest)</td>
+       <td class="summary">
+ Renames a file or directory.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.fs.rmdir">rmdir</a>&nbsp;(path)</td>
+       <td class="summary">
+ Remove an empty directory.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.fs.stat">stat</a>&nbsp;(path, field)</td>
+       <td class="summary">
+ Get file status and attributes.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.fs.statvfs">statvfs</a>&nbsp;(path)</td>
+       <td class="summary">
+ (POSIX) Get filesystem statistics.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.fs.symlink">symlink</a>&nbsp;(oldpath, newpath)</td>
+       <td class="summary">
+ (POSIX) Create a symbolic link.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.fs.unlink">unlink</a>&nbsp;(path)</td>
+       <td class="summary">
+ Delete a name and - if no links are left - the associated file.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.fs.utimes">utimes</a>&nbsp;(path, actime, mtime)</td>
+       <td class="summary">
+ Change file last access and last modification time.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.fs.writefile">writefile</a>&nbsp;(path, data)</td>
+       <td class="summary">
+ Write a buffer into a file truncating the file first.</td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="nixio.fs.access"></a><strong>access</strong>&nbsp;(path, mode1, ...)</dt>
+<dd>
+
+ Check user's permission on a file.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         path: Path
+       </li>
+       
+       <li>
+         mode1: First Mode to check ["f", "r", "w", "x"]
+       </li>
+       
+       <li>
+         ...: More Modes to check      [-"-]
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.fs.basename"></a><strong>basename</strong>&nbsp;(path)</dt>
+<dd>
+
+ Strip the directory part from a path.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         path: Path
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+This function cannot fail and will never return nil.
+
+
+
+<h3>Return value:</h3>
+basename
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.fs.chmod"></a><strong>chmod</strong>&nbsp;(path, mode)</dt>
+<dd>
+
+ Change the file mode.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         path: Path
+       </li>
+       
+       <li>
+         mode: File mode        
+ [decimal mode number, "[-r][-w][-xsS][-r][-w][-xsS][-r][-w][-xtT]"]
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage</h3>
+<ul>
+       
+       <li>Windows only supports setting the write-protection through the 
+ "Writable to others" bit.
+       
+       <li><strong>Notice:</strong> The mode-flag for the functions 
+ open, mkdir, mkfifo are affected by the umask. 
+       
+</ul>
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="">
+               umask
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="nixio.fs.chown"></a><strong>chown</strong>&nbsp;(path, user, group)</dt>
+<dd>
+
+ (POSIX) Change owner and group of a file.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         path: Path
+       </li>
+       
+       <li>
+         user: User ID or Username             (optional)
+       </li>
+       
+       <li>
+         group: Group ID or Groupname  (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.fs.copy"></a><strong>copy</strong>&nbsp;(src, dest)</dt>
+<dd>
+
+ Copy a file, directory or symlink non-recursively preserving file mode, 
+ timestamps, owner and group.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         src: Source path
+       </li>
+       
+       <li>
+         dest: Destination path
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+The destination must always be a full destination path e.g. do not 
+ omit the basename even if source and destination basename are equal. 
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.fs.copyr"></a><strong>copyr</strong>&nbsp;(src, dest)</dt>
+<dd>
+
+ Copy a file, directory or symlink recursively preserving file mode, 
+ timestamps, owner and group.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         src: Source path
+       </li>
+       
+       <li>
+         dest: Destination path
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+The destination must always be a full destination path e.g. do not 
+ omit the basename even if source and destination basename are equal. 
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.fs.datacopy"></a><strong>datacopy</strong>&nbsp;(src, dest, limit)</dt>
+<dd>
+
+ Copy data between files.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         src: Source file path
+       </li>
+       
+       <li>
+         dest: Destination file path
+       </li>
+       
+       <li>
+         limit: Maximum bytes to copy (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.fs.dir"></a><strong>dir</strong>&nbsp;(path)</dt>
+<dd>
+
+ Iterate over the entries of a directory.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         path: Path
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+The special entries "." and ".." are omitted.
+
+
+
+<h3>Return value:</h3>
+directory iterator returning one entry per call
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.fs.dirname"></a><strong>dirname</strong>&nbsp;(path)</dt>
+<dd>
+
+ Strip the base from a path.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         path: Path
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+This function cannot fail and will never return nil.
+
+
+
+<h3>Return value:</h3>
+dirname
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.fs.glob"></a><strong>glob</strong>&nbsp;(pattern)</dt>
+<dd>
+
+ (POSIX) Find pathnames matching a pattern.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         pattern: Pattern
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>path iterator
+       
+       <li>number of matches
+       
+</ol>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.fs.lchown"></a><strong>lchown</strong>&nbsp;(path, user, group)</dt>
+<dd>
+
+ (POSIX) Change owner and group of a file and do not resolve 
+ if target is a symlink.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         path: Path
+       </li>
+       
+       <li>
+         user: User ID or Username             (optional)
+       </li>
+       
+       <li>
+         group: Group ID or Groupname  (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.fs.link"></a><strong>link</strong>&nbsp;(oldpath, newpath)</dt>
+<dd>
+
+ Create a hard link.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         oldpath: Path
+       </li>
+       
+       <li>
+         newpath: Path
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+This function calls link() on POSIX and CreateHardLink() on Windows.
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.fs.lstat"></a><strong>lstat</strong>&nbsp;(path, field)</dt>
+<dd>
+
+ Get file status and attributes and do not resolve if target is a symlink.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         path: Path
+       </li>
+       
+       <li>
+         field: Only return a specific field, not the whole table (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table containing attributes (see stat for a detailed description)
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#nixio.fs.stat">
+               stat
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="nixio.fs.mkdir"></a><strong>mkdir</strong>&nbsp;(path, mode)</dt>
+<dd>
+
+ Create a new directory.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         path: Path
+       </li>
+       
+       <li>
+         mode: File mode (optional, see chmod and umask)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#nixio.fs.chmod">
+               chmod
+       </a>
+       
+       <li><a href="">
+               umask
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="nixio.fs.mkdirr"></a><strong>mkdirr</strong>&nbsp;(dest, mode)</dt>
+<dd>
+
+ Create a directory and all needed parent directories recursively. 
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         dest: Destination path
+       </li>
+       
+       <li>
+         mode: File mode (optional, see chmod and umask)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#nixio.fs.chmod">
+               chmod
+       </a>
+       
+       <li><a href="">
+               umask
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="nixio.fs.mkfifo"></a><strong>mkfifo</strong>&nbsp;(path, mode)</dt>
+<dd>
+
+ (POSIX) Create a FIFO (named pipe).
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         path: Path
+       </li>
+       
+       <li>
+         mode: File mode (optional, see chmod and umask)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#nixio.fs.chmod">
+               chmod
+       </a>
+       
+       <li><a href="">
+               umask
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="nixio.fs.move"></a><strong>move</strong>&nbsp;(src, dest)</dt>
+<dd>
+
+ Rename a file, directory or symlink non-recursively across filesystems.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         src: Source path
+       </li>
+       
+       <li>
+         dest: Destination path
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+The destination must always be a full destination path e.g. do not 
+ omit the basename even if source and destination basename are equal. 
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.fs.mover"></a><strong>mover</strong>&nbsp;(src, dest)</dt>
+<dd>
+
+ Rename a file, directory or symlink recursively across filesystems.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         src: Source path
+       </li>
+       
+       <li>
+         dest: Destination path
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+The destination must always be a full destination path e.g. do not 
+ omit the basename even if source and destination basename are equal. 
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.fs.readfile"></a><strong>readfile</strong>&nbsp;(path, limit)</dt>
+<dd>
+
+ Read the contents of a file into a buffer.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         path: Path
+       </li>
+       
+       <li>
+         limit: Maximum bytes to read (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+file contents
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.fs.readlink"></a><strong>readlink</strong>&nbsp;(path)</dt>
+<dd>
+
+ (POSIX) Read the target of a symbolic link.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         path: Path
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+target path
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.fs.realpath"></a><strong>realpath</strong>&nbsp;(path)</dt>
+<dd>
+
+ Return the cannonicalized absolute pathname.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         path: Path
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+absolute path
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.fs.remove"></a><strong>remove</strong>&nbsp;(path)</dt>
+<dd>
+
+ Remove a file or directory.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         path: Path
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.fs.rename"></a><strong>rename</strong>&nbsp;(src, dest)</dt>
+<dd>
+
+ Renames a file or directory.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         src: Source path
+       </li>
+       
+       <li>
+         dest: Destination path
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+It is normally not possible to rename files across filesystems.
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.fs.rmdir"></a><strong>rmdir</strong>&nbsp;(path)</dt>
+<dd>
+
+ Remove an empty directory.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         path: Path
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.fs.stat"></a><strong>stat</strong>&nbsp;(path, field)</dt>
+<dd>
+
+ Get file status and attributes.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         path: Path
+       </li>
+       
+       <li>
+         field: Only return a specific field, not the whole table (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table containing: <ul> 
+ <li>atime = Last access timestamp</li> 
+ <li>blksize = Blocksize (POSIX only)</li> 
+ <li>blocks = Blocks used (POSIX only)</li> 
+ <li>ctime = Creation timestamp</li> 
+ <li>dev = Device ID</li> 
+ <li>gid = Group ID</li> 
+ <li>ino = Inode</li> 
+ <li>modedec = Mode converted into a decimal number</li> 
+ <li>modestr = Mode as string as returned by <code>ls -l</code></li> 
+ <li>mtime = Last modification timestamp</li> 
+ <li>nlink = Number of links</li> 
+ <li>rdev = Device ID (if special file)</li> 
+ <li>size = Size in bytes</li> 
+ <li>type = ["reg", "dir", "chr", "blk", "fifo", "lnk", "sock"]</li> 
+ <li>uid = User ID</li> 
+ </ul>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.fs.statvfs"></a><strong>statvfs</strong>&nbsp;(path)</dt>
+<dd>
+
+ (POSIX) Get filesystem statistics.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         path: Path to any file within the filesystem.
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table containing: <ul> 
+ <li>bavail = available blocks</li> 
+ <li>bfree = free blocks</li> 
+ <li>blocks = number of fragments</li> 
+ <li>frsize = fragment size</li> 
+ <li>favail = available inodes</li> 
+ <li>ffree = free inodes</li> 
+ <li>files = inodes</li> 
+ <li>flag = flags</li> 
+ <li>fsid = filesystem ID</li> 
+ <li>namemax = maximum filename length</li> 
+ </ul>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.fs.symlink"></a><strong>symlink</strong>&nbsp;(oldpath, newpath)</dt>
+<dd>
+
+ (POSIX) Create a symbolic link.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         oldpath: Path
+       </li>
+       
+       <li>
+         newpath: Path
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.fs.unlink"></a><strong>unlink</strong>&nbsp;(path)</dt>
+<dd>
+
+ Delete a name and - if no links are left - the associated file.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         path: Path
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.fs.utimes"></a><strong>utimes</strong>&nbsp;(path, actime, mtime)</dt>
+<dd>
+
+ Change file last access and last modification time.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         path: Path
+       </li>
+       
+       <li>
+         actime: Last access timestamp (optional, default: current time)
+       </li>
+       
+       <li>
+         mtime: Last modification timestamp (optional, default: actime)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.fs.writefile"></a><strong>writefile</strong>&nbsp;(path, data)</dt>
+<dd>
+
+ Write a buffer into a file truncating the file first.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         path: Path
+       </li>
+       
+       <li>
+         data: Data to write
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/api/modules/nixio.html b/docs/api/modules/nixio.html
new file mode 100644 (file)
index 0000000..bf93619
--- /dev/null
@@ -0,0 +1,2401 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+       <div id="product_logo"></div>
+       <div id="product_name"><big><b></b></big></div>
+       <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+       
+       <li><a href="../index.html">Index</a></li>
+       
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+       <li>
+               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.html">luci.http</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.date.html">luci.http.date</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.i18n.html">luci.i18n</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.html">luci.ip</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.json.html">luci.json</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.html">luci.sys</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+       </li>
+
+       <li>
+               <a href="../modules/luci.util.html">luci.util</a>
+       </li>
+
+       <li><strong>nixio</strong></li>
+       
+       <li>
+               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.File.html">nixio.File</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.README.html">nixio.README</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bin.html">nixio.bin</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.bit.html">nixio.bit</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+       </li>
+
+       <li>
+               <a href="../modules/nixio.fs.html">nixio.fs</a>
+       </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Class <code>nixio</code></h1>
+
+<p>
+ General POSIX IO library.</p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.bind">bind</a>&nbsp;(host, port, family, socktype)</td>
+       <td class="summary">
+ Create a new socket and bind it to a network address.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.chdir">chdir</a>&nbsp;(path)</td>
+       <td class="summary">
+ Change the working directory.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.closelog">closelog</a>&nbsp;()</td>
+       <td class="summary">
+ (POSIX) Close the connection to the system logger.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.connect">connect</a>&nbsp;(host, port, family, socktype)</td>
+       <td class="summary">
+ Create a new socket and connect to a network address.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.crypt">crypt</a>&nbsp;(key, salt)</td>
+       <td class="summary">
+ (POSIX) Encrypt a user password.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.dup">dup</a>&nbsp;(oldfd, newfd)</td>
+       <td class="summary">
+ Duplicate a file descriptor.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.errno">errno</a>&nbsp;()</td>
+       <td class="summary">
+ Get the last system error code.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.exec">exec</a>&nbsp;(executable, ...)</td>
+       <td class="summary">
+ Execute a file to replace the current process.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.exece">exece</a>&nbsp;(executable, arguments, environment)</td>
+       <td class="summary">
+ Execute a file with a custom environment to replace the current process.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.execp">execp</a>&nbsp;(executable, ...)</td>
+       <td class="summary">
+ Invoke the shell and execute a file to replace the current process.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.fork">fork</a>&nbsp;()</td>
+       <td class="summary">
+ (POSIX) Clone the current process.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.getaddrinfo">getaddrinfo</a>&nbsp;(host, family, service)</td>
+       <td class="summary">
+ Look up a hostname and service via DNS.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.getcwd">getcwd</a>&nbsp;()</td>
+       <td class="summary">
+ Get the current working directory.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.getenv">getenv</a>&nbsp;(variable)</td>
+       <td class="summary">
+ Get the current environment table or a specific environment variable.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.getgid">getgid</a>&nbsp;()</td>
+       <td class="summary">
+ (POSIX) Get the group id of the current process.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.getgr">getgr</a>&nbsp;(group)</td>
+       <td class="summary">
+ (POSIX) Get all or a specific user group.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.getifaddrs">getifaddrs</a>&nbsp;()</td>
+       <td class="summary">
+ (Linux, BSD) Get a list of available network interfaces and their addresses.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.getnameinfo">getnameinfo</a>&nbsp;(ipaddr)</td>
+       <td class="summary">
+ Reverse look up an IP-Address via DNS.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.getpid">getpid</a>&nbsp;()</td>
+       <td class="summary">
+ Get the ID of the current process.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.getppid">getppid</a>&nbsp;()</td>
+       <td class="summary">
+ (POSIX) Get the parent process id of the current process.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.getproto">getproto</a>&nbsp;(proto)</td>
+       <td class="summary">
+ Get all or a specific proto entry.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.getprotobyname">getprotobyname</a>&nbsp;(name)</td>
+       <td class="summary">
+ Get protocol entry by name.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.getprotobynumber">getprotobynumber</a>&nbsp;(proto)</td>
+       <td class="summary">
+ Get protocol entry by number.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.getpw">getpw</a>&nbsp;(user)</td>
+       <td class="summary">
+ (POSIX) Get all or a specific user account.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.getsp">getsp</a>&nbsp;(user)</td>
+       <td class="summary">
+ (Linux, Solaris) Get all or a specific shadow password entry.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.getuid">getuid</a>&nbsp;()</td>
+       <td class="summary">
+ (POSIX) Get the user id of the current process.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.kill">kill</a>&nbsp;(target, signal)</td>
+       <td class="summary">
+ (POSIX) Send a signal to one or more processes.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.nanosleep">nanosleep</a>&nbsp;(seconds, nanoseconds)</td>
+       <td class="summary">
+ Sleep for a specified amount of time.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.nice">nice</a>&nbsp;(nice)</td>
+       <td class="summary">
+ (POSIX) Change priority of current process.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.open">open</a>&nbsp;(path, flags, mode)</td>
+       <td class="summary">
+ Open a file.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.open_flags">open_flags</a>&nbsp;(flag1, ...)</td>
+       <td class="summary">
+ Generate flags for a call to open().</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.openlog">openlog</a>&nbsp;(ident, flag1, ...)</td>
+       <td class="summary">
+ (POSIX) Open a connection to the system logger.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.pipe">pipe</a>&nbsp;()</td>
+       <td class="summary">
+ Create a pipe.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.poll">poll</a>&nbsp;(fds, timeout)</td>
+       <td class="summary">
+ Wait for some event on a file descriptor.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.poll_flags">poll_flags</a>&nbsp;(mode1, ...)</td>
+       <td class="summary">
+ Generate events-bitfield or parse revents-bitfield for poll.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.sendfile">sendfile</a>&nbsp;(socket, file, length)</td>
+       <td class="summary">
+ (POSIX) Send data from a file to a socket in kernel-space.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.setenv">setenv</a>&nbsp;(variable, value)</td>
+       <td class="summary">
+ Set or unset a environment variable.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.setgid">setgid</a>&nbsp;(gid)</td>
+       <td class="summary">
+ (POSIX) Set the group id of the current process.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.setlogmask">setlogmask</a>&nbsp;(priority)</td>
+       <td class="summary">
+ (POSIX) Set the logmask of the system logger for current process.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.setsid">setsid</a>&nbsp;()</td>
+       <td class="summary">
+ (POSIX) Create a new session and set the process group ID.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.setuid">setuid</a>&nbsp;(gid)</td>
+       <td class="summary">
+ (POSIX) Set the user id of the current process.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.signal">signal</a>&nbsp;(signal, handler)</td>
+       <td class="summary">
+ Ignore or use set the default handler for a signal.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.socket">socket</a>&nbsp;(domain, type)</td>
+       <td class="summary">
+ Create a new socket.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.splice">splice</a>&nbsp;(fdin, fdout, length, flags)</td>
+       <td class="summary">
+ (Linux) Send data from / to a pipe in kernel-space.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.splice_flags">splice_flags</a>&nbsp;(flag1, ...)</td>
+       <td class="summary">
+ (Linux) Generate a flag bitfield for a call to splice.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.strerror">strerror</a>&nbsp;(errno)</td>
+       <td class="summary">
+ Get the error message for the corresponding error code.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.sysinfo">sysinfo</a>&nbsp;()</td>
+       <td class="summary">
+ (Linux) Get overall system statistics.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.syslog">syslog</a>&nbsp;(priority)</td>
+       <td class="summary">
+ (POSIX) Write a message to the system logger.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.times">times</a>&nbsp;()</td>
+       <td class="summary">
+ (POSIX) Get process times.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.tls">tls</a>&nbsp;(mode)</td>
+       <td class="summary">
+ Create a new TLS context.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.umask">umask</a>&nbsp;(mask)</td>
+       <td class="summary">
+ Sets the file mode creation mask.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.uname">uname</a>&nbsp;()</td>
+       <td class="summary">
+ (POSIX) Get information about current system and kernel.</td>
+       </tr>
+
+       <tr>
+       <td class="name" nowrap><a href="#nixio.waitpid">waitpid</a>&nbsp;(pid, flag1, ...)</td>
+       <td class="summary">
+ (POSIX) Wait for a process to change state.</td>
+       </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="nixio.bind"></a><strong>bind</strong>&nbsp;(host, port, family, socktype)</dt>
+<dd>
+
+ Create a new socket and bind it to a network address. 
+ This function is a shortcut for calling nixio.socket and then bind() 
+ on the socket object.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         host: Hostname or IP-Address (optional, default: all addresses)
+       </li>
+       
+       <li>
+         port: Port or service description
+       </li>
+       
+       <li>
+         family: Address family [<strong>"any"</strong>, "inet", "inet6"]
+       </li>
+       
+       <li>
+         socktype: Socket Type [<strong>"stream"</strong>, "dgram"]
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage</h3>
+<ul>
+       
+       <li>This functions calls getaddrinfo(), socket(), 
+ setsockopt() and bind() but NOT listen().
+       
+       <li>The <em>reuseaddr</em>-option is automatically set before binding.
+       
+</ul>
+
+
+
+<h3>Return value:</h3>
+Socket Object
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.chdir"></a><strong>chdir</strong>&nbsp;(path)</dt>
+<dd>
+
+ Change the working directory.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         path: New working directory
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.closelog"></a><strong>closelog</strong>&nbsp;()</dt>
+<dd>
+
+ (POSIX) Close the connection to the system logger.
+
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.connect"></a><strong>connect</strong>&nbsp;(host, port, family, socktype)</dt>
+<dd>
+
+ Create a new socket and connect to a network address. 
+ This function is a shortcut for calling nixio.socket and then connect() 
+ on the socket object.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         host: Hostname or IP-Address (optional, default: localhost)
+       </li>
+       
+       <li>
+         port: Port or service description
+       </li>
+       
+       <li>
+         family: Address family [<strong>"any"</strong>, "inet", "inet6"]
+       </li>
+       
+       <li>
+         socktype: Socket Type [<strong>"stream"</strong>, "dgram"]
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+This functions calls getaddrinfo(), socket() and connect().
+
+
+
+<h3>Return value:</h3>
+Socket Object
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.crypt"></a><strong>crypt</strong>&nbsp;(key, salt)</dt>
+<dd>
+
+ (POSIX) Encrypt a user password.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         key: Key
+       </li>
+       
+       <li>
+         salt: Salt
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+password hash
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.dup"></a><strong>dup</strong>&nbsp;(oldfd, newfd)</dt>
+<dd>
+
+ Duplicate a file descriptor.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         oldfd: Old descriptor [File Object, Socket Object (POSIX only)]
+       </li>
+       
+       <li>
+         newfd: New descriptor to serve as copy (optional)
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+This funcation calls dup2() if <em>newfd</em> is set, otherwise dup().
+
+
+
+<h3>Return value:</h3>
+File Object of new descriptor
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.errno"></a><strong>errno</strong>&nbsp;()</dt>
+<dd>
+
+ Get the last system error code.
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Error code
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.exec"></a><strong>exec</strong>&nbsp;(executable, ...)</dt>
+<dd>
+
+ Execute a file to replace the current process.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         executable: Executable
+       </li>
+       
+       <li>
+         ...: Parameters
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage</h3>
+<ul>
+       
+       <li>The name of the executable is automatically passed as argv[0]
+       
+       <li>This function does not return on success.
+       
+</ul>
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.exece"></a><strong>exece</strong>&nbsp;(executable, arguments, environment)</dt>
+<dd>
+
+ Execute a file with a custom environment to replace the current process.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         executable: Executable
+       </li>
+       
+       <li>
+         arguments: Argument Table
+       </li>
+       
+       <li>
+         environment: Environment Table (optional)
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage</h3>
+<ul>
+       
+       <li>The name of the executable is automatically passed as argv[0]
+       
+       <li>This function does not return on success.
+       
+</ul>
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.execp"></a><strong>execp</strong>&nbsp;(executable, ...)</dt>
+<dd>
+
+ Invoke the shell and execute a file to replace the current process.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         executable: Executable
+       </li>
+       
+       <li>
+         ...: Parameters
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage</h3>
+<ul>
+       
+       <li>The name of the executable is automatically passed as argv[0]
+       
+       <li>This function does not return on success.
+       
+</ul>
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.fork"></a><strong>fork</strong>&nbsp;()</dt>
+<dd>
+
+ (POSIX) Clone the current process.
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+the child process id for the parent process, 0 for the child process
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.getaddrinfo"></a><strong>getaddrinfo</strong>&nbsp;(host, family, service)</dt>
+<dd>
+
+ Look up a hostname and service via DNS.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         host: hostname to lookup      (optional)
+       </li>
+       
+       <li>
+         family: address family [<strong>"any"</strong>, "inet", "inet6"]  
+       </li>
+       
+       <li>
+         service: service name or port (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table containing one or more tables containing: <ul> 
+ <li>family = ["inet", "inet6"]</li> 
+ <li>socktype = ["stream", "dgram", "raw"]</li> 
+ <li>address = Resolved IP-Address</li> 
+ <li>port = Resolved Port (if service was given)</li> 
+ </ul>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.getcwd"></a><strong>getcwd</strong>&nbsp;()</dt>
+<dd>
+
+ Get the current working directory.
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+workign directory
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.getenv"></a><strong>getenv</strong>&nbsp;(variable)</dt>
+<dd>
+
+ Get the current environment table or a specific environment variable.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         variable: Variable (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+environment table or single environment variable
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.getgid"></a><strong>getgid</strong>&nbsp;()</dt>
+<dd>
+
+ (POSIX) Get the group id of the current process.
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+process group id
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.getgr"></a><strong>getgr</strong>&nbsp;(group)</dt>
+<dd>
+
+ (POSIX) Get all or a specific user group.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         group: Group ID or groupname (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table containing: <ul> 
+ <li>name = Group Name</li> 
+ <li>gid = Group ID</li> 
+ <li>passwd = Password</li> 
+ <li>mem = {Member #1, Member #2, ...}</li> 
+ </ul>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.getifaddrs"></a><strong>getifaddrs</strong>&nbsp;()</dt>
+<dd>
+
+ (Linux, BSD) Get a list of available network interfaces and their addresses.
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table containing one or more tables containing: <ul> 
+ <li>name = Interface Name</li> 
+ <li>family = ["inet", "inet6", "packet"]</li> 
+ <li>addr = Interface Address (IPv4, IPv6, MAC, ...)</li> 
+ <li>broadaddr = Broadcast Address</li> 
+ <li>dstaddr = Destination Address (Point-to-Point)</li> 
+ <li>netmask = Netmask (if available)</li> 
+ <li>prefix = Prefix (if available)</li> 
+ <li>flags = Table of interface flags (up, multicast, loopback, ...)</li> 
+ <li>data = Statistics (Linux, "packet"-family)</li> 
+ <li>hatype = Hardware Type Identifier (Linix, "packet"-family)</li> 
+ <li>ifindex = Interface Index (Linux, "packet"-family)</li> 
+ </ul>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.getnameinfo"></a><strong>getnameinfo</strong>&nbsp;(ipaddr)</dt>
+<dd>
+
+ Reverse look up an IP-Address via DNS.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         ipaddr: IPv4 or IPv6-Address
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+FQDN
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.getpid"></a><strong>getpid</strong>&nbsp;()</dt>
+<dd>
+
+ Get the ID of the current process.
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+process id
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.getppid"></a><strong>getppid</strong>&nbsp;()</dt>
+<dd>
+
+ (POSIX) Get the parent process id of the current process.
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+parent process id
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.getproto"></a><strong>getproto</strong>&nbsp;(proto)</dt>
+<dd>
+
+ Get all or a specific proto entry.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         proto: protocol number or name to lookup (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table (or if no parameter is given, a table of tables) 
+                  containing the following fields: <ul> 
+ <li>name = Protocol Name</li> 
+ <li>proto = Protocol Number</li> 
+ <li>aliases = Table of alias names</li> 
+ </ul>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.getprotobyname"></a><strong>getprotobyname</strong>&nbsp;(name)</dt>
+<dd>
+
+ Get protocol entry by name.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         name: protocol name to lookup
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+This function returns nil if the given protocol is unknown.
+
+
+
+<h3>Return value:</h3>
+Table containing the following fields: <ul> 
+ <li>name = Protocol Name</li> 
+ <li>proto = Protocol Number</li> 
+ <li>aliases = Table of alias names</li> 
+ </ul>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.getprotobynumber"></a><strong>getprotobynumber</strong>&nbsp;(proto)</dt>
+<dd>
+
+ Get protocol entry by number.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         proto: protocol number to lookup
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+This function returns nil if the given protocol is unknown.
+
+
+
+<h3>Return value:</h3>
+Table containing the following fields: <ul> 
+ <li>name = Protocol Name</li> 
+ <li>proto = Protocol Number</li> 
+ <li>aliases = Table of alias names</li> 
+ </ul>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.getpw"></a><strong>getpw</strong>&nbsp;(user)</dt>
+<dd>
+
+ (POSIX) Get all or a specific user account.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         user: User ID or username (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table containing: <ul> 
+ <li>name = Name</li> 
+ <li>uid = ID</li> 
+ <li>gid = Group ID</li> 
+ <li>passwd = Password</li> 
+ <li>dir = Home directory</li> 
+ <li>gecos = Information</li> 
+ <li>shell = Shell</li> 
+ </ul>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.getsp"></a><strong>getsp</strong>&nbsp;(user)</dt>
+<dd>
+
+ (Linux, Solaris) Get all or a specific shadow password entry.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         user: username (optional)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table containing: <ul> 
+ <li>namp = Name</li> 
+ <li>expire = Expiration Date</li> 
+ <li>flag = Flags</li> 
+ <li>inact = Inactivity Date</li> 
+ <li>lstchg = Last change</li> 
+ <li>max = Maximum</li> 
+ <li>min = Minimum</li> 
+ <li>warn = Warning</li> 
+ <li>pwdp = Password Hash</li> 
+ </ul>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.getuid"></a><strong>getuid</strong>&nbsp;()</dt>
+<dd>
+
+ (POSIX) Get the user id of the current process.
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+process user id
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.kill"></a><strong>kill</strong>&nbsp;(target, signal)</dt>
+<dd>
+
+ (POSIX) Send a signal to one or more processes.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         target: Target process of process group.
+       </li>
+       
+       <li>
+         signal: Signal to send
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.nanosleep"></a><strong>nanosleep</strong>&nbsp;(seconds, nanoseconds)</dt>
+<dd>
+
+ Sleep for a specified amount of time.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         seconds: Seconds to wait (optional)
+       </li>
+       
+       <li>
+         nanoseconds: Nanoseconds to wait (optional)
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage</h3>
+<ul>
+       
+       <li>Not all systems support nanosecond precision but you can expect 
+ to have at least maillisecond precision.
+       
+       <li>This function is not signal-protected and may fail with EINTR.
+       
+</ul>
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.nice"></a><strong>nice</strong>&nbsp;(nice)</dt>
+<dd>
+
+ (POSIX) Change priority of current process.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         nice: Nice Value
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.open"></a><strong>open</strong>&nbsp;(path, flags, mode)</dt>
+<dd>
+
+ Open a file.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         path: Filesystem path to open
+       </li>
+       
+       <li>
+         flags: Flag string or number (see open_flags). 
+ [<strong>"r"</strong>, "r+", "w", "w+", "a", "a+"]
+       </li>
+       
+       <li>
+         mode: File mode for newly created files (see chmod, umask).
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+Although this function also supports the traditional fopen()  
+ file flags it does not create a file stream but uses the open() syscall.
+
+
+
+<h3>Return value:</h3>
+File Object
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#nixio.umask">
+               umask
+       </a>
+       
+       <li><a href="#nixio.open_flags">
+               open_flags
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="nixio.open_flags"></a><strong>open_flags</strong>&nbsp;(flag1, ...)</dt>
+<dd>
+
+ Generate flags for a call to open().
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         flag1: First Flag ["append", "creat", "excl", "nonblock", "ndelay", 
+ "sync", "trunc", "rdonly", "wronly", "rdwr"]
+       </li>
+       
+       <li>
+         ...: More Flags [-"-]
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage</h3>
+<ul>
+       
+       <li>This function cannot fail and will never return nil.
+       
+       <li>The "nonblock" and "ndelay" flags are aliases.
+       
+       <li>The "nonblock", "ndelay" and "sync" flags are no-ops on Windows.
+       
+</ul>
+
+
+
+<h3>Return value:</h3>
+flag to be used as second parameter to open
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.openlog"></a><strong>openlog</strong>&nbsp;(ident, flag1, ...)</dt>
+<dd>
+
+ (POSIX) Open a connection to the system logger.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         ident: Identifier
+       </li>
+       
+       <li>
+         flag1: Flag 1 ["cons", "nowait", "pid", "perror", "ndelay", "odelay"]
+       </li>
+       
+       <li>
+         ...: More flags [-"-]
+       </li>
+       
+</ul>
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.pipe"></a><strong>pipe</strong>&nbsp;()</dt>
+<dd>
+
+ Create a pipe.
+
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>File Object of the read end
+       
+       <li>File Object of the write end
+       
+</ol>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.poll"></a><strong>poll</strong>&nbsp;(fds, timeout)</dt>
+<dd>
+
+ Wait for some event on a file descriptor. 
+ poll() sets the revents-field of the tables provided by fds to a bitfield 
+ indicating the events that occurred.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         fds: Table containing one or more tables containing <ul> 
+ <li> fd = I/O Descriptor [Socket Object, File Object (POSIX)]</li> 
+ <li> events = events to wait for (bitfield generated with poll_flags)</li> 
+ </ul>
+       </li>
+       
+       <li>
+         timeout: Timeout in milliseconds
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage</h3>
+<ul>
+       
+       <li>This function works in-place on the provided table and only 
+ writes the revents field, you can use other fields on your demand.
+       
+       <li>All metamethods on the tables provided as fds are ignored.
+       
+       <li>The revents-fields are not reset when the call times out. 
+ You have to check the first return value to be 0 to handle this case.
+       
+       <li>If you want to wait on a TLS-Socket you have to use the underlying 
+ socket instead.
+       
+       <li>On Windows poll is emulated through select(), can only be used 
+ on socket descriptors and cannot take more than 64 descriptors per call.
+       
+       <li>This function is not signal-protected and may fail with EINTR.
+       
+</ul>
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>number of ready IO descriptors
+       
+       <li>the fds-table with revents-fields set
+       
+</ol>
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#nixio.poll_flags">
+               poll_flags
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="nixio.poll_flags"></a><strong>poll_flags</strong>&nbsp;(mode1, ...)</dt>
+<dd>
+
+ Generate events-bitfield or parse revents-bitfield for poll.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         mode1: revents-Flag bitfield returned from poll to parse OR  
+ ["in", "out", "err", "pri" (POSIX), "hup" (POSIX), "nval" (POSIX)]
+       </li>
+       
+       <li>
+         ...: More mode strings for generating the flag [-"-]
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+table with boolean fields reflecting the mode parameter  
+ <strong>OR</strong> bitfield to use for the events-Flag field
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#nixio.poll">
+               poll
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="nixio.sendfile"></a><strong>sendfile</strong>&nbsp;(socket, file, length)</dt>
+<dd>
+
+ (POSIX) Send data from a file to a socket in kernel-space.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         socket: Socket Object
+       </li>
+       
+       <li>
+         file: File Object
+       </li>
+       
+       <li>
+         length: Amount of data to send (in Bytes).
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+bytes sent
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.setenv"></a><strong>setenv</strong>&nbsp;(variable, value)</dt>
+<dd>
+
+ Set or unset a environment variable.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         variable: Variable
+       </li>
+       
+       <li>
+         value: Value (optional)
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+The environment variable will be unset if value is omitted.
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.setgid"></a><strong>setgid</strong>&nbsp;(gid)</dt>
+<dd>
+
+ (POSIX) Set the group id of the current process.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         gid: New Group ID
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.setlogmask"></a><strong>setlogmask</strong>&nbsp;(priority)</dt>
+<dd>
+
+ (POSIX) Set the logmask of the system logger for current process.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         priority: Priority ["emerg", "alert", "crit", "err", "warning", 
+ "notice", "info", "debug"]
+       </li>
+       
+</ul>
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.setsid"></a><strong>setsid</strong>&nbsp;()</dt>
+<dd>
+
+ (POSIX) Create a new session and set the process group ID.
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+session id
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.setuid"></a><strong>setuid</strong>&nbsp;(gid)</dt>
+<dd>
+
+ (POSIX) Set the user id of the current process.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         gid: New User ID
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.signal"></a><strong>signal</strong>&nbsp;(signal, handler)</dt>
+<dd>
+
+ Ignore or use set the default handler for a signal.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         signal: Signal
+       </li>
+       
+       <li>
+         handler: ["ign", "dfl"]
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+true
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.socket"></a><strong>socket</strong>&nbsp;(domain, type)</dt>
+<dd>
+
+ Create a new socket.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         domain: Domain ["inet", "inet6", "unix"]
+       </li>
+       
+       <li>
+         type: Type   ["stream", "dgram", "raw"]
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Socket Object
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.splice"></a><strong>splice</strong>&nbsp;(fdin, fdout, length, flags)</dt>
+<dd>
+
+ (Linux) Send data from / to a pipe in kernel-space.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         fdin: Input I/O descriptor 
+       </li>
+       
+       <li>
+         fdout: Output I/O descriptor
+       </li>
+       
+       <li>
+         length: Amount of data to send (in Bytes).
+       </li>
+       
+       <li>
+         flags: (optional, bitfield generated by splice_flags)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+bytes sent
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#nixio.splice_flags">
+               splice_flags
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="nixio.splice_flags"></a><strong>splice_flags</strong>&nbsp;(flag1, ...)</dt>
+<dd>
+
+ (Linux) Generate a flag bitfield for a call to splice.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         flag1: First Flag     ["move", "nonblock", "more"]
+       </li>
+       
+       <li>
+         ...: More flags       [-"-]
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Flag bitfield
+
+
+
+<h3>See also:</h3>
+<ul>
+       
+       <li><a href="#nixio.splice">
+               splice
+       </a>
+       
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="nixio.strerror"></a><strong>strerror</strong>&nbsp;(errno)</dt>
+<dd>
+
+ Get the error message for the corresponding error code.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         errno: System error code
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Error message
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.sysinfo"></a><strong>sysinfo</strong>&nbsp;()</dt>
+<dd>
+
+ (Linux) Get overall system statistics.
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table containing: <ul> 
+ <li>uptime = system uptime in seconds</li> 
+ <li>loads = {loadavg1, loadavg5, loadavg15}</li> 
+ <li>totalram = total RAM</li> 
+ <li>freeram = free RAM</li> 
+ <li>sharedram = shared RAM</li> 
+ <li>bufferram = buffered RAM</li> 
+ <li>totalswap = total SWAP</li> 
+ <li>freeswap = free SWAP</li> 
+ <li>procs = number of running processes</li> 
+ </ul>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.syslog"></a><strong>syslog</strong>&nbsp;(priority)</dt>
+<dd>
+
+ (POSIX) Write a message to the system logger.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         priority: Priority ["emerg", "alert", "crit", "err", "warning", 
+ "notice", "info", "debug"]
+       </li>
+       
+</ul>
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.times"></a><strong>times</strong>&nbsp;()</dt>
+<dd>
+
+ (POSIX) Get process times.
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table containing: <ul> 
+ <li>utime = user time</li> 
+ <li>utime = system time</li> 
+ <li>cutime = children user time</li> 
+ <li>cstime = children system time</li> 
+ </ul>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.tls"></a><strong>tls</strong>&nbsp;(mode)</dt>
+<dd>
+
+ Create a new TLS context.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         mode: TLS-Mode ["client", "server"]
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+TLSContext Object
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.umask"></a><strong>umask</strong>&nbsp;(mask)</dt>
+<dd>
+
+ Sets the file mode creation mask.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         mask: New creation mask (see chmod for format specifications)
+       </li>
+       
+</ul>
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>the old umask as decimal mode number
+       
+       <li>the old umask as mode string
+       
+</ol>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.uname"></a><strong>uname</strong>&nbsp;()</dt>
+<dd>
+
+ (POSIX) Get information about current system and kernel.
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table containing: <ul> 
+ <li>sysname = operating system</li> 
+ <li>nodename = network name (usually hostname)</li> 
+ <li>release = OS release</li> 
+ <li>version = OS version</li> 
+ <li>machine = hardware identifier</li> 
+ </ul>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="nixio.waitpid"></a><strong>waitpid</strong>&nbsp;(pid, flag1, ...)</dt>
+<dd>
+
+ (POSIX) Wait for a process to change state.
+
+
+<h3>Parameters</h3>
+<ul>
+       
+       <li>
+         pid: Process ID       (optional, default: any childprocess)
+       </li>
+       
+       <li>
+         flag1: Flag   (optional) ["nohang", "untraced", "continued"]
+       </li>
+       
+       <li>
+         ...: More Flags [-"-]
+       </li>
+       
+</ul>
+
+
+
+
+<h3>Usage:</h3>
+If the "nohang" is given this function becomes non-blocking.
+
+
+
+<h3>Return values:</h3>
+<ol>
+       
+       <li>process id of child or 0 if no child has changed state
+       
+       <li>["exited", "signaled", "stopped"]
+       
+       <li>[exit code, terminate signal, stop signal]
+       
+</ol>
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/docs/i18n.md b/docs/i18n.md
new file mode 100644 (file)
index 0000000..226a406
--- /dev/null
@@ -0,0 +1,19 @@
+# General
+Translations are saved in the folder po/ for each module and application. You find the reference in po/templates/<package>.pot. The actual translation files can be found at po/[lang]/[package].po .
+
+In order to use the commands below you need to have the _gettext'' utilities (''msgcat'', ''msgfmt'', ''msgmerge_) installed on your system.
+
+# Rebuild po files
+If you want to rebuild the translations after you made changes to a package this is an easy way:
+       
+       ./build/i18n-scan.pl applications/[application] > applications/[application]/po/templates/[application_basename].pot
+       ./build/i18n-update.pl applications/[application]/po
+
+       Example:
+       ./build/i18n-scan.pl applications/luci-app-firewall > applications/luci-app-firewall/po/templates/firewall.pot
+       ./build/i18n-update.pl applications/luci-app-firewall/po
+       (note that the directory argument can be omitted for i18n-update.pl to update all apps)
+       
+*Note:* Some packages share translation files, in this case you need to scan through all their folders. The first command from above should then be:
+       
+       ./build/i18n-scan.pl applications/[package-1] applications/[package-2] applications/[package-n] > [location of shared template]/[application].pot
diff --git a/docs/jsapi/LuCI.Class.html b/docs/jsapi/LuCI.Class.html
new file mode 100644 (file)
index 0000000..28916f1
--- /dev/null
@@ -0,0 +1,2322 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>Class: Class</title>
+    
+    
+    <script src="scripts/prettify/prettify.js"></script>
+    <script src="scripts/prettify/lang-css.js"></script>
+    <script src="scripts/jquery.min.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/bootstrap.min.css">
+    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
+    
+    
+    <script>
+    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
+    </script>
+    
+
+    
+</head>
+<body>
+<div id="wrap" class="clearfix">
+    
+<div class="navigation">
+    <h3 class="applicationName"><a href="index.html"></a></h3>
+
+    <div class="search">
+        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
+    </div>
+    <ul class="list">
+    
+        <li class="item" data-name="LuCI">
+            <span class="title">
+                <a href="LuCI.html">LuCI</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
+            
+                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
+            
+                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
+            
+                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
+            
+                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
+            
+                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
+            
+                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
+            
+                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
+            
+                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
+            
+                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
+            
+                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
+            
+                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
+            
+                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
+            
+                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
+            
+                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
+            
+                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
+            
+                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
+            
+                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
+            
+                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Class">
+            <span class="title">
+                <a href="LuCI.Class.html">LuCI.Class</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
+            
+                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
+            
+                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
+            
+                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
+            
+                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
+            
+                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.dom">
+            <span class="title">
+                <a href="LuCI.dom.html">LuCI.dom</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
+            
+                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
+            
+                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
+            
+                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
+            
+                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
+            
+                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
+            
+                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
+            
+                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
+            
+                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
+            
+                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.fs">
+            <span class="title">
+                <a href="LuCI.fs.html">LuCI.fs</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
+            
+                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
+            
+                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
+            
+                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
+            
+                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
+            
+                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
+            
+                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
+            
+                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Headers">
+            <span class="title">
+                <a href="LuCI.Headers.html">LuCI.Headers</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
+            
+                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network">
+            <span class="title">
+                <a href="LuCI.Network.html">LuCI.Network</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
+            
+                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
+            
+                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
+            
+                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
+            
+                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
+            
+                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
+            
+                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
+            
+                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
+            
+                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
+            
+                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
+            
+                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
+            
+                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
+            
+                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
+            
+                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
+            
+                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
+            
+                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
+            
+                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Device">
+            <span class="title">
+                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
+            
+                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
+            
+                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
+            
+                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
+            
+                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Hosts">
+            <span class="title">
+                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Protocol">
+            <span class="title">
+                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiDevice">
+            <span class="title">
+                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiNetwork">
+            <span class="title">
+                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Poll">
+            <span class="title">
+                <a href="LuCI.Poll.html">LuCI.Poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request">
+            <span class="title">
+                <a href="LuCI.Request.html">LuCI.Request</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
+            
+                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
+            
+                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
+            
+                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request.poll">
+            <span class="title">
+                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Response">
+            <span class="title">
+                <a href="LuCI.Response.html">LuCI.Response</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
+            
+                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
+            
+                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
+            
+                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
+            
+                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
+            
+                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
+            
+                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
+            
+                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.rpc">
+            <span class="title">
+                <a href="LuCI.rpc.html">LuCI.rpc</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
+            
+                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
+            
+                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
+            
+                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
+            
+                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
+            
+                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
+            
+                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.uci">
+            <span class="title">
+                <a href="LuCI.uci.html">LuCI.uci</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
+            
+                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
+            
+                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
+            
+                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
+            
+                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
+            
+                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
+            
+                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
+            
+                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
+            
+                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
+            
+                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
+            
+                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
+            
+                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
+            
+                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
+            
+                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
+            
+                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
+            
+                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
+            
+                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
+            
+                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.view">
+            <span class="title">
+                <a href="LuCI.view.html">LuCI.view</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
+            
+                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
+            
+                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
+            
+                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
+            
+                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
+            
+                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.XHR">
+            <span class="title">
+                <a href="LuCI.XHR.html">LuCI.XHR</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
+            
+                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
+            
+                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
+            
+                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
+            
+                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
+            
+                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+    </ul>
+</div>
+    <div class="main">
+        <h1 class="page-title" data-filename="LuCI.Class.html">Class: Class</h1>
+        
+
+
+
+<section>
+    
+<header>
+    <h2>
+        <span class="ancestors"><a href="LuCI.html">LuCI</a>.</span>
+    
+    Class
+    </h2>
+    
+        <div class="class-description"><p><code>LuCI.Class</code> is the abstract base class all LuCI classes inherit from.</p>
+<p>It provides simple means to create subclasses of given classes and
+implements prototypal inheritance.</p></div>
+    
+</header>  
+
+<article>
+    <div class="container-overview">
+    
+    
+    
+        
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="Class">
+            
+            new LuCI.Class<span class="signature">()</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 59
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+    
+    </div>
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+        <h3 class="subsection-title">Methods</h3>
+        
+        <dl>
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id=".extend">
+            
+            <span class="type-signature static">static</span>LuCI.Class.extend<span class="signature">(properties)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{<a href="LuCI.Class.html">LuCI.Class</a>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 87
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Extends this base class with the properties described in
+<code>properties</code> and returns a new subclassed Class instance</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>properties</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Object.&lt;string, *></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>An object describing the properties to add to the new
+subclass.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        <a href="LuCI.Class.html">LuCI.Class</a>
+                        
+                    
+            </td>
+            <td class="description last">Returns a new LuCI.Class sublassed from this class, extended
+by the given properties and with its prototype set to this base
+class to enable inheritance. The resulting value represents a
+class constructor and can be instantiated with <code>new</code>.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id=".instantiate">
+            
+            <span class="type-signature static">static</span>LuCI.Class.instantiate<span class="signature">(params, <span class="optional">new_args</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{<a href="LuCI.Class.html">LuCI.Class</a>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 169
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Calls the class constructor using <code>new</code> with the given argument
+array being passed as variadic parameters to the constructor.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>params</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;*></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>An array of arbitrary values which will be passed as arguments
+to the constructor function.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>new_args</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                        <span class="repeatable">repeatable</span>
+                    
+                
+                <p>Specifies arguments to be passed to the subclass constructor
+as-is in order to instantiate the new subclass.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        <a href="LuCI.Class.html">LuCI.Class</a>
+                        
+                    
+            </td>
+            <td class="description last">Returns a new LuCI.Class instance extended by the given
+properties with its prototype set to this base class to
+enable inheritance.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id=".isSubclass">
+            
+            <span class="type-signature static">static</span>LuCI.Class.isSubclass<span class="signature">(classValue)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 195
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Checks whether the given class value is a subclass of this class.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>classValue</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type"><a href="LuCI.Class.html">LuCI.Class</a></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The class object to test.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> when the given <code>classValue</code> is a subclass of this
+class or <code>false</code> if the given value is not a valid class or not
+a subclass of this class'.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id=".singleton">
+            
+            <span class="type-signature static">static</span>LuCI.Class.singleton<span class="signature">(properties, <span class="optional">new_args</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{<a href="LuCI.Class.html">LuCI.Class</a>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 145
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Extends this base class with the properties described in
+<code>properties</code>, instantiates the resulting subclass using
+the additional optional arguments passed to this function
+and returns the resulting subclassed Class instance.</p>
+<p>This function serves as a convenience shortcut for
+<a href="LuCI.Class.html#.extend"><code>Class.extend()</code></a> and subsequent
+<code>new</code>.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>properties</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Object.&lt;string, *></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>An object describing the properties to add to the new
+subclass.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>new_args</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                        <span class="repeatable">repeatable</span>
+                    
+                
+                <p>Specifies arguments to be passed to the subclass constructor
+as-is in order to instantiate the new subclass.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        <a href="LuCI.Class.html">LuCI.Class</a>
+                        
+                    
+            </td>
+            <td class="description last">Returns a new LuCI.Class instance extended by the given
+properties with its prototype set to this base class to
+enable inheritance.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="super">
+            
+            super<span class="signature">(key, <span class="optional">callArgs</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{*|null}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 267
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Walks up the parent class chain and looks for a class member
+called <code>key</code> in any of the parent classes this class inherits
+from. Returns the member value of the superclass or calls the
+member as function and returns its return value when the
+optional <code>callArgs</code> array is given.</p>
+<p>This function has two signatures and is sensitive to the
+amount of arguments passed to it:</p>
+<ul>
+<li><code>super('key')</code> -
+Returns the value of <code>key</code> when found within one of the
+parent classes.</li>
+<li><code>super('key', ['arg1', 'arg2'])</code> -
+Calls the <code>key()</code> method with parameters <code>arg1</code> and <code>arg2</code>
+when found within one of the parent classes.</li>
+</ul>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>key</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The name of the superclass member to retrieve.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>callArgs</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;*></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>An optional array of function call parameters to use. When
+this parameter is specified, the found member value is called
+as function using the values of this array as arguments.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    <h5>Throws:</h5>
+    
+            
+
+<dl>
+    <dt>
+        <div class="param-desc">
+        <p>Throws a <code>ReferenceError</code> when <code>callArgs</code> are specified and
+the found member named by <code>key</code> is not a function value.</p>
+        </div>
+    </dt>
+    <dt>
+        <dl>
+            <dt>
+                Type
+            </dt>
+            <dd>
+                
+<span class="param-type">ReferenceError</span>
+
+
+            </dd>
+        </dl>
+    </dt>
+</dl>
+
+
+        
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        *
+                         | 
+                    
+                        null
+                        
+                    
+            </td>
+            <td class="description last">Returns the value of the found member or the return value of
+the call to the found method. Returns <code>null</code> when no member
+was found in the parent class chain or when the call to the
+superclass method returned <code>null</code>.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="varargs">
+            
+            varargs<span class="signature">(args, offset, <span class="optional">extra_args</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;*>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 225
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Extract all values from the given argument array beginning from
+<code>offset</code> and prepend any further given optional parameters to
+the beginning of the resulting array copy.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>args</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;*></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The array to extract the values from.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>offset</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The offset from which to extract the values. An offset of <code>0</code>
+would copy all values till the end.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>extra_args</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                        <span class="repeatable">repeatable</span>
+                    
+                
+                <p>Extra arguments to add to prepend to the resultung array.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Array.&lt;*>
+                        
+                    
+            </td>
+            <td class="description last">Returns a new array consisting of the optional extra arguments
+and the values extracted from the <code>args</code> array beginning with
+<code>offset</code>.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        </dl>
+    
+    
+    
+    
+    
+
+    
+</article>
+
+</section>  
+
+
+
+
+
+        
+
+        <footer>
+            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
+        </footer>
+    </div>
+</div>
+<script>prettyPrint();</script>
+<script src="scripts/jaguar.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/jsapi/LuCI.Headers.html b/docs/jsapi/LuCI.Headers.html
new file mode 100644 (file)
index 0000000..efb898b
--- /dev/null
@@ -0,0 +1,1495 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>Class: Headers</title>
+    
+    
+    <script src="scripts/prettify/prettify.js"></script>
+    <script src="scripts/prettify/lang-css.js"></script>
+    <script src="scripts/jquery.min.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/bootstrap.min.css">
+    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
+    
+    
+    <script>
+    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
+    </script>
+    
+
+    
+</head>
+<body>
+<div id="wrap" class="clearfix">
+    
+<div class="navigation">
+    <h3 class="applicationName"><a href="index.html"></a></h3>
+
+    <div class="search">
+        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
+    </div>
+    <ul class="list">
+    
+        <li class="item" data-name="LuCI">
+            <span class="title">
+                <a href="LuCI.html">LuCI</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
+            
+                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
+            
+                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
+            
+                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
+            
+                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
+            
+                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
+            
+                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
+            
+                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
+            
+                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
+            
+                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
+            
+                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
+            
+                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
+            
+                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
+            
+                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
+            
+                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
+            
+                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
+            
+                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
+            
+                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
+            
+                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Class">
+            <span class="title">
+                <a href="LuCI.Class.html">LuCI.Class</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
+            
+                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
+            
+                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
+            
+                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
+            
+                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
+            
+                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.dom">
+            <span class="title">
+                <a href="LuCI.dom.html">LuCI.dom</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
+            
+                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
+            
+                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
+            
+                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
+            
+                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
+            
+                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
+            
+                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
+            
+                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
+            
+                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
+            
+                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.fs">
+            <span class="title">
+                <a href="LuCI.fs.html">LuCI.fs</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
+            
+                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
+            
+                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
+            
+                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
+            
+                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
+            
+                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
+            
+                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
+            
+                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Headers">
+            <span class="title">
+                <a href="LuCI.Headers.html">LuCI.Headers</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
+            
+                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network">
+            <span class="title">
+                <a href="LuCI.Network.html">LuCI.Network</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
+            
+                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
+            
+                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
+            
+                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
+            
+                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
+            
+                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
+            
+                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
+            
+                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
+            
+                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
+            
+                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
+            
+                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
+            
+                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
+            
+                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
+            
+                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
+            
+                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
+            
+                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
+            
+                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Device">
+            <span class="title">
+                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
+            
+                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
+            
+                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
+            
+                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
+            
+                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Hosts">
+            <span class="title">
+                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Protocol">
+            <span class="title">
+                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiDevice">
+            <span class="title">
+                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiNetwork">
+            <span class="title">
+                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Poll">
+            <span class="title">
+                <a href="LuCI.Poll.html">LuCI.Poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request">
+            <span class="title">
+                <a href="LuCI.Request.html">LuCI.Request</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
+            
+                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
+            
+                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
+            
+                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request.poll">
+            <span class="title">
+                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Response">
+            <span class="title">
+                <a href="LuCI.Response.html">LuCI.Response</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
+            
+                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
+            
+                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
+            
+                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
+            
+                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
+            
+                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
+            
+                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
+            
+                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.rpc">
+            <span class="title">
+                <a href="LuCI.rpc.html">LuCI.rpc</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
+            
+                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
+            
+                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
+            
+                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
+            
+                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
+            
+                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
+            
+                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.uci">
+            <span class="title">
+                <a href="LuCI.uci.html">LuCI.uci</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
+            
+                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
+            
+                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
+            
+                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
+            
+                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
+            
+                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
+            
+                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
+            
+                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
+            
+                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
+            
+                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
+            
+                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
+            
+                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
+            
+                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
+            
+                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
+            
+                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
+            
+                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
+            
+                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
+            
+                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.view">
+            <span class="title">
+                <a href="LuCI.view.html">LuCI.view</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
+            
+                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
+            
+                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
+            
+                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
+            
+                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
+            
+                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.XHR">
+            <span class="title">
+                <a href="LuCI.XHR.html">LuCI.XHR</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
+            
+                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
+            
+                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
+            
+                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
+            
+                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
+            
+                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+    </ul>
+</div>
+    <div class="main">
+        <h1 class="page-title" data-filename="LuCI.Headers.html">Class: Headers</h1>
+        
+
+
+
+<section>
+    
+<header>
+    <h2>
+        <span class="ancestors"><a href="LuCI.html">LuCI</a>.</span>
+    
+    Headers
+    </h2>
+    
+        <div class="class-description"><p>The <code>Headers</code> class is an internal utility class exposed in HTTP
+response objects using the <code>response.headers</code> property.</p></div>
+    
+</header>  
+
+<article>
+    <div class="container-overview">
+    
+    
+    
+        
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="Headers">
+            
+            new LuCI.Headers<span class="signature">()</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 324
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+    
+    </div>
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+        <h3 class="subsection-title">Methods</h3>
+        
+        <dl>
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="get">
+            
+            get<span class="signature">(name)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string|null}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 363
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Returns the value of the given header name.
+Note: Header-Names are case-insensitive.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<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">
+                
+                <p>The header name to read</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                         | 
+                    
+                        null
+                        
+                    
+            </td>
+            <td class="description last">The value of the given header name or <code>null</code> if the header isn't present.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="has">
+            
+            has<span class="signature">(name)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 347
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Checks whether the given header name is present.
+Note: Header-Names are case-insensitive.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<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">
+                
+                <p>The header name to check</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> if the header name is present, <code>false</code> otherwise</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        </dl>
+    
+    
+    
+    
+    
+
+    
+</article>
+
+</section>  
+
+
+
+
+
+        
+
+        <footer>
+            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
+        </footer>
+    </div>
+</div>
+<script>prettyPrint();</script>
+<script src="scripts/jaguar.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/jsapi/LuCI.Network.Device.html b/docs/jsapi/LuCI.Network.Device.html
new file mode 100644 (file)
index 0000000..71d88df
--- /dev/null
@@ -0,0 +1,3440 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>Class: Device</title>
+    
+    
+    <script src="scripts/prettify/prettify.js"></script>
+    <script src="scripts/prettify/lang-css.js"></script>
+    <script src="scripts/jquery.min.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/bootstrap.min.css">
+    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
+    
+    
+    <script>
+    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
+    </script>
+    
+
+    
+</head>
+<body>
+<div id="wrap" class="clearfix">
+    
+<div class="navigation">
+    <h3 class="applicationName"><a href="index.html"></a></h3>
+
+    <div class="search">
+        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
+    </div>
+    <ul class="list">
+    
+        <li class="item" data-name="LuCI">
+            <span class="title">
+                <a href="LuCI.html">LuCI</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
+            
+                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
+            
+                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
+            
+                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
+            
+                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
+            
+                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
+            
+                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
+            
+                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
+            
+                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
+            
+                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
+            
+                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
+            
+                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
+            
+                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
+            
+                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
+            
+                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
+            
+                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
+            
+                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
+            
+                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
+            
+                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Class">
+            <span class="title">
+                <a href="LuCI.Class.html">LuCI.Class</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
+            
+                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
+            
+                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
+            
+                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
+            
+                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
+            
+                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.dom">
+            <span class="title">
+                <a href="LuCI.dom.html">LuCI.dom</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
+            
+                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
+            
+                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
+            
+                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
+            
+                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
+            
+                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
+            
+                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
+            
+                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
+            
+                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
+            
+                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.fs">
+            <span class="title">
+                <a href="LuCI.fs.html">LuCI.fs</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
+            
+                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
+            
+                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
+            
+                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
+            
+                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
+            
+                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
+            
+                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
+            
+                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Headers">
+            <span class="title">
+                <a href="LuCI.Headers.html">LuCI.Headers</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
+            
+                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network">
+            <span class="title">
+                <a href="LuCI.Network.html">LuCI.Network</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
+            
+                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
+            
+                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
+            
+                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
+            
+                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
+            
+                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
+            
+                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
+            
+                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
+            
+                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
+            
+                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
+            
+                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
+            
+                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
+            
+                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
+            
+                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
+            
+                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
+            
+                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
+            
+                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Device">
+            <span class="title">
+                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
+            
+                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
+            
+                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
+            
+                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
+            
+                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Hosts">
+            <span class="title">
+                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Protocol">
+            <span class="title">
+                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiDevice">
+            <span class="title">
+                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiNetwork">
+            <span class="title">
+                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Poll">
+            <span class="title">
+                <a href="LuCI.Poll.html">LuCI.Poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request">
+            <span class="title">
+                <a href="LuCI.Request.html">LuCI.Request</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
+            
+                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
+            
+                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
+            
+                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request.poll">
+            <span class="title">
+                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Response">
+            <span class="title">
+                <a href="LuCI.Response.html">LuCI.Response</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
+            
+                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
+            
+                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
+            
+                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
+            
+                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
+            
+                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
+            
+                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
+            
+                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.rpc">
+            <span class="title">
+                <a href="LuCI.rpc.html">LuCI.rpc</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
+            
+                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
+            
+                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
+            
+                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
+            
+                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
+            
+                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
+            
+                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.uci">
+            <span class="title">
+                <a href="LuCI.uci.html">LuCI.uci</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
+            
+                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
+            
+                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
+            
+                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
+            
+                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
+            
+                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
+            
+                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
+            
+                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
+            
+                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
+            
+                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
+            
+                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
+            
+                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
+            
+                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
+            
+                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
+            
+                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
+            
+                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
+            
+                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
+            
+                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.view">
+            <span class="title">
+                <a href="LuCI.view.html">LuCI.view</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
+            
+                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
+            
+                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
+            
+                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
+            
+                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
+            
+                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.XHR">
+            <span class="title">
+                <a href="LuCI.XHR.html">LuCI.XHR</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
+            
+                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
+            
+                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
+            
+                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
+            
+                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
+            
+                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+    </ul>
+</div>
+    <div class="main">
+        <h1 class="page-title" data-filename="LuCI.Network.Device.html">Class: Device</h1>
+        
+
+
+
+<section>
+    
+<header>
+    <h2>
+        <span class="ancestors"><a href="LuCI.html">LuCI</a><a href="LuCI.Network.html">.Network</a>.</span>
+    
+    Device
+    </h2>
+    
+        <div class="class-description"><p>A <code>Network.Device</code> class instance represents an underlying Linux network
+device and allows querying device details such as packet statistics or MTU.</p></div>
+    
+</header>  
+
+<article>
+    <div class="container-overview">
+    
+    
+    
+        
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="Device">
+            
+            new LuCI.Network.Device<span class="signature">()</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2593
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+    
+    </div>
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+        <h3 class="subsection-title">Methods</h3>
+        
+        <dl>
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getBridgeID">
+            
+            getBridgeID<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2800
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the bridge ID</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the ID of this network bridge or <code>null</code> if this network
+device is not a Linux bridge.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getBridgeSTP">
+            
+            getBridgeSTP<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2812
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the bridge STP setting</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> when this device is a Linux bridge and has <code>stp</code>
+enabled, else <code>false</code>.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getI18n">
+            
+            getI18n<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2727
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get a long description string for the device.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns a string containing the type description and device name
+for non-wifi devices or operation mode and ssid for wifi ones.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getIP6Addrs">
+            
+            getIP6Addrs<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;string>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2671
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the IPv6 addresses configured on the device.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Array.&lt;string>
+                        
+                    
+            </td>
+            <td class="description last">Returns an array of IPv6 address strings.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getIPAddrs">
+            
+            getIPAddrs<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;string>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2660
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the IPv4 addresses configured on the device.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Array.&lt;string>
+                        
+                    
+            </td>
+            <td class="description last">Returns an array of IPv4 address strings.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getMAC">
+            
+            getMAC<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2639
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the MAC address of the device.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the MAC address of the device or <code>null</code> if not applicable,
+e.g. for non-ethernet tunnel devices.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getMTU">
+            
+            getMTU<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{number}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2650
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the MTU of the device.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        number
+                        
+                    
+            </td>
+            <td class="description last">Returns the MTU of the device.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getName">
+            
+            getName<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2628
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the name of the network device.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the name of the device, e.g. <code>eth0</code> or <code>wlan0</code>.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getNetwork">
+            
+            getNetwork<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2907
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the primary logical interface this device is assigned to.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
+                        
+                    
+            </td>
+            <td class="description last">Returns a <code>Network.Protocol</code> instance representing the logical
+interface this device is attached to or <code>null</code> if it is not
+assigned to any logical interface.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getNetworks">
+            
+            getNetworks<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2918
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the logical interfaces this device is assigned to.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Array.&lt;<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>>
+                        
+                    
+            </td>
+            <td class="description last">Returns an array of <code>Network.Protocol</code> instances representing the
+logical interfaces this device is assigned to.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getPorts">
+            
+            getPorts<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|Array.&lt;<a href="LuCI.Network.Device.html">LuCI.Network.Device</a>>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2778
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the associated bridge ports of the device.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        Array.&lt;<a href="LuCI.Network.Device.html">LuCI.Network.Device</a>>
+                        
+                    
+            </td>
+            <td class="description last">Returns an array of <code>Network.Device</code> instances representing the ports
+(slave interfaces) of the bridge or <code>null</code> when this device isn't
+a Linux bridge.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getRXBytes">
+            
+            getRXBytes<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{number}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2872
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the amount of received bytes.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        number
+                        
+                    
+            </td>
+            <td class="description last">Returns the amount of bytes received by the network device.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getRXPackets">
+            
+            getRXPackets<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{number}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2894
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the amount of received packets.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        number
+                        
+                    
+            </td>
+            <td class="description last">Returns the amount of packets received by the network device.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getShortName">
+            
+            getShortName<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2713
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get a short description string for the device.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the device name for non-wifi devices or a string containing
+the operation mode and SSID for wifi devices.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getTXBytes">
+            
+            getTXBytes<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{number}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2861
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the amount of transmitted bytes.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        number
+                        
+                    
+            </td>
+            <td class="description last">Returns the amount of bytes transmitted by the network device.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getTXPackets">
+            
+            getTXPackets<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{number}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2883
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the amount of transmitted packets.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        number
+                        
+                    
+            </td>
+            <td class="description last">Returns the amount of packets transmitted by the network device.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getType">
+            
+            getType<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2689
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the type of the device..</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns a string describing the type of the network device:
+<ul>
+<li><code>alias</code> if it is an abstract alias device (<code>@</code> notation)</li>
+<li><code>wifi</code> if it is a wireless interface (e.g. <code>wlan0</code>)</li>
+<li><code>bridge</code> if it is a bridge device (e.g. <code>br-lan</code>)</li>
+<li><code>tunnel</code> if it is a tun or tap device (e.g. <code>tun0</code>)</li>
+<li><code>vlan</code> if it is a vlan device (e.g. <code>eth0.1</code>)</li>
+<li><code>switch</code> if it is a switch device (e.g.<code>eth1</code> connected to switch0)</li>
+<li><code>ethernet</code> for all other device types</li>
+</ul></td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getTypeI18n">
+            
+            getTypeI18n<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2745
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get a string describing the device type.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns a string describing the type, e.g. &quot;Wireless Adapter&quot; or
+&quot;Bridge&quot;.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getWifiNetwork">
+            
+            getWifiNetwork<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|<a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2942
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the related wireless network this device is related to.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
+                        
+                    
+            </td>
+            <td class="description last">Returns a <code>Network.WifiNetwork</code> instance representing the wireless
+network corresponding to this network device or <code>null</code> if this device
+is not a wireless device.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="isBridge">
+            
+            isBridge<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2840
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Checks whether this device is a Linux bridge.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> when the network device is present and a Linux bridge,
+else <code>false</code>.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="isBridgePort">
+            
+            isBridgePort<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2851
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Checks whether this device is part of a Linux bridge.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> when this network device is part of a bridge,
+else <code>false</code>.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="isUp">
+            
+            isUp<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2824
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Checks whether this device is up.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> when the associated device is running pr <code>false</code>
+when it is down or absent.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        </dl>
+    
+    
+    
+    
+    
+
+    
+</article>
+
+</section>  
+
+
+
+
+
+        
+
+        <footer>
+            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
+        </footer>
+    </div>
+</div>
+<script>prettyPrint();</script>
+<script src="scripts/jaguar.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/jsapi/LuCI.Network.Hosts.html b/docs/jsapi/LuCI.Network.Hosts.html
new file mode 100644 (file)
index 0000000..fc392d8
--- /dev/null
@@ -0,0 +1,2421 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>Class: Hosts</title>
+    
+    
+    <script src="scripts/prettify/prettify.js"></script>
+    <script src="scripts/prettify/lang-css.js"></script>
+    <script src="scripts/jquery.min.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/bootstrap.min.css">
+    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
+    
+    
+    <script>
+    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
+    </script>
+    
+
+    
+</head>
+<body>
+<div id="wrap" class="clearfix">
+    
+<div class="navigation">
+    <h3 class="applicationName"><a href="index.html"></a></h3>
+
+    <div class="search">
+        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
+    </div>
+    <ul class="list">
+    
+        <li class="item" data-name="LuCI">
+            <span class="title">
+                <a href="LuCI.html">LuCI</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
+            
+                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
+            
+                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
+            
+                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
+            
+                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
+            
+                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
+            
+                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
+            
+                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
+            
+                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
+            
+                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
+            
+                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
+            
+                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
+            
+                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
+            
+                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
+            
+                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
+            
+                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
+            
+                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
+            
+                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
+            
+                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Class">
+            <span class="title">
+                <a href="LuCI.Class.html">LuCI.Class</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
+            
+                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
+            
+                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
+            
+                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
+            
+                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
+            
+                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.dom">
+            <span class="title">
+                <a href="LuCI.dom.html">LuCI.dom</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
+            
+                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
+            
+                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
+            
+                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
+            
+                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
+            
+                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
+            
+                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
+            
+                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
+            
+                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
+            
+                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.fs">
+            <span class="title">
+                <a href="LuCI.fs.html">LuCI.fs</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
+            
+                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
+            
+                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
+            
+                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
+            
+                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
+            
+                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
+            
+                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
+            
+                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Headers">
+            <span class="title">
+                <a href="LuCI.Headers.html">LuCI.Headers</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
+            
+                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network">
+            <span class="title">
+                <a href="LuCI.Network.html">LuCI.Network</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
+            
+                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
+            
+                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
+            
+                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
+            
+                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
+            
+                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
+            
+                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
+            
+                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
+            
+                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
+            
+                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
+            
+                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
+            
+                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
+            
+                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
+            
+                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
+            
+                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
+            
+                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
+            
+                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Device">
+            <span class="title">
+                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
+            
+                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
+            
+                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
+            
+                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
+            
+                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Hosts">
+            <span class="title">
+                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Protocol">
+            <span class="title">
+                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiDevice">
+            <span class="title">
+                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiNetwork">
+            <span class="title">
+                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Poll">
+            <span class="title">
+                <a href="LuCI.Poll.html">LuCI.Poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request">
+            <span class="title">
+                <a href="LuCI.Request.html">LuCI.Request</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
+            
+                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
+            
+                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
+            
+                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request.poll">
+            <span class="title">
+                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Response">
+            <span class="title">
+                <a href="LuCI.Response.html">LuCI.Response</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
+            
+                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
+            
+                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
+            
+                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
+            
+                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
+            
+                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
+            
+                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
+            
+                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.rpc">
+            <span class="title">
+                <a href="LuCI.rpc.html">LuCI.rpc</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
+            
+                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
+            
+                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
+            
+                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
+            
+                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
+            
+                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
+            
+                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.uci">
+            <span class="title">
+                <a href="LuCI.uci.html">LuCI.uci</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
+            
+                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
+            
+                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
+            
+                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
+            
+                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
+            
+                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
+            
+                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
+            
+                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
+            
+                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
+            
+                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
+            
+                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
+            
+                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
+            
+                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
+            
+                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
+            
+                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
+            
+                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
+            
+                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
+            
+                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.view">
+            <span class="title">
+                <a href="LuCI.view.html">LuCI.view</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
+            
+                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
+            
+                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
+            
+                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
+            
+                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
+            
+                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.XHR">
+            <span class="title">
+                <a href="LuCI.XHR.html">LuCI.XHR</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
+            
+                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
+            
+                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
+            
+                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
+            
+                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
+            
+                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+    </ul>
+</div>
+    <div class="main">
+        <h1 class="page-title" data-filename="LuCI.Network.Hosts.html">Class: Hosts</h1>
+        
+
+
+
+<section>
+    
+<header>
+    <h2>
+        <span class="ancestors"><a href="LuCI.html">LuCI</a><a href="LuCI.Network.html">.Network</a>.</span>
+    
+    Hosts
+    </h2>
+    
+        <div class="class-description"><p>The <code>LuCI.Network.Hosts</code> class encapsulates host information aggregated
+from multiple sources and provides convenience functions to access the
+host information by different criteria.</p></div>
+    
+</header>  
+
+<article>
+    <div class="container-overview">
+    
+    
+    
+        
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="Hosts">
+            
+            new LuCI.Network.Hosts<span class="signature">()</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1628
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+    
+    </div>
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+        <h3 class="subsection-title">Methods</h3>
+        
+        <dl>
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getHostnameByIP6Addr">
+            
+            getHostnameByIP6Addr<span class="signature">(ipaddr)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1725
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Lookup the hostname associated with the given IPv6 address.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>ipaddr</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The IPv6 address to lookup.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the hostname associated with the given IPv6 or <code>null</code> if
+no matching host could be found or if no hostname is known for
+the corresponding host.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getHostnameByIPAddr">
+            
+            getHostnameByIPAddr<span class="signature">(ipaddr)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1689
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Lookup the hostname associated with the given IPv4 address.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>ipaddr</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The IPv4 address to lookup.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the hostname associated with the given IPv4 or <code>null</code> if
+no matching host could be found or if no hostname is known for
+the corresponding host.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getHostnameByMACAddr">
+            
+            getHostnameByMACAddr<span class="signature">(mac)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1644
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Lookup the hostname associated with the given MAC address.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>mac</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The MAC address to lookup.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the hostname associated with the given MAC or <code>null</code> if
+no matching host could be found or if no hostname is known for
+the corresponding host.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getIP6AddrByMACAddr">
+            
+            getIP6AddrByMACAddr<span class="signature">(mac)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1674
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Lookup the IPv6 address associated with the given MAC address.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>mac</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The MAC address to lookup.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the IPv6 address associated with the given MAC or <code>null</code> if
+no matching host could be found or if no IPv6 address is known for
+the corresponding host.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getIPAddrByMACAddr">
+            
+            getIPAddrByMACAddr<span class="signature">(mac)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1659
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Lookup the IPv4 address associated with the given MAC address.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>mac</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The MAC address to lookup.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the IPv4 address associated with the given MAC or <code>null</code> if
+no matching host could be found or if no IPv4 address is known for
+the corresponding host.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getMACAddrByIP6Addr">
+            
+            getMACAddrByIP6Addr<span class="signature">(ipaddr)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1743
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Lookup the MAC address associated with the given IPv6 address.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>ipaddr</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The IPv6 address to lookup.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the MAC address associated with the given IPv6 or <code>null</code> if
+no matching host could be found or if no MAC address is known for
+the corresponding host.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getMACAddrByIPAddr">
+            
+            getMACAddrByIPAddr<span class="signature">(ipaddr)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1707
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Lookup the MAC address associated with the given IPv4 address.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>ipaddr</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The IPv4 address to lookup.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the MAC address associated with the given IPv4 or <code>null</code> if
+no matching host could be found or if no MAC address is known for
+the corresponding host.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getMACHints">
+            
+            getMACHints<span class="signature">(<span class="optional">preferIp6</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;Array.&lt;string>>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1771
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Return an array of (MAC address, name hint) tuples sorted by
+MAC address.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               <th>Default</th>
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>preferIp6</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">boolean</span>
+
+
+            
+            </td>
+            
+            
+                <td class="default">
+                
+                    false
+                
+                </td>
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>Whether to prefer IPv6 addresses (<code>true</code>) or IPv4 addresses (<code>false</code>)
+as name hint when no hostname is known for a specific MAC address.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Array.&lt;Array.&lt;string>>
+                        
+                    
+            </td>
+            <td class="description last">Returns an array of arrays containing a name hint for each found
+MAC address on the system. The array is sorted ascending by MAC.
+Each item of the resulting array is a two element array with the
+MAC being the first element and the name hint being the second
+element. The name hint is either the hostname, an IPv4 or an IPv6
+address related to the MAC address.
+If no hostname but both IPv4 and IPv6 addresses are known, the
+<code>preferIP6</code> flag specifies whether the IPv6 or the IPv4 address
+is used as hint.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        </dl>
+    
+    
+    
+    
+    
+
+    
+</article>
+
+</section>  
+
+
+
+
+
+        
+
+        <footer>
+            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
+        </footer>
+    </div>
+</div>
+<script>prettyPrint();</script>
+<script src="scripts/jaguar.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/jsapi/LuCI.Network.Protocol.html b/docs/jsapi/LuCI.Network.Protocol.html
new file mode 100644 (file)
index 0000000..20239bc
--- /dev/null
@@ -0,0 +1,5394 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>Class: Protocol</title>
+    
+    
+    <script src="scripts/prettify/prettify.js"></script>
+    <script src="scripts/prettify/lang-css.js"></script>
+    <script src="scripts/jquery.min.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/bootstrap.min.css">
+    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
+    
+    
+    <script>
+    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
+    </script>
+    
+
+    
+</head>
+<body>
+<div id="wrap" class="clearfix">
+    
+<div class="navigation">
+    <h3 class="applicationName"><a href="index.html"></a></h3>
+
+    <div class="search">
+        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
+    </div>
+    <ul class="list">
+    
+        <li class="item" data-name="LuCI">
+            <span class="title">
+                <a href="LuCI.html">LuCI</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
+            
+                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
+            
+                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
+            
+                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
+            
+                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
+            
+                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
+            
+                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
+            
+                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
+            
+                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
+            
+                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
+            
+                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
+            
+                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
+            
+                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
+            
+                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
+            
+                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
+            
+                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
+            
+                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
+            
+                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
+            
+                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Class">
+            <span class="title">
+                <a href="LuCI.Class.html">LuCI.Class</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
+            
+                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
+            
+                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
+            
+                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
+            
+                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
+            
+                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.dom">
+            <span class="title">
+                <a href="LuCI.dom.html">LuCI.dom</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
+            
+                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
+            
+                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
+            
+                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
+            
+                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
+            
+                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
+            
+                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
+            
+                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
+            
+                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
+            
+                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.fs">
+            <span class="title">
+                <a href="LuCI.fs.html">LuCI.fs</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
+            
+                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
+            
+                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
+            
+                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
+            
+                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
+            
+                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
+            
+                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
+            
+                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Headers">
+            <span class="title">
+                <a href="LuCI.Headers.html">LuCI.Headers</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
+            
+                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network">
+            <span class="title">
+                <a href="LuCI.Network.html">LuCI.Network</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
+            
+                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
+            
+                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
+            
+                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
+            
+                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
+            
+                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
+            
+                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
+            
+                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
+            
+                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
+            
+                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
+            
+                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
+            
+                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
+            
+                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
+            
+                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
+            
+                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
+            
+                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
+            
+                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Device">
+            <span class="title">
+                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
+            
+                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
+            
+                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
+            
+                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
+            
+                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Hosts">
+            <span class="title">
+                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Protocol">
+            <span class="title">
+                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiDevice">
+            <span class="title">
+                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiNetwork">
+            <span class="title">
+                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Poll">
+            <span class="title">
+                <a href="LuCI.Poll.html">LuCI.Poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request">
+            <span class="title">
+                <a href="LuCI.Request.html">LuCI.Request</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
+            
+                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
+            
+                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
+            
+                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request.poll">
+            <span class="title">
+                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Response">
+            <span class="title">
+                <a href="LuCI.Response.html">LuCI.Response</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
+            
+                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
+            
+                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
+            
+                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
+            
+                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
+            
+                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
+            
+                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
+            
+                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.rpc">
+            <span class="title">
+                <a href="LuCI.rpc.html">LuCI.rpc</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
+            
+                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
+            
+                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
+            
+                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
+            
+                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
+            
+                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
+            
+                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.uci">
+            <span class="title">
+                <a href="LuCI.uci.html">LuCI.uci</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
+            
+                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
+            
+                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
+            
+                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
+            
+                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
+            
+                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
+            
+                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
+            
+                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
+            
+                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
+            
+                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
+            
+                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
+            
+                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
+            
+                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
+            
+                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
+            
+                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
+            
+                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
+            
+                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
+            
+                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.view">
+            <span class="title">
+                <a href="LuCI.view.html">LuCI.view</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
+            
+                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
+            
+                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
+            
+                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
+            
+                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
+            
+                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.XHR">
+            <span class="title">
+                <a href="LuCI.XHR.html">LuCI.XHR</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
+            
+                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
+            
+                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
+            
+                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
+            
+                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
+            
+                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+    </ul>
+</div>
+    <div class="main">
+        <h1 class="page-title" data-filename="LuCI.Network.Protocol.html">Class: Protocol</h1>
+        
+
+
+
+<section>
+    
+<header>
+    <h2>
+        <span class="ancestors"><a href="LuCI.html">LuCI</a><a href="LuCI.Network.html">.Network</a>.</span>
+    
+    Protocol
+    </h2>
+    
+        <div class="class-description"><p>The <code>Network.Protocol</code> class serves as base for protocol specific
+subclasses which describe logical UCI networks defined by <code>config interface</code> sections in <code>/etc/config/network</code>.</p></div>
+    
+</header>  
+
+<article>
+    <div class="container-overview">
+    
+    
+    
+        
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="Protocol">
+            
+            new LuCI.Network.Protocol<span class="signature">()</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1794
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+    
+    </div>
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+        <h3 class="subsection-title">Methods</h3>
+        
+        <dl>
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="addDevice">
+            
+            addDevice<span class="signature">(device)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2383
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Add the given network device to the logical interface.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>device</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type"><a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a></span>
+|
+
+<span class="param-type"><a href="LuCI.Network.Device.html">LuCI.Network.Device</a></span>
+|
+
+<span class="param-type"><a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a></span>
+|
+
+<span class="param-type"><a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a></span>
+|
+
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The object or device name to add to the logical interface. In case the
+given argument is not a string, it is resolved though the
+<a href="LuCI.Network.html#getIfnameOf"><code>Network.getIfnameOf()</code></a> function.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> if the device name has been added or <code>false</code> if any
+argument was invalid, if the device was already part of the logical
+interface or if the logical interface is virtual.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="containsDevice">
+            
+            containsDevice<span class="signature">(device)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2552
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Checks whether this logical interface contains the given device
+object.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>device</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type"><a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a></span>
+|
+
+<span class="param-type"><a href="LuCI.Network.Device.html">LuCI.Network.Device</a></span>
+|
+
+<span class="param-type"><a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a></span>
+|
+
+<span class="param-type"><a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a></span>
+|
+
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The object or device name to check. In case the given argument is not
+a string, it is resolved though the
+<a href="LuCI.Network.html#getIfnameOf"><code>Network.getIfnameOf()</code></a> function.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> when this logical interface contains the given network
+device or <code>false</code> if not.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="deleteDevice">
+            
+            deleteDevice<span class="signature">(device)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2410
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Remove the given network device from the logical interface.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>device</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type"><a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a></span>
+|
+
+<span class="param-type"><a href="LuCI.Network.Device.html">LuCI.Network.Device</a></span>
+|
+
+<span class="param-type"><a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a></span>
+|
+
+<span class="param-type"><a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a></span>
+|
+
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The object or device name to remove from the logical interface. In case
+the given argument is not a string, it is resolved though the
+<a href="LuCI.Network.html#getIfnameOf"><code>Network.getIfnameOf()</code></a> function.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> if the device name has been added or <code>false</code> if any
+argument was invalid, if the device was already part of the logical
+interface or if the logical interface is virtual.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="get">
+            
+            get<span class="signature">(opt)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string|Array.&lt;string>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1827
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Read the given UCI option value of this network.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>opt</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The UCI option name to read.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        string
+                         | 
+                    
+                        Array.&lt;string>
+                        
+                    
+            </td>
+            <td class="description last">Returns the UCI option value or <code>null</code> if the requested option is
+not found.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getDevice">
+            
+            getDevice<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{<a href="LuCI.Network.Device.html">LuCI.Network.Device</a>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2437
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Returns the Linux network device associated with this logical
+interface.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
+                        
+                    
+            </td>
+            <td class="description last">Returns a <code>Network.Device</code> class instance representing the
+expected Linux network device according to the configuration.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getDevices">
+            
+            getDevices<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|Array.&lt;<a href="LuCI.Network.Device.html">LuCI.Network.Device</a>>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2498
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Returns a list of network sub-devices associated with this logical
+interface.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        Array.&lt;<a href="LuCI.Network.Device.html">LuCI.Network.Device</a>>
+                        
+                    
+            </td>
+            <td class="description last">Returns an array of of <code>Network.Device</code> class instances representing
+the sub-devices attached to this logical interface or <code>null</code> if the
+logical interface does not support sub-devices, e.g. because it is
+virtual and not a bridge.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getDNS6Addrs">
+            
+            getDNS6Addrs<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;string>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2152
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Query the IPv6 DNS servers associated with the logical interface.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Array.&lt;string>
+                        
+                    
+            </td>
+            <td class="description last">Returns an array of IPv6 DNS servers registered by the remote
+protocol backend.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getDNSAddrs">
+            
+            getDNSAddrs<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;string>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2064
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Query the IPv4 DNS servers associated with the logical interface.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Array.&lt;string>
+                        
+                    
+            </td>
+            <td class="description last">Returns an array of IPv4 DNS servers registered by the remote
+protocol backend.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getErrors">
+            
+            getErrors<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;string>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2196
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Query interface error messages published in <code>ubus</code> runtime state.</p>
+<p>Interface errors are emitted by remote protocol handlers if the setup
+of the underlying logical interface failed, e.g. due to bad
+configuration or network connectivity issues.</p>
+<p>This function will translate the found error codes to human readable
+messages using the descriptions registered by
+<a href="LuCI.Network.html#registerErrorCode"><code>Network.registerErrorCode()</code></a>
+and fall back to <code>&quot;Unknown error (%s)&quot;</code> where <code>%s</code> is replaced by the
+error code in case no translation can be found.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Array.&lt;string>
+                        
+                    
+            </td>
+            <td class="description last">Returns an array of translated interface error messages.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getExpiry">
+            
+            getExpiry<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{number}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1947
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the logical interface expiry time in seconds.</p>
+<p>For protocols that have a concept of a lease, such as DHCP or
+DHCPv6, this function returns the remaining time in seconds
+until the lease expires.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        number
+                        
+                    
+            </td>
+            <td class="description last">Returns the amount of seconds until the lease expires or <code>-1</code>
+if it isn't applicable to the associated protocol.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getGateway6Addr">
+            
+            getGateway6Addr<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2132
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Query the gateway (nexthop) of the IPv6 default route associated with
+this logical interface.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns a string containing the IPv6 nexthop address of the associated
+default route or <code>null</code> if no default route was found.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getGatewayAddr">
+            
+            getGatewayAddr<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2044
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Query the gateway (nexthop) of the default route associated with
+this logical interface.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns a string containing the IPv4 nexthop address of the associated
+default route or <code>null</code> if no default route was found.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getI18n">
+            
+            <span class="type-signature ">abstract</span>getI18n<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1892
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Return a human readable description for the protcol, such as
+<code>Static address</code> or <code>DHCP client</code>.</p>
+<p>This function should be overwritten by subclasses.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the description string.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getIfname">
+            
+            getIfname<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1852
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the associared Linux network device of this network.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the name of the associated network device or <code>null</code> if
+it could not be determined.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getIP6Addr">
+            
+            getIP6Addr<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2083
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Query the first (primary) IPv6 address of the logical interface.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the primary IPv6 address registered by the protocol handler
+in CIDR notation or <code>null</code> if no IPv6 addresses were set.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getIP6Addrs">
+            
+            getIP6Addrs<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;string>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2105
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Query all IPv6 addresses of the logical interface.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Array.&lt;string>
+                        
+                    
+            </td>
+            <td class="description last">Returns an array of IPv6 addresses in CIDR notation which have been
+registered by the protocol handler. The order of the resulting array
+follows the order of the addresses in <code>ubus</code> runtime information.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getIP6Prefix">
+            
+            getIP6Prefix<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2171
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Query the routed IPv6 prefix associated with the logical interface.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the routed IPv6 prefix registered by the remote protocol
+handler or <code>null</code> if no prefix is present.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getIPAddr">
+            
+            getIPAddr<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1999
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Query the first (primary) IPv4 address of the logical interface.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the primary IPv4 address registered by the protocol handler
+or <code>null</code> if no IPv4 addresses were set.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getIPAddrs">
+            
+            getIPAddrs<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;string>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2012
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Query all IPv4 addresses of the logical interface.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Array.&lt;string>
+                        
+                    
+            </td>
+            <td class="description last">Returns an array of IPv4 addresses in CIDR notation which have been
+registered by the protocol handler. The order of the resulting array
+follows the order of the addresses in <code>ubus</code> runtime information.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getL2Device">
+            
+            getL2Device<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{<a href="LuCI.Network.Device.html">LuCI.Network.Device</a>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2470
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Returns the layer 2 linux network device currently associated
+with this logical interface.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
+                        
+                    
+            </td>
+            <td class="description last">Returns a <code>Network.Device</code> class instance representing the Linux
+network device currently associated with the logical interface.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getL3Device">
+            
+            getL3Device<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{<a href="LuCI.Network.Device.html">LuCI.Network.Device</a>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2483
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Returns the layer 3 linux network device currently associated
+with this logical interface.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
+                        
+                    
+            </td>
+            <td class="description last">Returns a <code>Network.Device</code> class instance representing the Linux
+network device currently associated with the logical interface.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getMetric">
+            
+            getMetric<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{number}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1967
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the metric value of the logical interface.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        number
+                        
+                    
+            </td>
+            <td class="description last">Returns the current metric value used for device and network
+routes spawned by the associated logical interface.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getName">
+            
+            getName<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1922
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the name of the associated logical interface.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the logical interface name, such as <code>lan</code> or <code>wan</code>.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getNetmask">
+            
+            getNetmask<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2030
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Query the first (primary) IPv4 netmask of the logical interface.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the netmask of the primary IPv4 address registered by the
+protocol handler or <code>null</code> if no IPv4 addresses were set.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getOpkgPackage">
+            
+            <span class="type-signature ">abstract</span>getOpkgPackage<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2236
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the name of the opkg package providing the protocol functionality.</p>
+<p>This function should be overwritten by protocol specific subclasses.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the name of the opkg package required for the protocol to
+function, e.g. <code>odhcp6c</code> for the <code>dhcpv6</code> prototocol.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getProtocol">
+            
+            <span class="type-signature ">abstract</span>getProtocol<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1878
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the name of this network protocol class.</p>
+<p>This function will be overwritten by subclasses created by
+<a href="LuCI.Network.html#registerProtocol"><code>Network.registerProtocol()</code></a>.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the name of the network protocol implementation, e.g.
+<code>static</code> or <code>dhcp</code>.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getType">
+            
+            getType<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1912
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the type of the underlying interface.</p>
+<p>This function actually is a convenience wrapper around
+<code>proto.get(&quot;type&quot;)</code> and is mainly used by other <code>LuCI.Network</code> code
+to check whether the interface is declared as bridge in UCI.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the value of the <code>type</code> option of the associated logical
+interface or <code>null</code> if no <code>type</code> option is set.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getUptime">
+            
+            getUptime<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{number}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1932
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the uptime of the logical interface.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        number
+                        
+                    
+            </td>
+            <td class="description last">Returns the uptime of the associated interface in seconds.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getZoneName">
+            
+            getZoneName<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1983
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the requested firewall zone name of the logical interface.</p>
+<p>Some protocol implementations request a specific firewall zone
+to trigger inclusion of their resulting network devices into the
+firewall rule set.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the requested firewall zone name as published in the
+<code>ubus</code> runtime information or <code>null</code> if the remote protocol
+handler didn't request a zone.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="isAlias">
+            
+            isAlias<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2324
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Checks whether this interface is an alias interface.</p>
+<p>Alias interfaces are interfaces layering on top of another interface
+and are denoted by a special <code>@interfacename</code> notation in the
+underlying <code>ifname</code> option.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the name of the parent interface if this logical interface
+is an alias or <code>null</code> if it is not an alias interface.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="isBridge">
+            
+            isBridge<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2221
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Checks whether the underlying logical interface is declared as bridge.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> when the interface is declared with <code>option type bridge</code>
+and when the associated protocol implementation is not marked virtual
+or <code>false</code> when the logical interface is no bridge.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="isDynamic">
+            
+            isDynamic<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2309
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Checks whether this logical interface is dynamic.</p>
+<p>A dynamic interface is an interface which has been created at runtime,
+e.g. as sub-interface of another interface, but which is not backed by
+any user configuration. Such dynamic interfaces cannot be edited but
+only brought down or restarted.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns a boolean indicating whether this interface is dynamic (<code>true</code>)
+or not (<code>false</code>).</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="isEmpty">
+            
+            isEmpty<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2344
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Checks whether this logical interface is &quot;empty&quot;, meaning that ut
+has no network devices attached.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> if this logical interface is empty, else <code>false</code>.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="isFloating">
+            
+            isFloating<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2293
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Checks whether this protocol is &quot;floating&quot;.</p>
+<p>A &quot;floating&quot; protocol is a protocol which spawns its own interfaces
+on demand, like a virtual one but which relies on an existinf lower
+level interface to initiate the connection.</p>
+<p>An example for such a protocol is &quot;pppoe&quot;.</p>
+<p>This function exists for backwards compatibility with older code
+but should not be used anymore.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+        <dt class="important tag-deprecated">Deprecated</dt><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd>
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns a boolean indicating whether this protocol is floating (<code>true</code>)
+or not (<code>false</code>).</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="isInstalled">
+            
+            <span class="type-signature ">abstract</span>isInstalled<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2252
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Checks whether the protocol functionality is installed.</p>
+<p>This function exists for compatibility with old code, it always
+returns <code>true</code>.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+        <dt class="important tag-deprecated">Deprecated</dt><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd>
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> if the protocol support is installed, else <code>false</code>.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="isUp">
+            
+            isUp<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2366
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Checks whether this logical interface is configured and running.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> when the interface is active or <code>false</code> when it is not.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="isVirtual">
+            
+            isVirtual<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2272
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Checks whether this protocol is &quot;virtual&quot;.</p>
+<p>A &quot;virtual&quot; protocol is a protocol which spawns its own interfaces
+on demand instead of using existing physical interfaces.</p>
+<p>Examples for virtual protocols are <code>6in4</code> which <code>gre</code> spawn tunnel
+network device on startup, examples for non-virtual protcols are
+<code>dhcp</code> or <code>static</code> which apply IP configuration to existing interfaces.</p>
+<p>This function should be overwritten by subclasses.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns a boolean indicating whether the underlying protocol spawns
+dynamic interfaces (<code>true</code>) or not (<code>false</code>).</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="set">
+            
+            set<span class="signature">(opt, val)</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1841
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Set the given UCI option of this network to the given value.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>opt</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The name of the UCI option to set.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>val</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">null</span>
+|
+
+<span class="param-type">string</span>
+|
+
+<span class="param-type">Array.&lt;string></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The value to set or <code>null</code> to remove the given option from the
+configuration.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+        </dl>
+    
+    
+    
+    
+    
+
+    
+</article>
+
+</section>  
+
+
+
+
+
+        
+
+        <footer>
+            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
+        </footer>
+    </div>
+</div>
+<script>prettyPrint();</script>
+<script src="scripts/jaguar.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/jsapi/LuCI.Network.WifiDevice.html b/docs/jsapi/LuCI.Network.WifiDevice.html
new file mode 100644 (file)
index 0000000..89d050e
--- /dev/null
@@ -0,0 +1,2787 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>Class: WifiDevice</title>
+    
+    
+    <script src="scripts/prettify/prettify.js"></script>
+    <script src="scripts/prettify/lang-css.js"></script>
+    <script src="scripts/jquery.min.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/bootstrap.min.css">
+    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
+    
+    
+    <script>
+    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
+    </script>
+    
+
+    
+</head>
+<body>
+<div id="wrap" class="clearfix">
+    
+<div class="navigation">
+    <h3 class="applicationName"><a href="index.html"></a></h3>
+
+    <div class="search">
+        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
+    </div>
+    <ul class="list">
+    
+        <li class="item" data-name="LuCI">
+            <span class="title">
+                <a href="LuCI.html">LuCI</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
+            
+                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
+            
+                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
+            
+                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
+            
+                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
+            
+                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
+            
+                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
+            
+                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
+            
+                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
+            
+                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
+            
+                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
+            
+                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
+            
+                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
+            
+                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
+            
+                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
+            
+                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
+            
+                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
+            
+                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
+            
+                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Class">
+            <span class="title">
+                <a href="LuCI.Class.html">LuCI.Class</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
+            
+                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
+            
+                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
+            
+                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
+            
+                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
+            
+                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.dom">
+            <span class="title">
+                <a href="LuCI.dom.html">LuCI.dom</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
+            
+                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
+            
+                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
+            
+                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
+            
+                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
+            
+                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
+            
+                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
+            
+                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
+            
+                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
+            
+                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.fs">
+            <span class="title">
+                <a href="LuCI.fs.html">LuCI.fs</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
+            
+                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
+            
+                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
+            
+                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
+            
+                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
+            
+                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
+            
+                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
+            
+                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Headers">
+            <span class="title">
+                <a href="LuCI.Headers.html">LuCI.Headers</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
+            
+                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network">
+            <span class="title">
+                <a href="LuCI.Network.html">LuCI.Network</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
+            
+                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
+            
+                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
+            
+                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
+            
+                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
+            
+                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
+            
+                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
+            
+                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
+            
+                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
+            
+                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
+            
+                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
+            
+                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
+            
+                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
+            
+                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
+            
+                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
+            
+                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
+            
+                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Device">
+            <span class="title">
+                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
+            
+                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
+            
+                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
+            
+                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
+            
+                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Hosts">
+            <span class="title">
+                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Protocol">
+            <span class="title">
+                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiDevice">
+            <span class="title">
+                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiNetwork">
+            <span class="title">
+                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Poll">
+            <span class="title">
+                <a href="LuCI.Poll.html">LuCI.Poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request">
+            <span class="title">
+                <a href="LuCI.Request.html">LuCI.Request</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
+            
+                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
+            
+                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
+            
+                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request.poll">
+            <span class="title">
+                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Response">
+            <span class="title">
+                <a href="LuCI.Response.html">LuCI.Response</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
+            
+                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
+            
+                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
+            
+                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
+            
+                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
+            
+                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
+            
+                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
+            
+                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.rpc">
+            <span class="title">
+                <a href="LuCI.rpc.html">LuCI.rpc</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
+            
+                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
+            
+                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
+            
+                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
+            
+                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
+            
+                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
+            
+                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.uci">
+            <span class="title">
+                <a href="LuCI.uci.html">LuCI.uci</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
+            
+                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
+            
+                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
+            
+                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
+            
+                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
+            
+                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
+            
+                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
+            
+                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
+            
+                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
+            
+                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
+            
+                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
+            
+                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
+            
+                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
+            
+                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
+            
+                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
+            
+                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
+            
+                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
+            
+                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.view">
+            <span class="title">
+                <a href="LuCI.view.html">LuCI.view</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
+            
+                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
+            
+                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
+            
+                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
+            
+                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
+            
+                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.XHR">
+            <span class="title">
+                <a href="LuCI.XHR.html">LuCI.XHR</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
+            
+                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
+            
+                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
+            
+                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
+            
+                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
+            
+                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+    </ul>
+</div>
+    <div class="main">
+        <h1 class="page-title" data-filename="LuCI.Network.WifiDevice.html">Class: WifiDevice</h1>
+        
+
+
+
+<section>
+    
+<header>
+    <h2>
+        <span class="ancestors"><a href="LuCI.html">LuCI</a><a href="LuCI.Network.html">.Network</a>.</span>
+    
+    WifiDevice
+    </h2>
+    
+        <div class="class-description"><p>A <code>Network.WifiDevice</code> class instance represents a wireless radio device
+present on the system and provides wireless capability information as
+well as methods for enumerating related wireless networks.</p></div>
+    
+</header>  
+
+<article>
+    <div class="container-overview">
+    
+    
+    
+        
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="WifiDevice">
+            
+            new LuCI.Network.WifiDevice<span class="signature">()</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2957
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+    
+    </div>
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+        <h3 class="subsection-title">Methods</h3>
+        
+        <dl>
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="addWifiNetwork">
+            
+            addWifiNetwork<span class="signature">(<span class="optional">options</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;(null|<a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>)>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3222
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Adds a new wireless network associated with this radio device to the
+configuration and sets its options to the provided values.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>options</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Object.&lt;string, (string|Array.&lt;string>)></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>The options to set for the newly added wireless network.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;(null|<a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>)>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to a <code>WifiNetwork</code> instance describing
+the newly added wireless network or <code>null</code> if the given options
+were invalid.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="deleteWifiNetwork">
+            
+            deleteWifiNetwork<span class="signature">(network)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;boolean>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3247
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Deletes the wireless network with the given name associated with this
+radio device.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>network</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The name of the wireless network to lookup. This may be either an uci
+configuration section ID, a network ID in the form <code>radio#.network#</code>
+or a Linux network device name like <code>wlan0</code> which is resolved to the
+corresponding configuration section through <code>ubus</code> runtime information.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;boolean>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to <code>true</code> when the wireless network was
+successfully deleted from the configuration or <code>false</code> when the given
+network could not be found or if the found network was not associated
+with this wireless radio device.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="get">
+            
+            get<span class="signature">(opt)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string|Array.&lt;string>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 2997
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Read the given UCI option value of this wireless device.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>opt</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The UCI option name to read.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        string
+                         | 
+                    
+                        Array.&lt;string>
+                        
+                    
+            </td>
+            <td class="description last">Returns the UCI option value or <code>null</code> if the requested option is
+not found.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getHTModes">
+            
+            getHTModes<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;string>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3075
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Gets a list of supported htmodes.</p>
+<p>The htmode values describe the wide-frequency options supported by
+the wireless phy.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Array.&lt;string>
+                        
+                    
+            </td>
+            <td class="description last">Returns an array of valid htmode values for this radio. Currently
+known mode values are:
+<ul>
+<li><code>HT20</code> - applicable to IEEE 802.11n, 20 MHz wide channels</li>
+<li><code>HT40</code> - applicable to IEEE 802.11n, 40 MHz wide channels</li>
+<li><code>VHT20</code> - applicable to IEEE 802.11ac, 20 MHz wide channels</li>
+<li><code>VHT40</code> - applicable to IEEE 802.11ac, 40 MHz wide channels</li>
+<li><code>VHT80</code> - applicable to IEEE 802.11ac, 80 MHz wide channels</li>
+<li><code>VHT160</code> - applicable to IEEE 802.11ac, 160 MHz wide channels</li>
+</ul></td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getHWModes">
+            
+            getHWModes<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;string>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3054
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Gets a list of supported hwmodes.</p>
+<p>The hwmode values describe the frequency band and wireless standard
+versions supported by the wireless phy.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Array.&lt;string>
+                        
+                    
+            </td>
+            <td class="description last">Returns an array of valid hwmode values for this radio. Currently
+known mode values are:
+<ul>
+<li><code>a</code> - Legacy 802.11a mode, 5 GHz, up to 54 Mbit/s</li>
+<li><code>b</code> - Legacy 802.11b mode, 2.4 GHz, up to 11 Mbit/s</li>
+<li><code>g</code> - Legacy 802.11g mode, 2.4 GHz, up to 54 Mbit/s</li>
+<li><code>n</code> - IEEE 802.11n mode, 2.4 or 5 GHz, up to 600 Mbit/s</li>
+<li><code>ac</code> - IEEE 802.11ac mode, 5 GHz, up to 6770 Mbit/s</li>
+</ul></td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getI18n">
+            
+            getI18n<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3086
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get a string describing the wireless radio hardware.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the description string.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getName">
+            
+            getName<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3035
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the configuration name of this wireless radio.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the UCI section name (e.g. <code>radio0</code>) of the corresponding
+radio configuration which also serves as unique logical identifier
+for the wireless phy.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getScanList">
+            
+            getScanList<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;Array.&lt;<a href="LuCI.Network.html#.WifiScanResult">LuCI.Network.WifiScanResult</a>>>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3147
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Trigger a wireless scan on this radio device and obtain a list of
+nearby networks.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;Array.&lt;<a href="LuCI.Network.html#.WifiScanResult">LuCI.Network.WifiScanResult</a>>>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to an array of scan result objects
+describing the networks found in the vincinity.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getWifiNetwork">
+            
+            getWifiNetwork<span class="signature">(network)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;<a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3180
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the wifi network of the given name belonging to this radio device</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>network</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The name of the wireless network to lookup. This may be either an uci
+configuration section ID, a network ID in the form <code>radio#.network#</code>
+or a Linux network device name like <code>wlan0</code> which is resolved to the
+corresponding configuration section through <code>ubus</code> runtime information.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;<a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to a <code>Network.WifiNetwork</code> instance
+representing the wireless network and rejecting with <code>null</code> if
+the given network could not be found or is not associated with
+this radio device.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getWifiNetworks">
+            
+            getWifiNetworks<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;Array.&lt;<a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>>>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3199
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get all wireless networks associated with this wireless radio device.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;Array.&lt;<a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>>>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to an array of <code>Network.WifiNetwork</code>
+instances respresenting the wireless networks associated with this
+radio device.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="isDisabled">
+            
+            isDisabled<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3023
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Checks whether this wireless radio is disabled.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> when the wireless radio is marked as disabled in <code>ubus</code>
+runtime state or when the <code>disabled</code> option is set in the corresponding
+UCI configuration.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="isUp">
+            
+            isUp<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3158
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Check whether the wireless radio is marked as up in the <code>ubus</code>
+runtime state.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> when the radio device is up, else <code>false</code>.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="set">
+            
+            set<span class="signature">(opt, val)</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3011
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Set the given UCI option of this network to the given value.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>opt</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The name of the UCI option to set.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>val</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">null</span>
+|
+
+<span class="param-type">string</span>
+|
+
+<span class="param-type">Array.&lt;string></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The value to set or <code>null</code> to remove the given option from the
+configuration.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+        </dl>
+    
+    
+    
+    
+    
+
+    
+</article>
+
+</section>  
+
+
+
+
+
+        
+
+        <footer>
+            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
+        </footer>
+    </div>
+</div>
+<script>prettyPrint();</script>
+<script src="scripts/jaguar.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/jsapi/LuCI.Network.WifiNetwork.html b/docs/jsapi/LuCI.Network.WifiNetwork.html
new file mode 100644 (file)
index 0000000..20ba744
--- /dev/null
@@ -0,0 +1,4908 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>Class: WifiNetwork</title>
+    
+    
+    <script src="scripts/prettify/prettify.js"></script>
+    <script src="scripts/prettify/lang-css.js"></script>
+    <script src="scripts/jquery.min.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/bootstrap.min.css">
+    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
+    
+    
+    <script>
+    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
+    </script>
+    
+
+    
+</head>
+<body>
+<div id="wrap" class="clearfix">
+    
+<div class="navigation">
+    <h3 class="applicationName"><a href="index.html"></a></h3>
+
+    <div class="search">
+        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
+    </div>
+    <ul class="list">
+    
+        <li class="item" data-name="LuCI">
+            <span class="title">
+                <a href="LuCI.html">LuCI</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
+            
+                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
+            
+                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
+            
+                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
+            
+                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
+            
+                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
+            
+                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
+            
+                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
+            
+                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
+            
+                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
+            
+                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
+            
+                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
+            
+                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
+            
+                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
+            
+                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
+            
+                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
+            
+                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
+            
+                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
+            
+                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Class">
+            <span class="title">
+                <a href="LuCI.Class.html">LuCI.Class</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
+            
+                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
+            
+                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
+            
+                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
+            
+                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
+            
+                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.dom">
+            <span class="title">
+                <a href="LuCI.dom.html">LuCI.dom</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
+            
+                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
+            
+                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
+            
+                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
+            
+                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
+            
+                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
+            
+                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
+            
+                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
+            
+                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
+            
+                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.fs">
+            <span class="title">
+                <a href="LuCI.fs.html">LuCI.fs</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
+            
+                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
+            
+                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
+            
+                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
+            
+                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
+            
+                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
+            
+                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
+            
+                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Headers">
+            <span class="title">
+                <a href="LuCI.Headers.html">LuCI.Headers</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
+            
+                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network">
+            <span class="title">
+                <a href="LuCI.Network.html">LuCI.Network</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
+            
+                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
+            
+                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
+            
+                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
+            
+                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
+            
+                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
+            
+                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
+            
+                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
+            
+                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
+            
+                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
+            
+                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
+            
+                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
+            
+                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
+            
+                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
+            
+                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
+            
+                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
+            
+                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Device">
+            <span class="title">
+                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
+            
+                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
+            
+                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
+            
+                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
+            
+                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Hosts">
+            <span class="title">
+                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Protocol">
+            <span class="title">
+                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiDevice">
+            <span class="title">
+                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiNetwork">
+            <span class="title">
+                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Poll">
+            <span class="title">
+                <a href="LuCI.Poll.html">LuCI.Poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request">
+            <span class="title">
+                <a href="LuCI.Request.html">LuCI.Request</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
+            
+                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
+            
+                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
+            
+                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request.poll">
+            <span class="title">
+                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Response">
+            <span class="title">
+                <a href="LuCI.Response.html">LuCI.Response</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
+            
+                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
+            
+                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
+            
+                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
+            
+                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
+            
+                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
+            
+                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
+            
+                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.rpc">
+            <span class="title">
+                <a href="LuCI.rpc.html">LuCI.rpc</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
+            
+                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
+            
+                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
+            
+                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
+            
+                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
+            
+                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
+            
+                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.uci">
+            <span class="title">
+                <a href="LuCI.uci.html">LuCI.uci</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
+            
+                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
+            
+                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
+            
+                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
+            
+                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
+            
+                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
+            
+                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
+            
+                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
+            
+                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
+            
+                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
+            
+                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
+            
+                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
+            
+                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
+            
+                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
+            
+                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
+            
+                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
+            
+                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
+            
+                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.view">
+            <span class="title">
+                <a href="LuCI.view.html">LuCI.view</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
+            
+                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
+            
+                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
+            
+                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
+            
+                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
+            
+                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.XHR">
+            <span class="title">
+                <a href="LuCI.XHR.html">LuCI.XHR</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
+            
+                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
+            
+                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
+            
+                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
+            
+                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
+            
+                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+    </ul>
+</div>
+    <div class="main">
+        <h1 class="page-title" data-filename="LuCI.Network.WifiNetwork.html">Class: WifiNetwork</h1>
+        
+
+
+
+<section>
+    
+<header>
+    <h2>
+        <span class="ancestors"><a href="LuCI.html">LuCI</a><a href="LuCI.Network.html">.Network</a>.</span>
+    
+    WifiNetwork
+    </h2>
+    
+        <div class="class-description"><p>A <code>Network.WifiNetwork</code> instance represents a wireless network (vif)
+configured on top of a radio device and provides functions for querying
+the runtime state of the network. Most radio devices support multiple
+such networks in parallel.</p></div>
+    
+</header>  
+
+<article>
+    <div class="container-overview">
+    
+    
+    
+        
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="WifiNetwork">
+            
+            new LuCI.Network.WifiNetwork<span class="signature">()</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3280
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+    
+    </div>
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+        <h3 class="subsection-title">Methods</h3>
+        
+        <dl>
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="get">
+            
+            get<span class="signature">(opt)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string|Array.&lt;string>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3313
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Read the given UCI option value of this wireless network.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>opt</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The UCI option name to read.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        string
+                         | 
+                    
+                        Array.&lt;string>
+                        
+                    
+            </td>
+            <td class="description last">Returns the UCI option value or <code>null</code> if the requested option is
+not found.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getActiveBSSID">
+            
+            getActiveBSSID<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3566
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Query the current BSSID from runtime information.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the current BSSID or Mesh ID as reported by <code>ubus</code> runtime
+information.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getActiveEncryption">
+            
+            getActiveEncryption<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3577
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Query the current encryption settings from runtime information.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns a string describing the current encryption or <code>-</code> if the the
+encryption state could not be found in <code>ubus</code> runtime information.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getActiveMode">
+            
+            getActiveMode<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3514
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Query the current operation mode from runtime information.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the human readable mode name as reported by <code>ubus</code> runtime
+state. Possible returned values are:
+<ul>
+<li><code>Master</code></li>
+<li><code>Ad-Hoc</code></li>
+<li><code>Client</code></li>
+<li><code>Monitor</code></li>
+<li><code>Master (VLAN)</code></li>
+<li><code>WDS</code></li>
+<li><code>Mesh Point</code></li>
+<li><code>P2P Client</code></li>
+<li><code>P2P Go</code></li>
+<li><code>Unknown</code></li>
+</ul></td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getActiveModeI18n">
+            
+            getActiveModeI18n<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3535
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Query the current operation mode from runtime information as
+translated string.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the translated, human readable mode name as reported by
+<code>ubus</code> runtime state.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getActiveSSID">
+            
+            getActiveSSID<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3555
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Query the current SSID from runtime information.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the current SSID or Mesh ID as reported by <code>ubus</code> runtime
+information.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getAssocList">
+            
+            getAssocList<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;Array.&lt;<a href="LuCI.Network.html#.WifiPeerEntry">LuCI.Network.WifiPeerEntry</a>>>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3757
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Fetch the list of associated peers.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;Array.&lt;<a href="LuCI.Network.html#.WifiPeerEntry">LuCI.Network.WifiPeerEntry</a>>>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to an array of wireless peers associated
+with this network.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getBitRate">
+            
+            getBitRate<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|number}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3787
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Query the current average bitrate of all peers associated to this
+wireless network.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        number
+                        
+                    
+            </td>
+            <td class="description last">Returns the average bit rate among all peers associated to the network
+as reported by <code>ubus</code> runtime information or <code>null</code> if the information
+is not available.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getBSSID">
+            
+            getBSSID<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3392
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the configured BSSID of the wireless network.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the BSSID value or <code>null</code> if none has been specified.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getChannel">
+            
+            getChannel<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|number}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3803
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Query the current wireless channel.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        number
+                        
+                    
+            </td>
+            <td class="description last">Returns the wireless channel as reported by <code>ubus</code> runtime information
+or <code>null</code> if it cannot be determined.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getCountryCode">
+            
+            getCountryCode<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3836
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Query the current country code.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the wireless country code as reported by <code>ubus</code> runtime
+information or <code>00</code> if it cannot be determined.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getDevice">
+            
+            getDevice<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{<a href="LuCI.Network.Device.html">LuCI.Network.Device</a>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3982
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the associated Linux network device.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
+                        
+                    
+            </td>
+            <td class="description last">Returns a <code>Network.Device</code> instance representing the Linux network
+device associted with this wireless network.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getFrequency">
+            
+            getFrequency<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3769
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Query the current operating frequency of the wireless network.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the current operating frequency of the network from <code>ubus</code>
+runtime information in GHz or <code>null</code> if the information is not
+available.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getI18n">
+            
+            getI18n<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3930
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get a description string for this wireless network.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns a string describing this network, consisting of the
+term <code>Wireless Network</code>, followed by the active operation mode,
+the SSID, BSSID or internal network ID and the Linux network device
+name, depending on which information is available.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getID">
+            
+            getID<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3417
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the internal network ID of this wireless network.</p>
+<p>The network ID is a LuCI specific identifer in the form
+<code>radio#.network#</code> to identify wireless networks by their corresponding
+radio and network index numbers.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the LuCI specific network ID.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getIfname">
+            
+            getIfname<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3439
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the Linux network device name.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the current Linux network device name as resolved from
+<code>ubus</code> runtime information or <code>null</code> if this network has no
+associated network device, e.g. when not configured or up.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getMeshID">
+            
+            getMeshID<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3379
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the configured Mesh ID of the wireless network.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the configured mesh ID value or <code>null</code> when this network
+is not in mesh mode.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getMode">
+            
+            getMode<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3354
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the configured operation mode of the wireless network.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the configured operation mode. Possible values are:
+<ul>
+<li><code>ap</code> - Master (Access Point) mode</li>
+<li><code>sta</code> - Station (client) mode</li>
+<li><code>adhoc</code> - Ad-Hoc (IBSS) mode</li>
+<li><code>mesh</code> - Mesh (IEEE 802.11s) mode</li>
+<li><code>monitor</code> - Monitor mode</li>
+</ul></td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getName">
+            
+            getName<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3427
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the configuration ID of this wireless network.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the corresponding UCI section ID of the network.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getNetwork">
+            
+            getNetwork<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3946
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the primary logical interface this wireless network is attached to.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
+                        
+                    
+            </td>
+            <td class="description last">Returns a <code>Network.Protocol</code> instance representing the logical
+interface or <code>null</code> if this network is not attached to any logical
+interface.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getNetworkNames">
+            
+            getNetworkNames<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;string>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3403
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the names of the logical interfaces this wireless network is
+attached to.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Array.&lt;string>
+                        
+                    
+            </td>
+            <td class="description last">Returns an array of logical interface names.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getNetworks">
+            
+            getNetworks<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3957
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the logical interfaces this wireless network is attached to.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Array.&lt;<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>>
+                        
+                    
+            </td>
+            <td class="description last">Returns an array of <code>Network.Protocol</code> instances representing the
+logical interfaces this wireless network is attached to.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getNoise">
+            
+            getNoise<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{number}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3825
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Query the current radio noise floor.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        number
+                        
+                    
+            </td>
+            <td class="description last">Returns the radio noise floor in dBm as reported by <code>ubus</code> runtime
+information or <code>0</code> if it cannot be determined.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getShortName">
+            
+            getShortName<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3915
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get a short description string for this wireless network.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns a string describing this network, consisting of the
+active operation mode, followed by either the SSID, BSSID or
+internal network ID, depending on which information is available.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getSignal">
+            
+            getSignal<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|number}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3814
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Query the current wireless signal.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        number
+                        
+                    
+            </td>
+            <td class="description last">Returns the wireless signal in dBm as reported by <code>ubus</code> runtime
+information or <code>null</code> if it cannot be determined.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getSignalLevel">
+            
+            getSignalLevel<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{number}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3874
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Calculate the current signal.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+        <dt class="important tag-deprecated">Deprecated</dt><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd>
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        number
+                        
+                    
+            </td>
+            <td class="description last">Returns the calculated signal level, which is the difference between
+noise and signal (SNR), divided by 5.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getSignalPercent">
+            
+            getSignalPercent<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{number}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3897
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Calculate the current signal quality percentage.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        number
+                        
+                    
+            </td>
+            <td class="description last">Returns the calculated signal quality in percent. The value is
+calculated from the <code>quality</code> and <code>quality_max</code> indicators reported
+by <code>ubus</code> runtime state.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getSSID">
+            
+            getSSID<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3365
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the configured SSID of the wireless network.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the configured SSID value or <code>null</code> when this network is
+in mesh mode.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getTXPower">
+            
+            getTXPower<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|number}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3847
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Query the current radio TX power.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        number
+                        
+                    
+            </td>
+            <td class="description last">Returns the wireless network transmit power in dBm as reported by
+<code>ubus</code> runtime information or <code>null</code> if it cannot be determined.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getTXPowerOffset">
+            
+            getTXPowerOffset<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{number}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3862
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Query the radio TX power offset.</p>
+<p>Some wireless radios have a fixed power offset, e.g. due to the
+use of external amplifiers.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        number
+                        
+                    
+            </td>
+            <td class="description last">Returns the wireless network transmit power offset in dBm as reported
+by <code>ubus</code> runtime information or <code>0</code> if there is no offset, or if it
+cannot be determined.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getWifiDevice">
+            
+            getWifiDevice<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|<a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3467
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the corresponding wifi radio device.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
+                        
+                    
+            </td>
+            <td class="description last">Returns a <code>Network.WifiDevice</code> instance representing the corresponding
+wifi radio device or <code>null</code> if the related radio device could not be
+found.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getWifiDeviceName">
+            
+            getWifiDeviceName<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3455
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get the name of the corresponding wifi radio device.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the name of the radio device this network is configured on
+or <code>null</code> if it cannot be determined.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="isDisabled">
+            
+            isDisabled<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3339
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Checks whether this wireless network is disabled.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> when the wireless radio is marked as disabled in <code>ubus</code>
+runtime state or when the <code>disabled</code> option is set in the corresponding
+UCI configuration.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="isUp">
+            
+            isUp<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3488
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Check whether the radio network is up.</p>
+<p>This function actually queries the up state of the related radio
+device and assumes this network to be up as well when the parent
+radio is up. This is due to the fact that OpenWrt does not control
+virtual interfaces individually but within one common hostapd
+instance.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> when the network is up, else <code>false</code>.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="set">
+            
+            set<span class="signature">(opt, val)</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 3327
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Set the given UCI option of this network to the given value.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>opt</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The name of the UCI option to set.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>val</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">null</span>
+|
+
+<span class="param-type">string</span>
+|
+
+<span class="param-type">Array.&lt;string></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The value to set or <code>null</code> to remove the given option from the
+configuration.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+        </dl>
+    
+    
+    
+    
+    
+
+    
+</article>
+
+</section>  
+
+
+
+
+
+        
+
+        <footer>
+            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
+        </footer>
+    </div>
+</div>
+<script>prettyPrint();</script>
+<script src="scripts/jaguar.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/jsapi/LuCI.Network.html b/docs/jsapi/LuCI.Network.html
new file mode 100644 (file)
index 0000000..5b4d1e8
--- /dev/null
@@ -0,0 +1,7032 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>Class: Network</title>
+    
+    
+    <script src="scripts/prettify/prettify.js"></script>
+    <script src="scripts/prettify/lang-css.js"></script>
+    <script src="scripts/jquery.min.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/bootstrap.min.css">
+    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
+    
+    
+    <script>
+    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
+    </script>
+    
+
+    
+</head>
+<body>
+<div id="wrap" class="clearfix">
+    
+<div class="navigation">
+    <h3 class="applicationName"><a href="index.html"></a></h3>
+
+    <div class="search">
+        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
+    </div>
+    <ul class="list">
+    
+        <li class="item" data-name="LuCI">
+            <span class="title">
+                <a href="LuCI.html">LuCI</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
+            
+                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
+            
+                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
+            
+                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
+            
+                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
+            
+                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
+            
+                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
+            
+                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
+            
+                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
+            
+                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
+            
+                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
+            
+                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
+            
+                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
+            
+                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
+            
+                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
+            
+                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
+            
+                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
+            
+                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
+            
+                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Class">
+            <span class="title">
+                <a href="LuCI.Class.html">LuCI.Class</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
+            
+                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
+            
+                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
+            
+                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
+            
+                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
+            
+                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.dom">
+            <span class="title">
+                <a href="LuCI.dom.html">LuCI.dom</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
+            
+                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
+            
+                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
+            
+                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
+            
+                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
+            
+                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
+            
+                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
+            
+                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
+            
+                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
+            
+                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.fs">
+            <span class="title">
+                <a href="LuCI.fs.html">LuCI.fs</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
+            
+                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
+            
+                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
+            
+                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
+            
+                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
+            
+                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
+            
+                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
+            
+                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Headers">
+            <span class="title">
+                <a href="LuCI.Headers.html">LuCI.Headers</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
+            
+                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network">
+            <span class="title">
+                <a href="LuCI.Network.html">LuCI.Network</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
+            
+                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
+            
+                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
+            
+                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
+            
+                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
+            
+                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
+            
+                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
+            
+                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
+            
+                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
+            
+                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
+            
+                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
+            
+                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
+            
+                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
+            
+                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
+            
+                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
+            
+                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
+            
+                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Device">
+            <span class="title">
+                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
+            
+                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
+            
+                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
+            
+                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
+            
+                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Hosts">
+            <span class="title">
+                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Protocol">
+            <span class="title">
+                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiDevice">
+            <span class="title">
+                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiNetwork">
+            <span class="title">
+                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Poll">
+            <span class="title">
+                <a href="LuCI.Poll.html">LuCI.Poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request">
+            <span class="title">
+                <a href="LuCI.Request.html">LuCI.Request</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
+            
+                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
+            
+                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
+            
+                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request.poll">
+            <span class="title">
+                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Response">
+            <span class="title">
+                <a href="LuCI.Response.html">LuCI.Response</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
+            
+                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
+            
+                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
+            
+                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
+            
+                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
+            
+                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
+            
+                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
+            
+                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.rpc">
+            <span class="title">
+                <a href="LuCI.rpc.html">LuCI.rpc</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
+            
+                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
+            
+                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
+            
+                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
+            
+                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
+            
+                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
+            
+                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.uci">
+            <span class="title">
+                <a href="LuCI.uci.html">LuCI.uci</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
+            
+                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
+            
+                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
+            
+                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
+            
+                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
+            
+                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
+            
+                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
+            
+                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
+            
+                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
+            
+                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
+            
+                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
+            
+                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
+            
+                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
+            
+                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
+            
+                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
+            
+                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
+            
+                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
+            
+                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.view">
+            <span class="title">
+                <a href="LuCI.view.html">LuCI.view</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
+            
+                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
+            
+                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
+            
+                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
+            
+                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
+            
+                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.XHR">
+            <span class="title">
+                <a href="LuCI.XHR.html">LuCI.XHR</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
+            
+                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
+            
+                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
+            
+                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
+            
+                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
+            
+                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+    </ul>
+</div>
+    <div class="main">
+        <h1 class="page-title" data-filename="LuCI.Network.html">Class: Network</h1>
+        
+
+
+
+<section>
+    
+<header>
+    <h2>
+        <span class="ancestors"><a href="LuCI.html">LuCI</a>.</span>
+    
+    Network
+    </h2>
+    
+        <div class="class-description"><p>The <code>LuCI.Network</code> class combines data from multiple <code>ubus</code> apis to
+provide an abstraction of the current network configuration state.</p>
+<p>It provides methods to enumerate interfaces and devices, to query
+current configuration details and to manipulate settings.</p></div>
+    
+</header>  
+
+<article>
+    <div class="container-overview">
+    
+    
+    
+        
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="Network">
+            
+            new LuCI.Network<span class="signature">()</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 628
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+    
+    </div>
+    
+    
+    
+    
+    
+    
+    
+    
+        <h3 class="subsection-title">Classes</h3>
+        
+        <dl>
+            <dt><a href="LuCI.Network.Device.html">Device</a></dt>
+            <dd></dd>
+        
+            <dt><a href="LuCI.Network.Hosts.html">Hosts</a></dt>
+            <dd></dd>
+        
+            <dt><a href="LuCI.Network.Protocol.html">Protocol</a></dt>
+            <dd></dd>
+        
+            <dt><a href="LuCI.Network.WifiDevice.html">WifiDevice</a></dt>
+            <dd></dd>
+        
+            <dt><a href="LuCI.Network.WifiNetwork.html">WifiNetwork</a></dt>
+            <dd></dd>
+        </dl>
+    
+    
+    
+    
+    
+    
+    
+        <h3 class="subsection-title">Methods</h3>
+        
+        <dl>
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="addNetwork">
+            
+            addNetwork<span class="signature">(name, <span class="optional">options</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;(null|<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>)>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 884
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Adds a new network of the given name and update it with the given
+uci option values.</p>
+<p>If a network with the given name already exist but is empty, then
+this function will update its option, otherwise it will do nothing.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<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">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The name of the network to add. Must be in the format <code>[a-zA-Z0-9_]+</code>.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>options</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Object.&lt;string, (string|Array.&lt;string>)></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>An object of uci option values to set on the new network or to
+update in an existing, empty network.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;(null|<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>)>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to the <code>Protocol</code> subclass instance
+describing the added network or resolving to <code>null</code> if the name
+was invalid or if a non-empty network of the given name already
+existed.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="addWifiNetwork">
+            
+            addWifiNetwork<span class="signature">(options)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;(null|<a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>)>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1352
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Adds a new wireless network to the configuration and sets its options
+to the provided values.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>options</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Object.&lt;string, (string|Array.&lt;string>)></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The options to set for the newly added wireless network. This object
+must at least contain a <code>device</code> property which is set to the radio
+name the new network belongs to.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;(null|<a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>)>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to a <code>WifiNetwork</code> instance describing
+the newly added wireless network or <code>null</code> if the given options
+were invalid or if the associated radio device could not be found.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="deleteNetwork">
+            
+            deleteNetwork<span class="signature">(name)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;boolean>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 962
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Deletes the given network and its references from the network and
+firewall configuration.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<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">
+                
+                <p>The name of the network to delete.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;boolean>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to either <code>true</code> if the network and
+references to it were successfully deleted from the configuration or
+<code>false</code> if the given network could not be found.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="deleteWifiNetwork">
+            
+            deleteWifiNetwork<span class="signature">(netname)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;boolean>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1390
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Deletes the given wireless network from the configuration.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>netname</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The name of the network to remove. This may be either a
+network ID in the form <code>radio#.network#</code> or a Linux network device
+name like <code>wlan0</code> which is resolved to the corresponding configuration
+section through <code>ubus</code> runtime information.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;boolean>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to <code>true</code> if the wireless network has been
+successfully deleted from the configuration or <code>false</code> if it could not
+be found.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="flushCache">
+            
+            flushCache<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;Object>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 728
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Flushes the local network state cache and fetches updated information
+from the remote <code>ubus</code> apis.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;Object>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to the internal network state object.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="formatWifiEncryption">
+            
+            formatWifiEncryption<span class="signature">(encryption)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 719
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Converts a given <a href="LuCI.Network.html#.WifiEncryption"><code>encryption entry</code></a>
+into a human readable string such as <code>mixed WPA/WPA2 PSK (TKIP, CCMP)</code>
+or <code>WPA3 SAE (CCMP)</code>.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>encryption</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type"><a href="LuCI.Network.html#.WifiEncryption">LuCI.Network.WifiEncryption</a></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The wireless encryption entry to convert.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the description string for the given encryption entry or
+<code>null</code> if the given entry was invalid.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getDevice">
+            
+            getDevice<span class="signature">(name)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;(null|<a href="LuCI.Network.Device.html">LuCI.Network.Device</a>)>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1087
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get a <a href="LuCI.Network.Device.html"><code>Device</code></a> instance describing the
+given network device.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<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">
+                
+                <p>The name of the network device to get, e.g. <code>eth0</code> or <code>br-lan</code>.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;(null|<a href="LuCI.Network.Device.html">LuCI.Network.Device</a>)>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to the <code>Device</code> instance describing
+the network device or <code>null</code> if the given device name could not
+be found.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getDevices">
+            
+            getDevices<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;Array.&lt;<a href="LuCI.Network.Device.html">LuCI.Network.Device</a>>>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1110
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get a sorted list of all found network devices.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;Array.&lt;<a href="LuCI.Network.Device.html">LuCI.Network.Device</a>>>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to a sorted array of <code>Device</code> class
+instances describing the network devices found on the system.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getDSLModemType">
+            
+            getDSLModemType<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;(null|string)>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1594
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Queries the internal DSL modem type from board information.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;(null|string)>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to the type of the internal modem
+(e.g. <code>vdsl</code>) or to <code>null</code> if no internal modem is present.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getHostHints">
+            
+            getHostHints<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;<a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1611
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Queries aggregated information about known hosts.</p>
+<p>This function aggregates information from various sources such as
+DHCP lease databases, ARP and IPv6 neighbour entries, wireless
+association list etc. and returns a <a href="LuCI.Network.Hosts.html"><code>Hosts</code></a>
+class instance describing the found hosts.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;<a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>>
+                        
+                    
+            </td>
+            <td class="description last">Returns a <code>Hosts</code> instance describing host known on the system.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getIfnameOf">
+            
+            getIfnameOf<span class="signature">(obj)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1583
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Obtains the the network device name of the given object.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>obj</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type"><a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a></span>
+|
+
+<span class="param-type"><a href="LuCI.Network.Device.html">LuCI.Network.Device</a></span>
+|
+
+<span class="param-type"><a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a></span>
+|
+
+<span class="param-type"><a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a></span>
+|
+
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The object to get the device name from.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns a string containing the device name or <code>null</code> if the given
+object could not be converted to a name.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getNetwork">
+            
+            getNetwork<span class="signature">(name)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;(null|<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>)>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 921
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get a <a href="LuCI.Network.Protocol.html"><code>Protocol</code></a> instance describing
+the network with the given name.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<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">
+                
+                <p>The logical interface name of the network get, e.g. <code>lan</code> or <code>wan</code>.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;(null|<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>)>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to a
+<a href="LuCI.Network.Protocol.html"><code>Protocol</code></a> subclass instance describing
+the network or <code>null</code> if the network did not exist.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getNetworks">
+            
+            getNetworks<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;Array.&lt;<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>>>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 946
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Gets an array containing all known networks.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;Array.&lt;<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>>>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to a name-sorted array of
+<a href="LuCI.Network.Protocol.html"><code>Protocol</code></a> subclass instances
+describing all known networks.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getProtocol">
+            
+            getProtocol<span class="signature">(protoname, <span class="optional">netname</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 750
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Instantiates the given <a href="LuCI.Network.Protocol.html"><code>Protocol</code></a> backend,
+optionally using the given network name.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               <th>Default</th>
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>protoname</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+                <td class="default">
+                
+                </td>
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The protocol backend to use, e.g. <code>static</code> or <code>dhcp</code>.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>netname</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+                <td class="default">
+                
+                    __dummy__
+                
+                </td>
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>The network name to use for the instantiated protocol. This should be
+usually set to one of the interfaces described in /etc/config/network
+but it is allowed to omit it, e.g. to query protocol capabilities
+without the need for an existing interface.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
+                        
+                    
+            </td>
+            <td class="description last">Returns the instantiated protocol backend class or <code>null</code> if the given
+protocol isn't known.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getProtocols">
+            
+            getProtocols<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 765
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Obtains instances of all known <a href="LuCI.Network.Protocol.html"><code>Protocol</code></a>
+backend classes.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Array.&lt;<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>>
+                        
+                    
+            </td>
+            <td class="description last">Returns an array of protocol class instances.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getSwitchTopologies">
+            
+            getSwitchTopologies<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;Object.&lt;string, <a href="LuCI.Network.html#.SwitchTopology">LuCI.Network.SwitchTopology</a>>>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1538
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Returns the topologies of all swconfig switches found on the system.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;Object.&lt;string, <a href="LuCI.Network.html#.SwitchTopology">LuCI.Network.SwitchTopology</a>>>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to an object containing the topologies
+of each switch. The object keys correspond to the name of the switches
+such as <code>switch0</code>, the values are
+<a href="LuCI.Network.html#.SwitchTopology"><code>SwitchTopology</code></a> objects describing
+the layout.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getWAN6Networks">
+            
+            getWAN6Networks<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;Array.&lt;<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>>>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1493
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get IPv6 wan networks.</p>
+<p>This function looks up all networks having a default <code>::/0</code> route
+and returns them as array.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;Array.&lt;<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>>>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to an array of <code>Protocol</code> subclass
+instances describing the found IPv6 default route interfaces.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getWANNetworks">
+            
+            getWANNetworks<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;Array.&lt;<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>>>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1472
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get IPv4 wan networks.</p>
+<p>This function looks up all networks having a default <code>0.0.0.0/0</code> route
+and returns them as array.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;Array.&lt;<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>>>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to an array of <code>Protocol</code> subclass
+instances describing the found default route interfaces.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getWifiDevice">
+            
+            getWifiDevice<span class="signature">(devname)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;(null|<a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>)>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1240
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get a <a href="LuCI.Network.WifiDevice.html"><code>WifiDevice</code></a> instance describing
+the given wireless radio.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>devname</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The configuration name of the wireless radio to lookup, e.g. <code>radio0</code>
+for the first mac80211 phy on the system.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;(null|<a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>)>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to the <code>WifiDevice</code> instance describing
+the underlying radio device or <code>null</code> if the wireless radio could not
+be found.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getWifiDevices">
+            
+            getWifiDevices<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;Array.&lt;<a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>>>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1260
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Obtain a list of all configured radio devices.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;Array.&lt;<a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>>>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to an array of <code>WifiDevice</code> instances
+describing the wireless radios configured in the system.
+The order of the array corresponds to the order of the radios in
+the configuration.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getWifiNetwork">
+            
+            getWifiNetwork<span class="signature">(netname)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;(null|<a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>)>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1289
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Get a <a href="LuCI.Network.WifiNetwork.html"><code>WifiNetwork</code></a> instance describing
+the given wireless network.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>netname</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The name of the wireless network to lookup. This may be either an uci
+configuration section ID, a network ID in the form <code>radio#.network#</code>
+or a Linux network device name like <code>wlan0</code> which is resolved to the
+corresponding configuration section through <code>ubus</code> runtime information.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;(null|<a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>)>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to the <code>WifiNetwork</code> instance describing
+the wireless network or <code>null</code> if the corresponding network could not
+be found.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="isIgnoredDevice">
+            
+            isIgnoredDevice<span class="signature">(name)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1223
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Test if a given network device name is in the list of patterns for
+device names to ignore.</p>
+<p>Ignored device names are usually Linux network devices which are
+spawned implicitly by kernel modules such as <code>tunl0</code> or <code>hwsim0</code>
+and which are unsuitable for use in network configuration.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<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">
+                
+                <p>The device name to test.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> if the given name is in the ignore pattern list,
+else returns <code>false</code>.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="maskToPrefix">
+            
+            maskToPrefix<span class="signature">(netmask, <span class="optional">v6</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|number}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 664
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Converts the given netmask to a prefix size in bits.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               <th>Default</th>
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>netmask</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+                <td class="default">
+                
+                </td>
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The netmask to convert into a bit count.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>v6</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">boolean</span>
+
+
+            
+            </td>
+            
+            
+                <td class="default">
+                
+                    false
+                
+                </td>
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>Whether to parse the given netmask as IPv4 (<code>false</code>) or IPv6 (<code>true</code>)
+address.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        number
+                        
+                    
+            </td>
+            <td class="description last">Returns the number of prefix bits contained in the netmask or <code>null</code>
+if the given netmask value was invalid.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="prefixToMask">
+            
+            prefixToMask<span class="signature">(bits, <span class="optional">v6</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 646
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Converts the given prefix size in bits to a netmask.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               <th>Default</th>
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>bits</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+                <td class="default">
+                
+                </td>
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The prefix size in bits.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>v6</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">boolean</span>
+
+
+            
+            </td>
+            
+            
+                <td class="default">
+                
+                    false
+                
+                </td>
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>Whether to convert the bits value into an IPv4 netmask (<code>false</code>) or
+an IPv6 netmask (<code>true</code>).</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns a string containing the netmask corresponding to the bit count
+or <code>null</code> when the given amount of bits exceeds the maximum possible
+value of <code>32</code> for IPv4 or <code>128</code> for IPv6.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="registerErrorCode">
+            
+            registerErrorCode<span class="signature">(code, message)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 853
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Registers a new human readable translation string for a <code>Protocol</code>
+error code.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>code</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The <code>ubus</code> protocol error code to register a translation for, e.g.
+<code>NO_DEVICE</code>.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>message</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The message to use as translation for the given protocol error code.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> if the error code description has been added or <code>false</code>
+if either the arguments were invalid or if there already was a
+description for the given code.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="registerPatternVirtual">
+            
+            registerPatternVirtual<span class="signature">(pat)</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 833
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Registers a new regular expression pattern to recognize
+virtual interfaces.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>pat</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">RegExp</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>A <code>RegExp</code> instance to match a virtual interface name
+such as <code>6in4-wan</code> or <code>tun0</code>.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="registerProtocol">
+            
+            registerProtocol<span class="signature">(protoname, methods)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 792
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Registers a new <a href="LuCI.Network.Protocol.html"><code>Protocol</code></a> subclass
+with the given methods and returns the resulting subclass value.</p>
+<p>This functions internally calls
+<a href="LuCI.Class.html#.extend"><code>Class.extend()</code></a> on the <code>Network.Protocol</code>
+base class.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>protoname</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The name of the new protocol to register.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>methods</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Object.&lt;string, *></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The member methods and values of the new <code>Protocol</code> subclass to
+be passed to <a href="LuCI.Class.html#.extend"><code>Class.extend()</code></a>.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
+                        
+                    
+            </td>
+            <td class="description last">Returns the new <code>Protocol</code> subclass.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="renameNetwork">
+            
+            renameNetwork<span class="signature">(oldName, newName)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;boolean>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            network.js, line 1026
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Rename the given network and its references to a new name.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>oldName</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The current name of the network.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>newName</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The name to rename the network to, must be in the format
+<code>[a-z-A-Z0-9_]+</code>.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;boolean>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to either <code>true</code> if the network was
+successfully renamed or <code>false</code> if the new name was invalid, if
+a network with the new name already exists or if the network to
+rename could not be found.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        </dl>
+    
+    
+    
+        <h3 class="subsection-title">Type Definitions</h3>
+        
+        <dl>
+                
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id=".SwitchTopology">LuCI.Network.SwitchTopology<span class="type-signature type object.<string, (object|array)>">Object.&lt;string, (Object|Array)></span> </h4>
+    </div>
+    
+    
+</dt>
+<dd>
+    
+    <div class="description">
+        <p>Describes an swconfig switch topology by specifying the CPU
+connections and external port labels of a switch.</p>
+    </div>
+    
+    
+    
+<dl class="details">
+    
+        
+        <h5 class="subsection-title">Properties:</h5>
+        
+        <dl>
+
+<table class="props">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>netdevs</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Object.&lt;number, string></span>
+
+
+            
+            </td>
+            
+            
+            
+            
+            
+            <td class="description last"><p>The <code>netdevs</code> property points to an object describing the CPU port
+connections of the switch. The numeric key of the enclosed object is
+the port number, the value contains the Linux network device name the
+port is hardwired to.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>ports</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Object.&lt;string, (boolean|number|string)>></span>
+
+
+            
+            </td>
+            
+            
+            
+            
+            
+            <td class="description last"><p>The <code>ports</code> property points to an array describing the populated
+ports of the switch in the external label order. Each array item is
+an object containg the following keys:</p>
+<ul>
+<li><code>num</code> - the internal switch port number</li>
+<li><code>label</code> - the label of the port, e.g. <code>LAN 1</code> or <code>CPU (eth0)</code></li>
+<li><code>device</code> - the connected Linux network device name (CPU ports only)</li>
+<li><code>tagged</code> - a boolean indicating whether the port must be tagged to
+function (CPU ports only)</li>
+</ul></td>
+        </tr>
+       
+       
+       </tbody>
+</table></dl>
+        
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+</dd>
+
+            
+                
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id=".WifiEncryption">LuCI.Network.WifiEncryption<span class="type-signature type object.<string, (boolean|array.<(number|string)>)>">Object.&lt;string, (boolean|Array.&lt;(number|string)>)></span> </h4>
+    </div>
+    
+    
+</dt>
+<dd>
+    
+    <div class="description">
+        <p>An encryption entry describes active wireless encryption settings
+such as the used key management protocols, active ciphers and
+protocol versions.</p>
+    </div>
+    
+    
+    
+<dl class="details">
+    
+        
+        <h5 class="subsection-title">Properties:</h5>
+        
+        <dl>
+
+<table class="props">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               <th>Argument</th>
+               
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>enabled</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">boolean</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>Specifies whether any kind of encryption, such as <code>WEP</code> or <code>WPA</code> is
+enabled. If set to <code>false</code>, then no encryption is active and the
+corresponding network is open.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>wep</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;string></span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>When the <code>wep</code> property exists, the network uses WEP encryption.
+In this case, the property is set to an array of active WEP modes
+which might be either <code>open</code>, <code>shared</code> or both.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>wpa</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;number></span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>When the <code>wpa</code> property exists, the network uses WPA security.
+In this case, the property is set to an array containing the WPA
+protocol versions used, e.g. <code>[ 1, 2 ]</code> for WPA/WPA2 mixed mode or
+<code>[ 3 ]</code> for WPA3-SAE.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>authentication</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;string></span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>The <code>authentication</code> property only applies to WPA encryption and
+is defined when the <code>wpa</code> property is set as well. It points to
+an array of active authentication suites used by the network, e.g.
+<code>[ &quot;psk&quot; ]</code> for a WPA(2)-PSK network or <code>[ &quot;psk&quot;, &quot;sae&quot; ]</code> for
+mixed WPA2-PSK/WPA3-SAE encryption.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>ciphers</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;string></span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>If either WEP or WPA encryption is active, then the <code>ciphers</code>
+property will be set to an array describing the active encryption
+ciphers used by the network, e.g. <code>[ &quot;tkip&quot;, &quot;ccmp&quot; ]</code> for a
+WPA/WPA2-PSK mixed network or <code>[ &quot;wep-40&quot;, &quot;wep-104&quot; ]</code> for an
+WEP network.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table></dl>
+        
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+</dd>
+
+            
+                
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id=".WifiPeerEntry">LuCI.Network.WifiPeerEntry<span class="type-signature type object.<string, (boolean|number|string|luci.network.wifirateentry)>">Object.&lt;string, (boolean|number|string|<a href="LuCI.Network.html#.WifiRateEntry">LuCI.Network.WifiRateEntry</a>)></span> </h4>
+    </div>
+    
+    
+</dt>
+<dd>
+    
+    <div class="description">
+        <p>A wireless peer entry describes the properties of a remote wireless
+peer associated with a local network.</p>
+    </div>
+    
+    
+    
+<dl class="details">
+    
+        
+        <h5 class="subsection-title">Properties:</h5>
+        
+        <dl>
+
+<table class="props">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               <th>Argument</th>
+               
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>mac</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>The MAC address (BSSID).</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>signal</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>The received signal strength.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>signal_avg</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>The average signal strength if supported by the driver.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>noise</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>The current noise floor of the radio. May be <code>0</code> or absent if not
+supported by the driver.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>inactive</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>The amount of milliseconds the peer has been inactive, e.g. due
+to powersave.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>connected_time</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>The amount of milliseconds the peer is associated to this network.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>thr</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>The estimated throughput of the peer, May be <code>0</code> or absent if not
+supported by the driver.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>authorized</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">boolean</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>Specifies whether the peer is authorized to associate to this network.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>authenticated</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">boolean</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>Specifies whether the peer completed authentication to this network.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>preamble</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>The preamble mode used by the peer. May be <code>long</code> or <code>short</code>.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>wme</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">boolean</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>Specifies whether the peer supports WME/WMM capabilities.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>mfp</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">boolean</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>Specifies whether management frame protection is active.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>tdls</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">boolean</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>Specifies whether TDLS is active.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>mesh llid</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>The mesh LLID, may be <code>0</code> or absent if not applicable or supported
+by the driver.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>mesh plid</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>The mesh PLID, may be <code>0</code> or absent if not applicable or supported
+by the driver.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>mesh plink</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>The mesh peer link state description, may be an empty string (<code>''</code>)
+or absent if not applicable or supported by the driver.</p>
+<p>The following states are known:</p>
+<ul>
+<li><code>LISTEN</code></li>
+<li><code>OPN_SNT</code></li>
+<li><code>OPN_RCVD</code></li>
+<li><code>CNF_RCVD</code></li>
+<li><code>ESTAB</code></li>
+<li><code>HOLDING</code></li>
+<li><code>BLOCKED</code></li>
+<li><code>UNKNOWN</code></li>
+</ul></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>mesh local PS</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>The local powersafe mode for the peer link, may be an empty
+string (<code>''</code>) or absent if not applicable or supported by
+the driver.</p>
+<p>The following modes are known:</p>
+<ul>
+<li><code>ACTIVE</code> (no power save)</li>
+<li><code>LIGHT SLEEP</code></li>
+<li><code>DEEP SLEEP</code></li>
+<li><code>UNKNOWN</code></li>
+</ul></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>mesh peer PS</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>The remote powersafe mode for the peer link, may be an empty
+string (<code>''</code>) or absent if not applicable or supported by
+the driver.</p>
+<p>The following modes are known:</p>
+<ul>
+<li><code>ACTIVE</code> (no power save)</li>
+<li><code>LIGHT SLEEP</code></li>
+<li><code>DEEP SLEEP</code></li>
+<li><code>UNKNOWN</code></li>
+</ul></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>mesh non-peer PS</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>The powersafe mode for all non-peer neigbours, may be an empty
+string (<code>''</code>) or absent if not applicable or supported by the driver.</p>
+<p>The following modes are known:</p>
+<ul>
+<li><code>ACTIVE</code> (no power save)</li>
+<li><code>LIGHT SLEEP</code></li>
+<li><code>DEEP SLEEP</code></li>
+<li><code>UNKNOWN</code></li>
+</ul></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>rx</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type"><a href="LuCI.Network.html#.WifiRateEntry">LuCI.Network.WifiRateEntry</a></span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>Describes the receiving wireless rate from the peer.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>tx</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type"><a href="LuCI.Network.html#.WifiRateEntry">LuCI.Network.WifiRateEntry</a></span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>Describes the transmitting wireless rate to the peer.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table></dl>
+        
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+</dd>
+
+            
+                
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id=".WifiRateEntry">LuCI.Network.WifiRateEntry<span class="type-signature type object.<string, (boolean|number)>">Object.&lt;string, (boolean|number)></span> </h4>
+    </div>
+    
+    
+</dt>
+<dd>
+    
+    <div class="description">
+        <p>A wireless rate entry describes the properties of a wireless
+transmission rate to or from a peer.</p>
+    </div>
+    
+    
+    
+<dl class="details">
+    
+        
+        <h5 class="subsection-title">Properties:</h5>
+        
+        <dl>
+
+<table class="props">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               <th>Argument</th>
+               
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>drop_misc</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>The amount of received misc. packages that have been dropped, e.g.
+due to corruption or missing authentication. Only applicable to
+receiving rates.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>packets</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>The amount of packets that have been received or sent.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>bytes</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>The amount of bytes that have been received or sent.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>failed</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>The amount of failed tranmission attempts. Only applicable to
+transmit rates.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>retries</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>The amount of retried transmissions. Only applicable to transmit
+rates.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>is_ht</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">boolean</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>Specifies whether this rate is an HT (IEEE 802.11n) rate.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>is_vht</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">boolean</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>Specifies whether this rate is an VHT (IEEE 802.11ac) rate.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>mhz</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>The channel width in MHz used for the transmission.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>rate</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>The bitrate in bit/s of the transmission.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>mcs</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>The MCS index of the used transmission rate. Only applicable to
+HT or VHT rates.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>40mhz</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>Specifies whether the tranmission rate used 40MHz wide channel.
+Only applicable to HT or VHT rates.</p>
+<p>Note: this option exists for backwards compatibility only and its
+use is discouraged. The <code>mhz</code> field should be used instead to
+determine the channel width.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>short_gi</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">boolean</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>Specifies whether a short guard interval is used for the transmission.
+Only applicable to HT or VHT rates.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>nss</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>Specifies the number of spatial streams used by the transmission.
+Only applicable to VHT rates.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table></dl>
+        
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+</dd>
+
+            
+                
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id=".WifiScanResult">LuCI.Network.WifiScanResult<span class="type-signature type object.<string, (number|string|luci.network.wifiencryption)>">Object.&lt;string, (number|string|<a href="LuCI.Network.html#.WifiEncryption">LuCI.Network.WifiEncryption</a>)></span> </h4>
+    </div>
+    
+    
+</dt>
+<dd>
+    
+    <div class="description">
+        <p>A wireless scan result object describes a neighbouring wireless
+network found in the vincinity.</p>
+    </div>
+    
+    
+    
+<dl class="details">
+    
+        
+        <h5 class="subsection-title">Properties:</h5>
+        
+        <dl>
+
+<table class="props">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>ssid</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            
+            
+            <td class="description last"><p>The SSID / Mesh ID of the network.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>bssid</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            
+            
+            <td class="description last"><p>The BSSID if the network.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>mode</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            
+            
+            <td class="description last"><p>The operation mode of the network (<code>Master</code>, <code>Ad-Hoc</code>, <code>Mesh Point</code>).</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>channel</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+            
+            
+            
+            <td class="description last"><p>The wireless channel of the network.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>signal</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+            
+            
+            
+            <td class="description last"><p>The received signal strength of the network in dBm.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>quality</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+            
+            
+            
+            <td class="description last"><p>The numeric quality level of the signal, can be used in conjunction
+with <code>quality_max</code> to calculate a quality percentage.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>quality_max</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+            
+            
+            
+            <td class="description last"><p>The maximum possible quality level of the signal, can be used in
+conjunction with <code>quality</code> to calculate a quality percentage.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>encryption</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type"><a href="LuCI.Network.html#.WifiEncryption">LuCI.Network.WifiEncryption</a></span>
+
+
+            
+            </td>
+            
+            
+            
+            
+            
+            <td class="description last"><p>The encryption used by the wireless network.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table></dl>
+        
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+</dd>
+
+            </dl>
+    
+    
+    
+
+    
+</article>
+
+</section>  
+
+
+
+
+
+        
+
+        <footer>
+            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
+        </footer>
+    </div>
+</div>
+<script>prettyPrint();</script>
+<script src="scripts/jaguar.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/jsapi/LuCI.Poll.html b/docs/jsapi/LuCI.Poll.html
new file mode 100644 (file)
index 0000000..a00c9a3
--- /dev/null
@@ -0,0 +1,1878 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>Class: Poll</title>
+    
+    
+    <script src="scripts/prettify/prettify.js"></script>
+    <script src="scripts/prettify/lang-css.js"></script>
+    <script src="scripts/jquery.min.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/bootstrap.min.css">
+    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
+    
+    
+    <script>
+    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
+    </script>
+    
+
+    
+</head>
+<body>
+<div id="wrap" class="clearfix">
+    
+<div class="navigation">
+    <h3 class="applicationName"><a href="index.html"></a></h3>
+
+    <div class="search">
+        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
+    </div>
+    <ul class="list">
+    
+        <li class="item" data-name="LuCI">
+            <span class="title">
+                <a href="LuCI.html">LuCI</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
+            
+                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
+            
+                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
+            
+                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
+            
+                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
+            
+                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
+            
+                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
+            
+                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
+            
+                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
+            
+                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
+            
+                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
+            
+                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
+            
+                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
+            
+                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
+            
+                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
+            
+                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
+            
+                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
+            
+                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
+            
+                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Class">
+            <span class="title">
+                <a href="LuCI.Class.html">LuCI.Class</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
+            
+                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
+            
+                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
+            
+                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
+            
+                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
+            
+                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.dom">
+            <span class="title">
+                <a href="LuCI.dom.html">LuCI.dom</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
+            
+                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
+            
+                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
+            
+                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
+            
+                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
+            
+                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
+            
+                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
+            
+                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
+            
+                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
+            
+                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.fs">
+            <span class="title">
+                <a href="LuCI.fs.html">LuCI.fs</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
+            
+                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
+            
+                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
+            
+                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
+            
+                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
+            
+                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
+            
+                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
+            
+                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Headers">
+            <span class="title">
+                <a href="LuCI.Headers.html">LuCI.Headers</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
+            
+                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network">
+            <span class="title">
+                <a href="LuCI.Network.html">LuCI.Network</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
+            
+                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
+            
+                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
+            
+                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
+            
+                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
+            
+                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
+            
+                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
+            
+                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
+            
+                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
+            
+                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
+            
+                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
+            
+                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
+            
+                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
+            
+                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
+            
+                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
+            
+                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
+            
+                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Device">
+            <span class="title">
+                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
+            
+                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
+            
+                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
+            
+                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
+            
+                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Hosts">
+            <span class="title">
+                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Protocol">
+            <span class="title">
+                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiDevice">
+            <span class="title">
+                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiNetwork">
+            <span class="title">
+                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Poll">
+            <span class="title">
+                <a href="LuCI.Poll.html">LuCI.Poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request">
+            <span class="title">
+                <a href="LuCI.Request.html">LuCI.Request</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
+            
+                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
+            
+                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
+            
+                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request.poll">
+            <span class="title">
+                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Response">
+            <span class="title">
+                <a href="LuCI.Response.html">LuCI.Response</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
+            
+                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
+            
+                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
+            
+                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
+            
+                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
+            
+                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
+            
+                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
+            
+                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.rpc">
+            <span class="title">
+                <a href="LuCI.rpc.html">LuCI.rpc</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
+            
+                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
+            
+                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
+            
+                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
+            
+                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
+            
+                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
+            
+                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.uci">
+            <span class="title">
+                <a href="LuCI.uci.html">LuCI.uci</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
+            
+                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
+            
+                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
+            
+                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
+            
+                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
+            
+                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
+            
+                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
+            
+                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
+            
+                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
+            
+                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
+            
+                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
+            
+                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
+            
+                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
+            
+                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
+            
+                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
+            
+                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
+            
+                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
+            
+                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.view">
+            <span class="title">
+                <a href="LuCI.view.html">LuCI.view</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
+            
+                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
+            
+                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
+            
+                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
+            
+                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
+            
+                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.XHR">
+            <span class="title">
+                <a href="LuCI.XHR.html">LuCI.XHR</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
+            
+                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
+            
+                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
+            
+                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
+            
+                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
+            
+                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+    </ul>
+</div>
+    <div class="main">
+        <h1 class="page-title" data-filename="LuCI.Poll.html">Class: Poll</h1>
+        
+
+
+
+<section>
+    
+<header>
+    <h2>
+        <span class="ancestors"><a href="LuCI.html">LuCI</a>.</span>
+    
+    Poll
+    </h2>
+    
+        <div class="class-description"><p>The <code>Poll</code> class allows registering and unregistering poll actions,
+as well as starting, stopping and querying the state of the polling
+loop.</p></div>
+    
+</header>  
+
+<article>
+    <div class="container-overview">
+    
+    
+    
+        
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="Poll">
+            
+            new LuCI.Poll<span class="signature">()</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 999
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+    
+    </div>
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+        <h3 class="subsection-title">Methods</h3>
+        
+        <dl>
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="active">
+            
+            active<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 1150
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Test whether the polling loop is running.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last"><ul>
+<li>Returns <code>true</code> if polling is active, else <code>false</code>.</li>
+</ul></td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="add">
+            
+            add<span class="signature">(fn, interval)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 1023
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Add a new operation to the polling loop. If the polling loop is not
+already started at this point, it will be implicitely started.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>fn</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">function</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The function to invoke on each poll interval.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>interval</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The poll interval in seconds.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    <h5>Throws:</h5>
+    
+            
+
+<dl>
+    <dt>
+        <div class="param-desc">
+        <p>Throws <code>TypeError</code> when an invalid interval was passed.</p>
+        </div>
+    </dt>
+    <dt>
+        <dl>
+            <dt>
+                Type
+            </dt>
+            <dd>
+                
+<span class="param-type">TypeError</span>
+
+
+            </dd>
+        </dl>
+    </dt>
+</dl>
+
+
+        
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> if the function has been added or <code>false</code> if it
+already is registered.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="remove">
+            
+            remove<span class="signature">(fn)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 1064
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Remove an operation from the polling loop. If no further operatons
+are registered, the polling loop is implicitely stopped.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>fn</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">function</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The function to remove.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    <h5>Throws:</h5>
+    
+            
+
+<dl>
+    <dt>
+        <div class="param-desc">
+        <p>Throws <code>TypeError</code> when the given argument isn't a function.</p>
+        </div>
+    </dt>
+    <dt>
+        <dl>
+            <dt>
+                Type
+            </dt>
+            <dd>
+                
+<span class="param-type">TypeError</span>
+
+
+            </dd>
+        </dl>
+    </dt>
+</dl>
+
+
+        
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> if the function has been removed or <code>false</code> if it
+wasn't found.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="start">
+            
+            start<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 1090
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>(Re)start the polling loop. Dispatches a custom <code>poll-start</code> event
+to the <code>document</code> object upon successful start.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> if polling has been started (or if no functions
+where registered) or <code>false</code> when the polling loop already runs.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="stop">
+            
+            stop<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 1115
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Stop the polling loop. Dispatches a custom <code>poll-stop</code> event
+to the <code>document</code> object upon successful stop.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> if polling has been stopped or <code>false</code> if it din't
+run to begin with.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        </dl>
+    
+    
+    
+    
+    
+
+    
+</article>
+
+</section>  
+
+
+
+
+
+        
+
+        <footer>
+            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
+        </footer>
+    </div>
+</div>
+<script>prettyPrint();</script>
+<script src="scripts/jaguar.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/jsapi/LuCI.Request.html b/docs/jsapi/LuCI.Request.html
new file mode 100644 (file)
index 0000000..530bf9a
--- /dev/null
@@ -0,0 +1,2774 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>Class: Request</title>
+    
+    
+    <script src="scripts/prettify/prettify.js"></script>
+    <script src="scripts/prettify/lang-css.js"></script>
+    <script src="scripts/jquery.min.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/bootstrap.min.css">
+    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
+    
+    
+    <script>
+    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
+    </script>
+    
+
+    
+</head>
+<body>
+<div id="wrap" class="clearfix">
+    
+<div class="navigation">
+    <h3 class="applicationName"><a href="index.html"></a></h3>
+
+    <div class="search">
+        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
+    </div>
+    <ul class="list">
+    
+        <li class="item" data-name="LuCI">
+            <span class="title">
+                <a href="LuCI.html">LuCI</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
+            
+                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
+            
+                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
+            
+                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
+            
+                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
+            
+                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
+            
+                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
+            
+                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
+            
+                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
+            
+                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
+            
+                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
+            
+                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
+            
+                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
+            
+                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
+            
+                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
+            
+                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
+            
+                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
+            
+                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
+            
+                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Class">
+            <span class="title">
+                <a href="LuCI.Class.html">LuCI.Class</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
+            
+                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
+            
+                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
+            
+                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
+            
+                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
+            
+                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.dom">
+            <span class="title">
+                <a href="LuCI.dom.html">LuCI.dom</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
+            
+                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
+            
+                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
+            
+                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
+            
+                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
+            
+                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
+            
+                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
+            
+                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
+            
+                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
+            
+                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.fs">
+            <span class="title">
+                <a href="LuCI.fs.html">LuCI.fs</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
+            
+                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
+            
+                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
+            
+                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
+            
+                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
+            
+                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
+            
+                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
+            
+                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Headers">
+            <span class="title">
+                <a href="LuCI.Headers.html">LuCI.Headers</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
+            
+                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network">
+            <span class="title">
+                <a href="LuCI.Network.html">LuCI.Network</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
+            
+                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
+            
+                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
+            
+                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
+            
+                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
+            
+                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
+            
+                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
+            
+                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
+            
+                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
+            
+                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
+            
+                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
+            
+                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
+            
+                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
+            
+                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
+            
+                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
+            
+                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
+            
+                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Device">
+            <span class="title">
+                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
+            
+                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
+            
+                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
+            
+                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
+            
+                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Hosts">
+            <span class="title">
+                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Protocol">
+            <span class="title">
+                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiDevice">
+            <span class="title">
+                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiNetwork">
+            <span class="title">
+                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Poll">
+            <span class="title">
+                <a href="LuCI.Poll.html">LuCI.Poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request">
+            <span class="title">
+                <a href="LuCI.Request.html">LuCI.Request</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
+            
+                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
+            
+                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
+            
+                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request.poll">
+            <span class="title">
+                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Response">
+            <span class="title">
+                <a href="LuCI.Response.html">LuCI.Response</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
+            
+                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
+            
+                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
+            
+                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
+            
+                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
+            
+                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
+            
+                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
+            
+                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.rpc">
+            <span class="title">
+                <a href="LuCI.rpc.html">LuCI.rpc</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
+            
+                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
+            
+                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
+            
+                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
+            
+                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
+            
+                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
+            
+                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.uci">
+            <span class="title">
+                <a href="LuCI.uci.html">LuCI.uci</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
+            
+                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
+            
+                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
+            
+                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
+            
+                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
+            
+                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
+            
+                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
+            
+                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
+            
+                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
+            
+                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
+            
+                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
+            
+                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
+            
+                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
+            
+                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
+            
+                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
+            
+                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
+            
+                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
+            
+                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.view">
+            <span class="title">
+                <a href="LuCI.view.html">LuCI.view</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
+            
+                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
+            
+                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
+            
+                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
+            
+                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
+            
+                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.XHR">
+            <span class="title">
+                <a href="LuCI.XHR.html">LuCI.XHR</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
+            
+                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
+            
+                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
+            
+                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
+            
+                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
+            
+                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+    </ul>
+</div>
+    <div class="main">
+        <h1 class="page-title" data-filename="LuCI.Request.html">Class: Request</h1>
+        
+
+
+
+<section>
+    
+<header>
+    <h2>
+        <span class="ancestors"><a href="LuCI.html">LuCI</a>.</span>
+    
+    Request
+    </h2>
+    
+        <div class="class-description"><p>The <code>Request</code> class allows initiating HTTP requests and provides utilities
+for dealing with responses.</p></div>
+    
+</header>  
+
+<article>
+    <div class="container-overview">
+    
+    
+    
+        
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="Request">
+            
+            new LuCI.Request<span class="signature">()</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 569
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+    
+    </div>
+    
+    
+    
+    
+    
+    
+    
+    
+        <h3 class="subsection-title">Classes</h3>
+        
+        <dl>
+            <dt><a href="LuCI.Request.poll.html">poll</a></dt>
+            <dd></dd>
+        </dl>
+    
+    
+    
+    
+    
+    
+    
+        <h3 class="subsection-title">Methods</h3>
+        
+        <dl>
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="addInterceptor">
+            
+            addInterceptor<span class="signature">(interceptorFn)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{<a href="LuCI.Request.html#.interceptorFn">LuCI.Request.interceptorFn</a>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 844
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Register an HTTP response interceptor function. Interceptor
+functions are useful to perform default actions on incoming HTTP
+responses, such as checking for expired authentication or for
+implementing request retries before returning a failure.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>interceptorFn</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type"><a href="LuCI.Request.html#.interceptorFn">LuCI.Request.interceptorFn</a></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The interceptor function to register.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        <a href="LuCI.Request.html#.interceptorFn">LuCI.Request.interceptorFn</a>
+                        
+                    
+            </td>
+            <td class="description last">The registered function.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="expandURL">
+            
+            expandURL<span class="signature">(url)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 586
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Turn the given relative URL into an absolute URL if necessary.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</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="description last">
+                
+                <p>The URL to convert.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">The absolute URL derived from the given one, or the original URL
+if it already was absolute.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="get">
+            
+            get<span class="signature">(target, <span class="optional">options</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;<a href="LuCI.Response.html">LuCI.Response</a>>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 797
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Initiate an HTTP GET request to the given target.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>target</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The URL to request.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>options</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type"><a href="LuCI.Request.html#.RequestOptions">LuCI.Request.RequestOptions</a></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>Additional options to configure the request.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;<a href="LuCI.Response.html">LuCI.Response</a>>
+                        
+                    
+            </td>
+            <td class="description last">The resulting HTTP response.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="post">
+            
+            post<span class="signature">(target, <span class="optional">data</span>, <span class="optional">options</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;<a href="LuCI.Response.html">LuCI.Response</a>>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 818
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Initiate an HTTP POST request to the given target.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>target</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The URL to request.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>The request data to send, see <a href="LuCI.Request.html#.RequestOptions"><code>LuCI.Request.RequestOptions</code></a> for details.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>options</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type"><a href="LuCI.Request.html#.RequestOptions">LuCI.Request.RequestOptions</a></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>Additional options to configure the request.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;<a href="LuCI.Response.html">LuCI.Response</a>>
+                        
+                    
+            </td>
+            <td class="description last">The resulting HTTP response.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="removeInterceptor">
+            
+            removeInterceptor<span class="signature">(interceptorFn)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 863
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Remove an HTTP response interceptor function. The passed function
+value must be the very same value that was used to register the
+function.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>interceptorFn</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type"><a href="LuCI.Request.html#.interceptorFn">LuCI.Request.interceptorFn</a></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The interceptor function to remove.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> if any function has been removed, else <code>false</code>.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="request">
+            
+            request<span class="signature">(target, <span class="optional">options</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;<a href="LuCI.Response.html">LuCI.Response</a>>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 648
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Initiate an HTTP request to the given target.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>target</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The URL to request.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>options</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type"><a href="LuCI.Request.html#.RequestOptions">LuCI.Request.RequestOptions</a></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>Additional options to configure the request.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;<a href="LuCI.Response.html">LuCI.Response</a>>
+                        
+                    
+            </td>
+            <td class="description last">The resulting HTTP response.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        </dl>
+    
+    
+    
+        <h3 class="subsection-title">Type Definitions</h3>
+        
+        <dl>
+                
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id=".interceptorFn">
+            
+            LuCI.Request.interceptorFn<span class="signature">(res)</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 822
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Interceptor functions are invoked whenever an HTTP reply is received, in the order
+these functions have been registered.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>res</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type"><a href="LuCI.Response.html">LuCI.Response</a></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The HTTP response object</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+            
+                
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id=".RequestOptions">LuCI.Request.RequestOptions<span class="type-signature type object">Object</span> </h4>
+    </div>
+    
+    
+</dt>
+<dd>
+    
+    
+    
+<dl class="details">
+    
+        
+        <h5 class="subsection-title">Properties:</h5>
+        
+        <dl>
+
+<table class="props">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               <th>Argument</th>
+               
+               
+               
+               <th>Default</th>
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>method</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+                    
+                
+                </td>
+            
+            
+            
+                <td class="default">
+                
+                    GET
+                
+                </td>
+            
+            
+            <td class="description last"><p>The HTTP method to use, e.g. <code>GET</code> or <code>POST</code>.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>query</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Object.&lt;string, (Object|string)></span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+                    
+                
+                </td>
+            
+            
+            
+                <td class="default">
+                
+                </td>
+            
+            
+            <td class="description last"><p>Query string data to append to the URL. Non-string values of the
+given object will be converted to JSON.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>cache</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"><p>Specifies whether the HTTP response may be retrieved from cache.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>username</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+                    
+                
+                </td>
+            
+            
+            
+                <td class="default">
+                
+                </td>
+            
+            
+            <td class="description last"><p>Provides a username for HTTP basic authentication.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>password</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+                    
+                
+                </td>
+            
+            
+            
+                <td class="default">
+                
+                </td>
+            
+            
+            <td class="description last"><p>Provides a password for HTTP basic authentication.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>timeout</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+                    
+                
+                </td>
+            
+            
+            
+                <td class="default">
+                
+                </td>
+            
+            
+            <td class="description last"><p>Specifies the request timeout in seconds.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>credentials</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"><p>Whether to include credentials such as cookies in the request.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>content</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+                    
+                
+                </td>
+            
+            
+            
+                <td class="default">
+                
+                </td>
+            
+            
+            <td class="description last"><p>Specifies the HTTP message body to send along with the request.
+If the value is a function, it is invoked and the return value
+used as content, if it is a FormData instance, it is used as-is,
+if it is an object, it will be converted to JSON, in all other
+cases it is converted to a string.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>header</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Object.&lt;string, string></span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+                    
+                
+                </td>
+            
+            
+            
+                <td class="default">
+                
+                </td>
+            
+            
+            <td class="description last"><p>Specifies HTTP headers to set for the request.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>progress</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">function</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+                    
+                
+                </td>
+            
+            
+            
+                <td class="default">
+                
+                </td>
+            
+            
+            <td class="description last"><p>An optional request callback function which receives ProgressEvent
+instances as sole argument during the HTTP request transfer.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table></dl>
+        
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+</dd>
+
+            </dl>
+    
+    
+    
+
+    
+</article>
+
+</section>  
+
+
+
+
+
+        
+
+        <footer>
+            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
+        </footer>
+    </div>
+</div>
+<script>prettyPrint();</script>
+<script src="scripts/jaguar.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/jsapi/LuCI.Request.poll.html b/docs/jsapi/LuCI.Request.poll.html
new file mode 100644 (file)
index 0000000..656f911
--- /dev/null
@@ -0,0 +1,1997 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>Class: poll</title>
+    
+    
+    <script src="scripts/prettify/prettify.js"></script>
+    <script src="scripts/prettify/lang-css.js"></script>
+    <script src="scripts/jquery.min.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/bootstrap.min.css">
+    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
+    
+    
+    <script>
+    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
+    </script>
+    
+
+    
+</head>
+<body>
+<div id="wrap" class="clearfix">
+    
+<div class="navigation">
+    <h3 class="applicationName"><a href="index.html"></a></h3>
+
+    <div class="search">
+        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
+    </div>
+    <ul class="list">
+    
+        <li class="item" data-name="LuCI">
+            <span class="title">
+                <a href="LuCI.html">LuCI</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
+            
+                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
+            
+                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
+            
+                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
+            
+                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
+            
+                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
+            
+                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
+            
+                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
+            
+                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
+            
+                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
+            
+                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
+            
+                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
+            
+                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
+            
+                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
+            
+                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
+            
+                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
+            
+                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
+            
+                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
+            
+                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Class">
+            <span class="title">
+                <a href="LuCI.Class.html">LuCI.Class</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
+            
+                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
+            
+                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
+            
+                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
+            
+                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
+            
+                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.dom">
+            <span class="title">
+                <a href="LuCI.dom.html">LuCI.dom</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
+            
+                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
+            
+                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
+            
+                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
+            
+                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
+            
+                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
+            
+                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
+            
+                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
+            
+                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
+            
+                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.fs">
+            <span class="title">
+                <a href="LuCI.fs.html">LuCI.fs</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
+            
+                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
+            
+                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
+            
+                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
+            
+                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
+            
+                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
+            
+                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
+            
+                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Headers">
+            <span class="title">
+                <a href="LuCI.Headers.html">LuCI.Headers</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
+            
+                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network">
+            <span class="title">
+                <a href="LuCI.Network.html">LuCI.Network</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
+            
+                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
+            
+                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
+            
+                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
+            
+                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
+            
+                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
+            
+                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
+            
+                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
+            
+                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
+            
+                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
+            
+                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
+            
+                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
+            
+                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
+            
+                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
+            
+                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
+            
+                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
+            
+                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Device">
+            <span class="title">
+                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
+            
+                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
+            
+                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
+            
+                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
+            
+                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Hosts">
+            <span class="title">
+                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Protocol">
+            <span class="title">
+                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiDevice">
+            <span class="title">
+                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiNetwork">
+            <span class="title">
+                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Poll">
+            <span class="title">
+                <a href="LuCI.Poll.html">LuCI.Poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request">
+            <span class="title">
+                <a href="LuCI.Request.html">LuCI.Request</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
+            
+                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
+            
+                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
+            
+                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request.poll">
+            <span class="title">
+                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Response">
+            <span class="title">
+                <a href="LuCI.Response.html">LuCI.Response</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
+            
+                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
+            
+                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
+            
+                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
+            
+                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
+            
+                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
+            
+                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
+            
+                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.rpc">
+            <span class="title">
+                <a href="LuCI.rpc.html">LuCI.rpc</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
+            
+                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
+            
+                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
+            
+                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
+            
+                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
+            
+                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
+            
+                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.uci">
+            <span class="title">
+                <a href="LuCI.uci.html">LuCI.uci</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
+            
+                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
+            
+                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
+            
+                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
+            
+                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
+            
+                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
+            
+                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
+            
+                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
+            
+                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
+            
+                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
+            
+                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
+            
+                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
+            
+                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
+            
+                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
+            
+                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
+            
+                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
+            
+                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
+            
+                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.view">
+            <span class="title">
+                <a href="LuCI.view.html">LuCI.view</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
+            
+                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
+            
+                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
+            
+                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
+            
+                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
+            
+                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.XHR">
+            <span class="title">
+                <a href="LuCI.XHR.html">LuCI.XHR</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
+            
+                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
+            
+                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
+            
+                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
+            
+                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
+            
+                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+    </ul>
+</div>
+    <div class="main">
+        <h1 class="page-title" data-filename="LuCI.Request.poll.html">Class: poll</h1>
+        
+
+
+
+<section>
+    
+<header>
+    <h2>
+        <span class="ancestors"><a href="LuCI.html">LuCI</a><a href="LuCI.Request.html">.Request</a>.</span>
+    
+    poll
+    </h2>
+    
+        <div class="class-description"><p>The <code>Request.poll</code> class provides some convience wrappers around
+<a href="LuCI.Poll.html"><code>LuCI.Poll</code></a> mainly to simplify registering repeating HTTP
+request calls as polling functions.</p></div>
+    
+</header>  
+
+<article>
+    <div class="container-overview">
+    
+    
+    
+        
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="poll">
+            
+            new LuCI.Request.poll<span class="signature">()</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 881
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+    
+    </div>
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+        <h3 class="subsection-title">Methods</h3>
+        
+        <dl>
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="active">
+            
+            active<span class="signature">()</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 985
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Alias for <code>LuCI.Poll.active()</code>.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="add">
+            
+            add<span class="signature">(interval, url, <span class="optional">options</span>, <span class="optional">callback</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{function}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 924
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Register a repeating HTTP request with an optional callback
+to invoke whenever a response for the request is received.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>interval</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The poll interval in seconds.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>url</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The URL to request on each poll.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>options</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type"><a href="LuCI.Request.html#.RequestOptions">LuCI.Request.RequestOptions</a></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>Additional options to configure the request.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>callback</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type"><a href="LuCI.Request.poll.html#~callbackFn">LuCI.Request.poll~callbackFn</a></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p><a href="LuCI.Request.poll.html#~callbackFn"><code>Callback</code></a> function to
+invoke for each HTTP reply.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    <h5>Throws:</h5>
+    
+            
+
+<dl>
+    <dt>
+        <div class="param-desc">
+        <p>Throws <code>TypeError</code> when an invalid interval was passed.</p>
+        </div>
+    </dt>
+    <dt>
+        <dl>
+            <dt>
+                Type
+            </dt>
+            <dd>
+                
+<span class="param-type">TypeError</span>
+
+
+            </dd>
+        </dl>
+    </dt>
+</dl>
+
+
+        
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        function
+                        
+                    
+            </td>
+            <td class="description last">Returns the internally created poll function.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="remove">
+            
+            remove<span class="signature">(entry)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 961
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Remove a polling request that has been previously added using <code>add()</code>.
+This function is essentially a wrapper around
+<code>LuCI.Poll.remove()</code>.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>entry</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">function</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The poll function returned by <a href="LuCI.Request.poll.html#add"><code>add()</code></a>.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> if any function has been removed, else <code>false</code>.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="start">
+            
+            start<span class="signature">()</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 969
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Alias for <code>LuCI.Poll.start()</code>.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="stop">
+            
+            stop<span class="signature">()</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 977
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Alias for <code>LuCI.Poll.stop()</code>.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+        </dl>
+    
+    
+    
+        <h3 class="subsection-title">Type Definitions</h3>
+        
+        <dl>
+                
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="~callbackFn">
+            
+            callbackFn<span class="signature">(res, data, duration)</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 882
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>The callback function is invoked whenever an HTTP reply to a
+polled request is received or when the polled request timed
+out.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>res</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type"><a href="LuCI.Response.html">LuCI.Response</a></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The HTTP response object.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The response JSON if the response could be parsed as such,
+else <code>null</code>.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>duration</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The total duration of the request in milliseconds.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+            </dl>
+    
+    
+    
+
+    
+</article>
+
+</section>  
+
+
+
+
+
+        
+
+        <footer>
+            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
+        </footer>
+    </div>
+</div>
+<script>prettyPrint();</script>
+<script src="scripts/jaguar.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/jsapi/LuCI.Response.html b/docs/jsapi/LuCI.Response.html
new file mode 100644 (file)
index 0000000..a7398ef
--- /dev/null
@@ -0,0 +1,1855 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>Class: Response</title>
+    
+    
+    <script src="scripts/prettify/prettify.js"></script>
+    <script src="scripts/prettify/lang-css.js"></script>
+    <script src="scripts/jquery.min.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/bootstrap.min.css">
+    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
+    
+    
+    <script>
+    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
+    </script>
+    
+
+    
+</head>
+<body>
+<div id="wrap" class="clearfix">
+    
+<div class="navigation">
+    <h3 class="applicationName"><a href="index.html"></a></h3>
+
+    <div class="search">
+        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
+    </div>
+    <ul class="list">
+    
+        <li class="item" data-name="LuCI">
+            <span class="title">
+                <a href="LuCI.html">LuCI</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
+            
+                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
+            
+                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
+            
+                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
+            
+                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
+            
+                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
+            
+                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
+            
+                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
+            
+                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
+            
+                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
+            
+                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
+            
+                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
+            
+                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
+            
+                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
+            
+                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
+            
+                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
+            
+                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
+            
+                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
+            
+                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Class">
+            <span class="title">
+                <a href="LuCI.Class.html">LuCI.Class</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
+            
+                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
+            
+                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
+            
+                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
+            
+                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
+            
+                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.dom">
+            <span class="title">
+                <a href="LuCI.dom.html">LuCI.dom</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
+            
+                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
+            
+                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
+            
+                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
+            
+                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
+            
+                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
+            
+                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
+            
+                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
+            
+                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
+            
+                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.fs">
+            <span class="title">
+                <a href="LuCI.fs.html">LuCI.fs</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
+            
+                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
+            
+                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
+            
+                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
+            
+                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
+            
+                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
+            
+                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
+            
+                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Headers">
+            <span class="title">
+                <a href="LuCI.Headers.html">LuCI.Headers</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
+            
+                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network">
+            <span class="title">
+                <a href="LuCI.Network.html">LuCI.Network</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
+            
+                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
+            
+                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
+            
+                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
+            
+                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
+            
+                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
+            
+                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
+            
+                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
+            
+                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
+            
+                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
+            
+                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
+            
+                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
+            
+                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
+            
+                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
+            
+                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
+            
+                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
+            
+                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Device">
+            <span class="title">
+                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
+            
+                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
+            
+                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
+            
+                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
+            
+                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Hosts">
+            <span class="title">
+                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Protocol">
+            <span class="title">
+                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiDevice">
+            <span class="title">
+                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiNetwork">
+            <span class="title">
+                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Poll">
+            <span class="title">
+                <a href="LuCI.Poll.html">LuCI.Poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request">
+            <span class="title">
+                <a href="LuCI.Request.html">LuCI.Request</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
+            
+                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
+            
+                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
+            
+                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request.poll">
+            <span class="title">
+                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Response">
+            <span class="title">
+                <a href="LuCI.Response.html">LuCI.Response</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
+            
+                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
+            
+                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
+            
+                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
+            
+                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
+            
+                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
+            
+                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
+            
+                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.rpc">
+            <span class="title">
+                <a href="LuCI.rpc.html">LuCI.rpc</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
+            
+                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
+            
+                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
+            
+                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
+            
+                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
+            
+                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
+            
+                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.uci">
+            <span class="title">
+                <a href="LuCI.uci.html">LuCI.uci</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
+            
+                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
+            
+                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
+            
+                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
+            
+                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
+            
+                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
+            
+                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
+            
+                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
+            
+                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
+            
+                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
+            
+                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
+            
+                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
+            
+                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
+            
+                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
+            
+                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
+            
+                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
+            
+                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
+            
+                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.view">
+            <span class="title">
+                <a href="LuCI.view.html">LuCI.view</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
+            
+                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
+            
+                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
+            
+                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
+            
+                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
+            
+                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.XHR">
+            <span class="title">
+                <a href="LuCI.XHR.html">LuCI.XHR</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
+            
+                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
+            
+                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
+            
+                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
+            
+                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
+            
+                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+    </ul>
+</div>
+    <div class="main">
+        <h1 class="page-title" data-filename="LuCI.Response.html">Class: Response</h1>
+        
+
+
+
+<section>
+    
+<header>
+    <h2>
+        <span class="ancestors"><a href="LuCI.html">LuCI</a>.</span>
+    
+    Response
+    </h2>
+    
+        <div class="class-description"><p>The <code>Response</code> class is an internal utility class representing HTTP responses.</p></div>
+    
+</header>  
+
+<article>
+    <div class="container-overview">
+    
+    
+    
+        
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="Response">
+            
+            new LuCI.Response<span class="signature">()</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 377
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+    
+    </div>
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+        <h3 class="subsection-title">Members</h3>
+        
+        <dl>
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="duration">duration<span class="type-signature type number">number</span> </h4>
+    </div>
+    
+    
+</dt>
+<dd>
+    
+    <div class="description">
+        <p>The total duration of the HTTP request in milliseconds</p>
+    </div>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="headers">headers<span class="type-signature type luci.headers"><a href="LuCI.Headers.html">LuCI.Headers</a></span> </h4>
+    </div>
+    
+    
+</dt>
+<dd>
+    
+    <div class="description">
+        <p>The HTTP headers of the response</p>
+    </div>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="ok">ok<span class="type-signature type boolean">boolean</span> </h4>
+    </div>
+    
+    
+</dt>
+<dd>
+    
+    <div class="description">
+        <p>Describes whether the response is successful (status codes <code>200..299</code>) or not</p>
+    </div>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="status">status<span class="type-signature type number">number</span> </h4>
+    </div>
+    
+    
+</dt>
+<dd>
+    
+    <div class="description">
+        <p>The numeric HTTP status code of the response</p>
+    </div>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="statusText">statusText<span class="type-signature type string">string</span> </h4>
+    </div>
+    
+    
+</dt>
+<dd>
+    
+    <div class="description">
+        <p>The HTTP status description message of the response</p>
+    </div>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="url">url<span class="type-signature type string">string</span> </h4>
+    </div>
+    
+    
+</dt>
+<dd>
+    
+    <div class="description">
+        <p>The final URL of the request, i.e. after following redirects.</p>
+    </div>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+</dd>
+
+        </dl>
+    
+    
+    
+        <h3 class="subsection-title">Methods</h3>
+        
+        <dl>
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="clone">
+            
+            clone<span class="signature">(<span class="optional">content</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{<a href="LuCI.Response.html">LuCI.Response</a>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 465
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Clones the given response object, optionally overriding the content
+of the cloned instance.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>content</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>Override the content of the cloned response. Object values will be
+treated as JSON response data, all other types will be converted
+using <code>String()</code> and treated as response text.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        <a href="LuCI.Response.html">LuCI.Response</a>
+                        
+                    
+            </td>
+            <td class="description last">The cloned <code>Response</code> instance.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="json">
+            
+            json<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{*}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 486
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Access the response content as JSON data.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    <h5>Throws:</h5>
+    
+            
+
+<dl>
+    <dt>
+        <div class="param-desc">
+        <p>Throws <code>SyntaxError</code> if the content isn't valid JSON.</p>
+        </div>
+    </dt>
+    <dt>
+        <dl>
+            <dt>
+                Type
+            </dt>
+            <dd>
+                
+<span class="param-type">SyntaxError</span>
+
+
+            </dd>
+        </dl>
+    </dt>
+</dl>
+
+
+        
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        *
+                        
+                    
+            </td>
+            <td class="description last">The parsed JSON data.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="text">
+            
+            text<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 501
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Access the response content as string.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">The response content.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        </dl>
+    
+    
+    
+    
+    
+
+    
+</article>
+
+</section>  
+
+
+
+
+
+        
+
+        <footer>
+            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
+        </footer>
+    </div>
+</div>
+<script>prettyPrint();</script>
+<script src="scripts/jaguar.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/jsapi/LuCI.XHR.html b/docs/jsapi/LuCI.XHR.html
new file mode 100644 (file)
index 0000000..5a17dfa
--- /dev/null
@@ -0,0 +1,2047 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>Class: XHR</title>
+    
+    
+    <script src="scripts/prettify/prettify.js"></script>
+    <script src="scripts/prettify/lang-css.js"></script>
+    <script src="scripts/jquery.min.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/bootstrap.min.css">
+    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
+    
+    
+    <script>
+    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
+    </script>
+    
+
+    
+</head>
+<body>
+<div id="wrap" class="clearfix">
+    
+<div class="navigation">
+    <h3 class="applicationName"><a href="index.html"></a></h3>
+
+    <div class="search">
+        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
+    </div>
+    <ul class="list">
+    
+        <li class="item" data-name="LuCI">
+            <span class="title">
+                <a href="LuCI.html">LuCI</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
+            
+                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
+            
+                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
+            
+                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
+            
+                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
+            
+                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
+            
+                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
+            
+                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
+            
+                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
+            
+                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
+            
+                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
+            
+                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
+            
+                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
+            
+                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
+            
+                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
+            
+                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
+            
+                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
+            
+                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
+            
+                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Class">
+            <span class="title">
+                <a href="LuCI.Class.html">LuCI.Class</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
+            
+                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
+            
+                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
+            
+                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
+            
+                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
+            
+                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.dom">
+            <span class="title">
+                <a href="LuCI.dom.html">LuCI.dom</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
+            
+                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
+            
+                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
+            
+                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
+            
+                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
+            
+                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
+            
+                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
+            
+                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
+            
+                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
+            
+                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.fs">
+            <span class="title">
+                <a href="LuCI.fs.html">LuCI.fs</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
+            
+                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
+            
+                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
+            
+                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
+            
+                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
+            
+                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
+            
+                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
+            
+                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Headers">
+            <span class="title">
+                <a href="LuCI.Headers.html">LuCI.Headers</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
+            
+                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network">
+            <span class="title">
+                <a href="LuCI.Network.html">LuCI.Network</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
+            
+                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
+            
+                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
+            
+                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
+            
+                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
+            
+                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
+            
+                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
+            
+                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
+            
+                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
+            
+                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
+            
+                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
+            
+                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
+            
+                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
+            
+                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
+            
+                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
+            
+                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
+            
+                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Device">
+            <span class="title">
+                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
+            
+                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
+            
+                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
+            
+                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
+            
+                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Hosts">
+            <span class="title">
+                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Protocol">
+            <span class="title">
+                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiDevice">
+            <span class="title">
+                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiNetwork">
+            <span class="title">
+                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Poll">
+            <span class="title">
+                <a href="LuCI.Poll.html">LuCI.Poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request">
+            <span class="title">
+                <a href="LuCI.Request.html">LuCI.Request</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
+            
+                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
+            
+                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
+            
+                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request.poll">
+            <span class="title">
+                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Response">
+            <span class="title">
+                <a href="LuCI.Response.html">LuCI.Response</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
+            
+                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
+            
+                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
+            
+                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
+            
+                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
+            
+                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
+            
+                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
+            
+                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.rpc">
+            <span class="title">
+                <a href="LuCI.rpc.html">LuCI.rpc</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
+            
+                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
+            
+                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
+            
+                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
+            
+                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
+            
+                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
+            
+                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.uci">
+            <span class="title">
+                <a href="LuCI.uci.html">LuCI.uci</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
+            
+                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
+            
+                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
+            
+                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
+            
+                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
+            
+                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
+            
+                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
+            
+                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
+            
+                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
+            
+                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
+            
+                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
+            
+                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
+            
+                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
+            
+                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
+            
+                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
+            
+                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
+            
+                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
+            
+                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.view">
+            <span class="title">
+                <a href="LuCI.view.html">LuCI.view</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
+            
+                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
+            
+                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
+            
+                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
+            
+                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
+            
+                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.XHR">
+            <span class="title">
+                <a href="LuCI.XHR.html">LuCI.XHR</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
+            
+                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
+            
+                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
+            
+                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
+            
+                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
+            
+                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+    </ul>
+</div>
+    <div class="main">
+        <h1 class="page-title" data-filename="LuCI.XHR.html">Class: XHR</h1>
+        
+
+
+
+<section>
+    
+<header>
+    <h2>
+        <span class="ancestors"><a href="LuCI.html">LuCI</a>.</span>
+    
+    XHR
+    </h2>
+    
+        <div class="class-description"><p>The <code>LuCI.XHR</code> class is a legacy compatibility shim for the
+functionality formerly provided by <code>xhr.js</code>. It is registered as global
+<code>window.XHR</code> symbol for compatibility with legacy code.</p>
+<p>New code should use <a href="LuCI.Request.html"><code>LuCI.Request</code></a> instead to implement HTTP
+request handling.</p></div>
+    
+</header>  
+
+<article>
+    <div class="container-overview">
+    
+    
+    
+        
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="XHR">
+            
+            new LuCI.XHR<span class="signature">()</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 2943
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+        <dt class="important tag-deprecated">Deprecated</dt><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd>
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+    
+    </div>
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+        <h3 class="subsection-title">Methods</h3>
+        
+        <dl>
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="abort">
+            
+            abort<span class="signature">()</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 3046
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Ignored for backwards compatibility.</p>
+<p>This function does nothing.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+        <dt class="important tag-deprecated">Deprecated</dt><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd>
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="busy">
+            
+            busy<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 3035
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Checks the running state of the request.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+        <dt class="important tag-deprecated">Deprecated</dt><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd>
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> if the request is still running or <code>false</code> if it
+already completed.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="cancel">
+            
+            cancel<span class="signature">()</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 3022
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Cancels a running request.</p>
+<p>This function does not actually cancel the underlying
+<code>XMLHTTPRequest</code> request but it sets a flag which prevents the
+invocation of the callback function when the request eventually
+finishes or timed out.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+        <dt class="important tag-deprecated">Deprecated</dt><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd>
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="get">
+            
+            get<span class="signature">(url, <span class="optional">data</span>, <span class="optional">callback</span>, <span class="optional">timeout</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;null>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 2978
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>This function is a legacy wrapper around
+<a href="LuCI.html#get"><code>LuCI.get()</code></a>.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</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="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The URL to request</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>Additional query string data</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>callback</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type"><a href="LuCI.html#.requestCallbackFn">LuCI.requestCallbackFn</a></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>Callback function to invoke on completion</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>timeout</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>Request timeout to use</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+        <dt class="important tag-deprecated">Deprecated</dt><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd>
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;null>
+                        
+                    
+            </td>
+            <td class="description last"></td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="post">
+            
+            post<span class="signature">(url, <span class="optional">data</span>, <span class="optional">callback</span>, <span class="optional">timeout</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;null>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 3005
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>This function is a legacy wrapper around
+<a href="LuCI.html#post"><code>LuCI.post()</code></a>.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</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="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The URL to request</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>Additional data to append to the request body.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>callback</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type"><a href="LuCI.html#.requestCallbackFn">LuCI.requestCallbackFn</a></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>Callback function to invoke on completion</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>timeout</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>Request timeout to use</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+        <dt class="important tag-deprecated">Deprecated</dt><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd>
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;null>
+                        
+                    
+            </td>
+            <td class="description last"></td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="send_form">
+            
+            send_form<span class="signature">()</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 3061
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Existing for backwards compatibility.</p>
+<p>This function simply throws an <code>InternalError</code> when invoked.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+        <dt class="important tag-deprecated">Deprecated</dt><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd>
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    <h5>Throws:</h5>
+    
+            
+
+<dl>
+    <dt>
+        <div class="param-desc">
+        <p>Throws an <code>InternalError</code> with the message <code>Not implemented</code>
+when invoked.</p>
+        </div>
+    </dt>
+    <dt>
+        <dl>
+            <dt>
+                Type
+            </dt>
+            <dd>
+                
+<span class="param-type">InternalError</span>
+
+
+            </dd>
+        </dl>
+    </dt>
+</dl>
+
+
+        
+    
+    
+    
+    
+</dd>
+
+        </dl>
+    
+    
+    
+    
+    
+
+    
+</article>
+
+</section>  
+
+
+
+
+
+        
+
+        <footer>
+            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
+        </footer>
+    </div>
+</div>
+<script>prettyPrint();</script>
+<script src="scripts/jaguar.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/jsapi/LuCI.dom.html b/docs/jsapi/LuCI.dom.html
new file mode 100644 (file)
index 0000000..8412eb3
--- /dev/null
@@ -0,0 +1,3878 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>Class: dom</title>
+    
+    
+    <script src="scripts/prettify/prettify.js"></script>
+    <script src="scripts/prettify/lang-css.js"></script>
+    <script src="scripts/jquery.min.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/bootstrap.min.css">
+    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
+    
+    
+    <script>
+    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
+    </script>
+    
+
+    
+</head>
+<body>
+<div id="wrap" class="clearfix">
+    
+<div class="navigation">
+    <h3 class="applicationName"><a href="index.html"></a></h3>
+
+    <div class="search">
+        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
+    </div>
+    <ul class="list">
+    
+        <li class="item" data-name="LuCI">
+            <span class="title">
+                <a href="LuCI.html">LuCI</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
+            
+                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
+            
+                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
+            
+                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
+            
+                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
+            
+                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
+            
+                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
+            
+                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
+            
+                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
+            
+                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
+            
+                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
+            
+                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
+            
+                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
+            
+                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
+            
+                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
+            
+                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
+            
+                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
+            
+                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
+            
+                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Class">
+            <span class="title">
+                <a href="LuCI.Class.html">LuCI.Class</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
+            
+                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
+            
+                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
+            
+                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
+            
+                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
+            
+                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.dom">
+            <span class="title">
+                <a href="LuCI.dom.html">LuCI.dom</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
+            
+                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
+            
+                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
+            
+                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
+            
+                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
+            
+                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
+            
+                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
+            
+                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
+            
+                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
+            
+                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.fs">
+            <span class="title">
+                <a href="LuCI.fs.html">LuCI.fs</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
+            
+                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
+            
+                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
+            
+                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
+            
+                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
+            
+                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
+            
+                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
+            
+                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Headers">
+            <span class="title">
+                <a href="LuCI.Headers.html">LuCI.Headers</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
+            
+                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network">
+            <span class="title">
+                <a href="LuCI.Network.html">LuCI.Network</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
+            
+                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
+            
+                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
+            
+                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
+            
+                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
+            
+                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
+            
+                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
+            
+                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
+            
+                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
+            
+                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
+            
+                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
+            
+                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
+            
+                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
+            
+                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
+            
+                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
+            
+                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
+            
+                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Device">
+            <span class="title">
+                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
+            
+                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
+            
+                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
+            
+                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
+            
+                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Hosts">
+            <span class="title">
+                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Protocol">
+            <span class="title">
+                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiDevice">
+            <span class="title">
+                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiNetwork">
+            <span class="title">
+                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Poll">
+            <span class="title">
+                <a href="LuCI.Poll.html">LuCI.Poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request">
+            <span class="title">
+                <a href="LuCI.Request.html">LuCI.Request</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
+            
+                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
+            
+                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
+            
+                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request.poll">
+            <span class="title">
+                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Response">
+            <span class="title">
+                <a href="LuCI.Response.html">LuCI.Response</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
+            
+                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
+            
+                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
+            
+                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
+            
+                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
+            
+                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
+            
+                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
+            
+                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.rpc">
+            <span class="title">
+                <a href="LuCI.rpc.html">LuCI.rpc</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
+            
+                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
+            
+                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
+            
+                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
+            
+                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
+            
+                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
+            
+                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.uci">
+            <span class="title">
+                <a href="LuCI.uci.html">LuCI.uci</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
+            
+                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
+            
+                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
+            
+                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
+            
+                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
+            
+                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
+            
+                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
+            
+                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
+            
+                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
+            
+                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
+            
+                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
+            
+                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
+            
+                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
+            
+                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
+            
+                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
+            
+                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
+            
+                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
+            
+                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.view">
+            <span class="title">
+                <a href="LuCI.view.html">LuCI.view</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
+            
+                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
+            
+                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
+            
+                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
+            
+                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
+            
+                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.XHR">
+            <span class="title">
+                <a href="LuCI.XHR.html">LuCI.XHR</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
+            
+                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
+            
+                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
+            
+                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
+            
+                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
+            
+                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+    </ul>
+</div>
+    <div class="main">
+        <h1 class="page-title" data-filename="LuCI.dom.html">Class: dom</h1>
+        
+
+
+
+<section>
+    
+<header>
+    <h2>
+        <span class="ancestors"><a href="LuCI.html">LuCI</a>.</span>
+    
+    dom
+    </h2>
+    
+        <div class="class-description"><p>The <code>dom</code> class provides convenience method for creating and
+manipulating DOM elements.</p></div>
+    
+</header>  
+
+<article>
+    <div class="container-overview">
+    
+    
+    
+        
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="dom">
+            
+            new LuCI.dom<span class="signature">()</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 2065
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+    
+    </div>
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+        <h3 class="subsection-title">Methods</h3>
+        
+        <dl>
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="append">
+            
+            append<span class="signature">(node, <span class="optional">children</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Node|null}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 2216
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Appends the given children data to the given node.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>node</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The <code>Node</code> argument to append the children to.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>children</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>The childrens to append to the given node.</p>
+<p>When <code>children</code> is an array, then each item of the array
+will be either appended as child element or text node,
+depending on whether the item is a DOM <code>Node</code> instance or
+some other non-<code>null</code> value. Non-<code>Node</code>, non-<code>null</code> values
+will be converted to strings first before being passed as
+argument to <code>createTextNode()</code>.</p>
+<p>When <code>children</code> is a function, it will be invoked with
+the passed <code>node</code> argument as sole parameter and the <code>append</code>
+function will be invoked again, with the given <code>node</code> argument
+as first and the return value of the <code>children</code> function as
+second parameter.</p>
+<p>When <code>children</code> is is a DOM <code>Node</code> instance, it will be
+appended to the given <code>node</code>.</p>
+<p>When <code>children</code> is any other non-<code>null</code> value, it will be
+converted to a string and appened to the <code>innerHTML</code> property
+of the given <code>node</code>.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Node
+                         | 
+                    
+                        null
+                        
+                    
+            </td>
+            <td class="description last">Returns the last children <code>Node</code> appended to the node or <code>null</code>
+if either the <code>node</code> argument was no valid DOM <code>node</code> or if the
+<code>children</code> was <code>null</code> or didn't result in further DOM nodes.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="attr">
+            
+            attr<span class="signature">(node, key, <span class="optional">val</span>)</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 2331
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Sets attributes or registers event listeners on element nodes.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>node</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The <code>Node</code> argument to set the attributes or add the event
+listeners for. When the given <code>node</code> value is not a valid
+DOM <code>Node</code>, the function returns and does nothing.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>key</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+|
+
+<span class="param-type">Object.&lt;string, *></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>Specifies either the attribute or event handler name to use,
+or an object containing multiple key, value pairs which are
+each added to the node as either attribute or event handler,
+depending on the respective value.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>val</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>Specifies the attribute value or event handler function to add.
+If the <code>key</code> parameter is an <code>Object</code>, this parameter will be
+ignored.</p>
+<p>When <code>val</code> is of type function, it will be registered as event
+handler on the given <code>node</code> with the <code>key</code> parameter being the
+event name.</p>
+<p>When <code>val</code> is of type object, it will be serialized as JSON and
+added as attribute to the given <code>node</code>, using the given <code>key</code>
+as attribute name.</p>
+<p>When <code>val</code> is of any other type, it will be added as attribute
+to the given <code>node</code> as-is, with the underlying <code>setAttribute()</code>
+call implicitely turning it into a string.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="bindClassInstance">
+            
+            bindClassInstance<span class="signature">(node, inst)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Class}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 2565
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Binds the given class instance ot the specified DOM <code>Node</code>.</p>
+<p>This function uses the <code>dom.data()</code> facility to attach the
+passed instance of a Class to a node. This is needed for
+complex widget elements or similar where the corresponding
+class instance responsible for the element must be retrieved
+from DOM nodes obtained by <code>querySelector()</code> or similar means.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>node</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Node</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The DOM <code>Node</code> instance to bind the class to.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>inst</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Class</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The Class instance to bind to the node.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    <h5>Throws:</h5>
+    
+            
+
+<dl>
+    <dt>
+        <div class="param-desc">
+        <p>Throws a <code>TypeError</code> when the given instance argument isn't
+a valid Class instance.</p>
+        </div>
+    </dt>
+    <dt>
+        <dl>
+            <dt>
+                Type
+            </dt>
+            <dd>
+                
+<span class="param-type">TypeError</span>
+
+
+            </dd>
+        </dl>
+    </dt>
+</dl>
+
+
+        
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Class
+                        
+                    
+            </td>
+            <td class="description last">Returns the bound class instance.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="callClassMethod">
+            
+            callClassMethod<span class="signature">(node, method, params)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{*|null}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 2619
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Finds a bound class instance on the given node itself or the
+first bound instance on its closest parent node and invokes
+the specified method name on the found class instance.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>node</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Node</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The DOM <code>Node</code> instance to start from.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>method</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The name of the method to invoke on the found class instance.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>params</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                        <span class="repeatable">repeatable</span>
+                    
+                
+                <p>Additional arguments to pass to the invoked method as-is.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        *
+                         | 
+                    
+                        null
+                        
+                    
+            </td>
+            <td class="description last">Returns the return value of the invoked method if a class
+instance and method has been found. Returns <code>null</code> if either
+no bound class instance could be found, or if the found
+instance didn't have the requested <code>method</code>.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="content">
+            
+            content<span class="signature">(node, <span class="optional">children</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Node|null}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 2283
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Replaces the content of the given node with the given children.</p>
+<p>This function first removes any children of the given DOM
+<code>Node</code> and then adds the given given children following the
+rules outlined below.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>node</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The <code>Node</code> argument to replace the children of.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>children</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>The childrens to replace into the given node.</p>
+<p>When <code>children</code> is an array, then each item of the array
+will be either appended as child element or text node,
+depending on whether the item is a DOM <code>Node</code> instance or
+some other non-<code>null</code> value. Non-<code>Node</code>, non-<code>null</code> values
+will be converted to strings first before being passed as
+argument to <code>createTextNode()</code>.</p>
+<p>When <code>children</code> is a function, it will be invoked with
+the passed <code>node</code> argument as sole parameter and the <code>append</code>
+function will be invoked again, with the given <code>node</code> argument
+as first and the return value of the <code>children</code> function as
+second parameter.</p>
+<p>When <code>children</code> is is a DOM <code>Node</code> instance, it will be
+appended to the given <code>node</code>.</p>
+<p>When <code>children</code> is any other non-<code>null</code> value, it will be
+converted to a string and appened to the <code>innerHTML</code> property
+of the given <code>node</code>.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Node
+                         | 
+                    
+                        null
+                        
+                    
+            </td>
+            <td class="description last">Returns the last children <code>Node</code> appended to the node or <code>null</code>
+if either the <code>node</code> argument was no valid DOM <code>node</code> or if the
+<code>children</code> was <code>null</code> or didn't result in further DOM nodes.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="create">
+            
+            create<span class="signature">(html, <span class="optional">attr</span>, <span class="optional">data</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Node}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 2409
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Creates a new DOM <code>Node</code> from the given <code>html</code>, <code>attr</code> and
+<code>data</code> parameters.</p>
+<p>This function has multiple signatures, it can be either invoked
+in the form <code>create(html[, attr[, data]])</code> or in the form
+<code>create(html[, data])</code>. The used variant is determined from the
+type of the second argument.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>html</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>Describes the node to create.</p>
+<p>When the value of <code>html</code> is of type array, a <code>DocumentFragment</code>
+node is created and each item of the array is first converted
+to a DOM <code>Node</code> by passing it through <code>create()</code> and then added
+as child to the fragment.</p>
+<p>When the value of <code>html</code> is a DOM <code>Node</code> instance, no new
+element will be created but the node will be used as-is.</p>
+<p>When the value of <code>html</code> is a string starting with <code>&lt;</code>, it will
+be passed to <code>dom.parse()</code> and the resulting value is used.</p>
+<p>When the value of <code>html</code> is any other string, it will be passed
+to <code>document.createElement()</code> for creating a new DOM <code>Node</code> of
+the given name.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>attr</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Object.&lt;string, *></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>Specifies an Object of key, value pairs to set as attributes
+or event handlers on the created node. Refer to
+<a href="LuCI.dom.html#attr"><code>dom.attr()</code></a> for details.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>Specifies children to append to the newly created element.
+Refer to <a href="LuCI.dom.html#append"><code>dom.append()</code></a> for details.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    <h5>Throws:</h5>
+    
+            
+
+<dl>
+    <dt>
+        <div class="param-desc">
+        <p>Throws an <code>InvalidCharacterError</code> when the given <code>html</code>
+argument contained malformed markup (such as not escaped
+<code>&amp;</code> characters in XHTML mode) or when the given node name
+in <code>html</code> contains characters which are not legal in DOM
+element names, such as spaces.</p>
+        </div>
+    </dt>
+    <dt>
+        <dl>
+            <dt>
+                Type
+            </dt>
+            <dd>
+                
+<span class="param-type">InvalidCharacterError</span>
+
+
+            </dd>
+        </dl>
+    </dt>
+</dl>
+
+
+        
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Node
+                        
+                    
+            </td>
+            <td class="description last">Returns the newly created <code>Node</code>.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="data">
+            
+            data<span class="signature">(node, <span class="optional">key</span>, <span class="optional">val</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{*}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 2485
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Attaches or detaches arbitrary data to and from a DOM <code>Node</code>.</p>
+<p>This function is useful to attach non-string values or runtime
+data that is not serializable to DOM nodes. To decouple data
+from the DOM, values are not added directly to nodes, but
+inserted into a registry instead which is then referenced by a
+string key stored as <code>data-idref</code> attribute in the node.</p>
+<p>This function has multiple signatures and is sensitive to the
+number of arguments passed to it.</p>
+<ul>
+<li><code>dom.data(node)</code> -
+Fetches all data associated with the given node.</li>
+<li><code>dom.data(node, key)</code> -
+Fetches a specific key associated with the given node.</li>
+<li><code>dom.data(node, key, val)</code> -
+Sets a specific key to the given value associated with the
+given node.</li>
+<li><code>dom.data(node, null)</code> -
+Clears any data associated with the node.</li>
+<li><code>dom.data(node, key, null)</code> -
+Clears the given key associated with the node.</li>
+</ul>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>node</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Node</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The DOM <code>Node</code> instance to set or retrieve the data for.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>key</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+|
+
+<span class="param-type">null</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>This is either a string specifying the key to retrieve, or
+<code>null</code> to unset the entire node data.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>val</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+|
+
+<span class="param-type">null</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>This is either a non-<code>null</code> value to set for a given key or
+<code>null</code> to remove the given <code>key</code> from the specified node.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        *
+                        
+                    
+            </td>
+            <td class="description last">Returns the get or set value, or <code>null</code> when no value could
+be found.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="elem">
+            
+            elem<span class="signature">(e)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 2079
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Tests whether the given argument is a valid DOM <code>Node</code>.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<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">*</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The value to test.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> if the value is a DOM <code>Node</code>, else <code>false</code>.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="findClassInstance">
+            
+            findClassInstance<span class="signature">(node)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Class|null}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 2585
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Finds a bound class instance on the given node itself or the
+first bound instance on its closest parent node.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>node</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Node</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The DOM <code>Node</code> instance to start from.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Class
+                         | 
+                    
+                        null
+                        
+                    
+            </td>
+            <td class="description last">Returns the founds class instance if any or <code>null</code> if no bound
+class could be found on the node itself or any of its parents.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="isEmpty">
+            
+            isEmpty<span class="signature">(node, <span class="optional">ignoreFn</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 2665
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Tests whether a given DOM <code>Node</code> instance is empty or appears
+empty.</p>
+<p>Any element child nodes which have the CSS class <code>hidden</code> set
+or for which the optionally passed <code>ignoreFn</code> callback function
+returns <code>false</code> are ignored.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>node</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Node</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The DOM <code>Node</code> instance to test.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>ignoreFn</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type"><a href="LuCI.dom.html#~ignoreCallbackFn">LuCI.dom~ignoreCallbackFn</a></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>Specifies an optional function which is invoked for each child
+node to decide whether the child node should be ignored or not.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> if the node does not have any children or if
+any children node either has a <code>hidden</code> CSS class or a <code>false</code>
+result when testing it using the given <code>ignoreFn</code>.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="matches">
+            
+            matches<span class="signature">(node, <span class="optional">selector</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 2140
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Tests whether a given <code>Node</code> matches the given query selector.</p>
+<p>This function is a convenience wrapper around the standard
+<code>Node.matches(&quot;selector&quot;)</code> function with the added benefit that
+the <code>node</code> argument may be a non-<code>Node</code> value, in which case
+this function simply returns <code>false</code>.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>node</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The <code>Node</code> argument to test the selector against.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>selector</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>The query selector expression to test against the given node.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> if the given node matches the specified selector
+or <code>false</code> when the node argument is no valid DOM <code>Node</code> or the
+selector didn't match.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="parent">
+            
+            parent<span class="signature">(node, <span class="optional">selector</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Node|null}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 2167
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Returns the closest parent node that matches the given query
+selector expression.</p>
+<p>This function is a convenience wrapper around the standard
+<code>Node.closest(&quot;selector&quot;)</code> function with the added benefit that
+the <code>node</code> argument may be a non-<code>Node</code> value, in which case
+this function simply returns <code>null</code>.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>node</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The <code>Node</code> argument to find the closest parent for.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>selector</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>The query selector expression to test against each parent.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Node
+                         | 
+                    
+                        null
+                        
+                    
+            </td>
+            <td class="description last">Returns the closest parent node matching the selector or
+<code>null</code> when the node argument is no valid DOM <code>Node</code> or the
+selector didn't match any parent.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="parse">
+            
+            parse<span class="signature">(s)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Node}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 2098
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Parses a given string as HTML and returns the first child node.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>s</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>A string containing an HTML fragment to parse. Note that only
+the first result of the resulting structure is returned, so an
+input value of <code>&lt;div&gt;foo&lt;/div&gt; &lt;div&gt;bar&lt;/div&gt;</code> will only return
+the first <code>div</code> element node.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Node
+                        
+                    
+            </td>
+            <td class="description last">Returns the first DOM <code>Node</code> extracted from the HTML fragment or
+<code>null</code> on parsing failures or if no element could be found.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        </dl>
+    
+    
+    
+        <h3 class="subsection-title">Type Definitions</h3>
+        
+        <dl>
+                
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="~ignoreCallbackFn">
+            
+            ignoreCallbackFn<span class="signature">(node)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 2628
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>The ignore callback function is invoked by <code>isEmpty()</code> for each
+child node to decide whether to ignore a child node or not.</p>
+<p>When this function returns <code>false</code>, the node passed to it is
+ignored, else not.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>node</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Node</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The child node to test.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Boolean indicating whether to ignore the node or not.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+            </dl>
+    
+    
+    
+
+    
+</article>
+
+</section>  
+
+
+
+
+
+        
+
+        <footer>
+            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
+        </footer>
+    </div>
+</div>
+<script>prettyPrint();</script>
+<script src="scripts/jaguar.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/jsapi/LuCI.fs.html b/docs/jsapi/LuCI.fs.html
new file mode 100644 (file)
index 0000000..cfc0dc9
--- /dev/null
@@ -0,0 +1,2987 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>Class: fs</title>
+    
+    
+    <script src="scripts/prettify/prettify.js"></script>
+    <script src="scripts/prettify/lang-css.js"></script>
+    <script src="scripts/jquery.min.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/bootstrap.min.css">
+    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
+    
+    
+    <script>
+    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
+    </script>
+    
+
+    
+</head>
+<body>
+<div id="wrap" class="clearfix">
+    
+<div class="navigation">
+    <h3 class="applicationName"><a href="index.html"></a></h3>
+
+    <div class="search">
+        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
+    </div>
+    <ul class="list">
+    
+        <li class="item" data-name="LuCI">
+            <span class="title">
+                <a href="LuCI.html">LuCI</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
+            
+                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
+            
+                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
+            
+                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
+            
+                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
+            
+                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
+            
+                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
+            
+                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
+            
+                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
+            
+                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
+            
+                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
+            
+                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
+            
+                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
+            
+                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
+            
+                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
+            
+                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
+            
+                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
+            
+                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
+            
+                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Class">
+            <span class="title">
+                <a href="LuCI.Class.html">LuCI.Class</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
+            
+                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
+            
+                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
+            
+                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
+            
+                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
+            
+                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.dom">
+            <span class="title">
+                <a href="LuCI.dom.html">LuCI.dom</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
+            
+                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
+            
+                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
+            
+                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
+            
+                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
+            
+                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
+            
+                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
+            
+                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
+            
+                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
+            
+                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.fs">
+            <span class="title">
+                <a href="LuCI.fs.html">LuCI.fs</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
+            
+                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
+            
+                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
+            
+                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
+            
+                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
+            
+                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
+            
+                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
+            
+                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Headers">
+            <span class="title">
+                <a href="LuCI.Headers.html">LuCI.Headers</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
+            
+                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network">
+            <span class="title">
+                <a href="LuCI.Network.html">LuCI.Network</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
+            
+                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
+            
+                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
+            
+                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
+            
+                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
+            
+                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
+            
+                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
+            
+                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
+            
+                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
+            
+                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
+            
+                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
+            
+                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
+            
+                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
+            
+                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
+            
+                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
+            
+                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
+            
+                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Device">
+            <span class="title">
+                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
+            
+                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
+            
+                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
+            
+                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
+            
+                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Hosts">
+            <span class="title">
+                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Protocol">
+            <span class="title">
+                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiDevice">
+            <span class="title">
+                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiNetwork">
+            <span class="title">
+                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Poll">
+            <span class="title">
+                <a href="LuCI.Poll.html">LuCI.Poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request">
+            <span class="title">
+                <a href="LuCI.Request.html">LuCI.Request</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
+            
+                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
+            
+                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
+            
+                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request.poll">
+            <span class="title">
+                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Response">
+            <span class="title">
+                <a href="LuCI.Response.html">LuCI.Response</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
+            
+                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
+            
+                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
+            
+                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
+            
+                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
+            
+                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
+            
+                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
+            
+                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.rpc">
+            <span class="title">
+                <a href="LuCI.rpc.html">LuCI.rpc</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
+            
+                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
+            
+                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
+            
+                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
+            
+                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
+            
+                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
+            
+                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.uci">
+            <span class="title">
+                <a href="LuCI.uci.html">LuCI.uci</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
+            
+                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
+            
+                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
+            
+                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
+            
+                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
+            
+                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
+            
+                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
+            
+                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
+            
+                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
+            
+                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
+            
+                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
+            
+                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
+            
+                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
+            
+                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
+            
+                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
+            
+                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
+            
+                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
+            
+                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.view">
+            <span class="title">
+                <a href="LuCI.view.html">LuCI.view</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
+            
+                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
+            
+                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
+            
+                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
+            
+                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
+            
+                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.XHR">
+            <span class="title">
+                <a href="LuCI.XHR.html">LuCI.XHR</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
+            
+                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
+            
+                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
+            
+                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
+            
+                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
+            
+                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+    </ul>
+</div>
+    <div class="main">
+        <h1 class="page-title" data-filename="LuCI.fs.html">Class: fs</h1>
+        
+
+
+
+<section>
+    
+<header>
+    <h2>
+        <span class="ancestors"><a href="LuCI.html">LuCI</a>.</span>
+    
+    fs
+    </h2>
+    
+        <div class="class-description"><p>Provides high level utilities to wrap file system related RPC calls.
+To import the class in views, use <code>'require fs'</code>, to import it in
+external JavaScript, use <code>L.require(&quot;fs&quot;).then(...)</code>.</p></div>
+    
+</header>  
+
+<article>
+    <div class="container-overview">
+    
+    
+    
+        
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="fs">
+            
+            new LuCI.fs<span class="signature">()</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            fs.js, line 111
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+    
+    </div>
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+        <h3 class="subsection-title">Methods</h3>
+        
+        <dl>
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="exec">
+            
+            exec<span class="signature">(command, <span class="optional">params</span>, <span class="optional">env</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;<a href="LuCI.fs.html#.FileExecResult">LuCI.fs.FileExecResult</a>>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            fs.js, line 232
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Execute the specified command, optionally passing params and
+environment variables.</p>
+<p>Note: The <code>command</code> must be either the path to an executable,
+or a basename without arguments in which case it will be searched
+in $PATH. If specified, the values given in <code>params</code> will be passed
+as arguments to the command.</p>
+<p>The key/value pairs in the optional <code>env</code> table are translated to
+<code>setenv()</code> calls prior to running the command.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>command</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The command to invoke.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>params</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;string></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>The arguments to pass to the command.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>env</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Object.&lt;string, string></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>Environment variables to set.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;<a href="LuCI.fs.html#.FileExecResult">LuCI.fs.FileExecResult</a>>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to an object describing the execution
+results or rejecting with an error stating the failure reason.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="lines">
+            
+            lines<span class="signature">(path)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;Array.&lt;string>>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            fs.js, line 281
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Read the contents of the given file, split it into lines, trim
+leading and trailing white space of each line and return the
+resulting array.</p>
+<p>This function is guaranteed to not reject its promises, on failure,
+an empty array will be returned.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>path</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The file path to read.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;Array.&lt;string>>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to an array containing the stripped lines
+of the given file or <code>[]</code> on failure.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="list">
+            
+            list<span class="signature">(path)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;Array.&lt;<a href="LuCI.fs.html#.FileStatEntry">LuCI.fs.FileStatEntry</a>>>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            fs.js, line 132
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Obtains a listing of the specified directory.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>path</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The directory path to list.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;Array.&lt;<a href="LuCI.fs.html#.FileStatEntry">LuCI.fs.FileStatEntry</a>>>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to an array of stat detail objects or
+rejecting with an error stating the failure reason.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="read">
+            
+            read<span class="signature">(path)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;string>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            fs.js, line 161
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Read the contents of the given file and return them.
+Note: this function is unsuitable for obtaining binary data.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>path</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The file path to read.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;string>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to a string containing the file contents or
+rejecting with an error stating the failure reason.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="remove">
+            
+            remove<span class="signature">(The)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;number>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            fs.js, line 203
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Unlink the given file.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>The</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>file path to remove.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;number>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to <code>0</code> or rejecting with an error stating
+the failure reason.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="stat">
+            
+            stat<span class="signature">(path)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;<a href="LuCI.fs.html#.FileStatEntry">LuCI.fs.FileStatEntry</a>>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            fs.js, line 146
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Return file stat information on the specified path.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>path</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The filesystem path to stat.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;<a href="LuCI.fs.html#.FileStatEntry">LuCI.fs.FileStatEntry</a>>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to a stat detail object or
+rejecting with an error stating the failure reason.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="trimmed">
+            
+            trimmed<span class="signature">(path)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;string>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            fs.js, line 260
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Read the contents of the given file, trim leading and trailing white
+space and return the trimmed result. In case of errors, return an empty
+string instead.</p>
+<p>Note: this function is useful to read single-value files in <code>/sys</code>
+or <code>/proc</code>.</p>
+<p>This function is guaranteed to not reject its promises, on failure,
+an empty string will be returned.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>path</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The file path to read.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;string>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to the file contents or the empty string
+on failure.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="write">
+            
+            write<span class="signature">(path, <span class="optional">data</span>, <span class="optional">mode</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;number>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            fs.js, line 187
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Write the given data to the specified file path.
+If the specified file path does not exist, it will be created, given
+sufficient permissions.</p>
+<p>Note: <code>data</code> will be converted to a string using <code>String(data)</code> or to
+<code>''</code> when it is <code>null</code>.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>path</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The file path to write to.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>The file data to write. If it is null, it will be set to an empty
+string.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>mode</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>The permissions to use on file creation. Default is 420 (0644).</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;number>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to <code>0</code> or rejecting with an error stating
+the failure reason.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        </dl>
+    
+    
+    
+        <h3 class="subsection-title">Type Definitions</h3>
+        
+        <dl>
+                
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id=".FileExecResult">LuCI.fs.FileExecResult<span class="type-signature type object">Object</span> </h4>
+    </div>
+    
+    
+</dt>
+<dd>
+    
+    
+    
+<dl class="details">
+    
+        
+        <h5 class="subsection-title">Properties:</h5>
+        
+        <dl>
+
+<table class="props">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               <th>Argument</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"><p>The exit code of the invoked command</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>stdout</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>The stdout produced by the command, if any</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>stderr</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>The stderr produced by the command, if any</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table></dl>
+        
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+</dd>
+
+            
+                
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id=".FileStatEntry">LuCI.fs.FileStatEntry<span class="type-signature type object">Object</span> </h4>
+    </div>
+    
+    
+</dt>
+<dd>
+    
+    
+    
+<dl class="details">
+    
+        
+        <h5 class="subsection-title">Properties:</h5>
+        
+        <dl>
+
+<table class="props">
+    <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"><p>Name of the directory entry</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>type</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            
+            
+            <td class="description last"><p>Type of the entry, one of <code>block</code>, <code>char</code>, <code>directory</code>, <code>fifo</code>, <code>symlink</code>, <code>file</code>, <code>socket</code> or <code>unknown</code></p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>size</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+            
+            
+            
+            <td class="description last"><p>Size in bytes</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>mode</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+            
+            
+            
+            <td class="description last"><p>Access permissions</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>atime</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+            
+            
+            
+            <td class="description last"><p>Last access time in seconds since epoch</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>mtime</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+            
+            
+            
+            <td class="description last"><p>Last modification time in seconds since epoch</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>ctime</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+            
+            
+            
+            <td class="description last"><p>Last change time in seconds since epoch</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>inode</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+            
+            
+            
+            <td class="description last"><p>Inode number</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>uid</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+            
+            
+            
+            <td class="description last"><p>Numeric owner id</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>gid</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+            
+            
+            
+            <td class="description last"><p>Numeric group id</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table></dl>
+        
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+</dd>
+
+            </dl>
+    
+    
+    
+
+    
+</article>
+
+</section>  
+
+
+
+
+
+        
+
+        <footer>
+            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
+        </footer>
+    </div>
+</div>
+<script>prettyPrint();</script>
+<script src="scripts/jaguar.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/jsapi/LuCI.html b/docs/jsapi/LuCI.html
new file mode 100644 (file)
index 0000000..68e2042
--- /dev/null
@@ -0,0 +1,5023 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>Class: LuCI</title>
+    
+    
+    <script src="scripts/prettify/prettify.js"></script>
+    <script src="scripts/prettify/lang-css.js"></script>
+    <script src="scripts/jquery.min.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/bootstrap.min.css">
+    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
+    
+    
+    <script>
+    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
+    </script>
+    
+
+    
+</head>
+<body>
+<div id="wrap" class="clearfix">
+    
+<div class="navigation">
+    <h3 class="applicationName"><a href="index.html"></a></h3>
+
+    <div class="search">
+        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
+    </div>
+    <ul class="list">
+    
+        <li class="item" data-name="LuCI">
+            <span class="title">
+                <a href="LuCI.html">LuCI</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
+            
+                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
+            
+                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
+            
+                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
+            
+                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
+            
+                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
+            
+                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
+            
+                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
+            
+                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
+            
+                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
+            
+                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
+            
+                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
+            
+                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
+            
+                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
+            
+                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
+            
+                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
+            
+                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
+            
+                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
+            
+                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Class">
+            <span class="title">
+                <a href="LuCI.Class.html">LuCI.Class</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
+            
+                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
+            
+                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
+            
+                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
+            
+                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
+            
+                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.dom">
+            <span class="title">
+                <a href="LuCI.dom.html">LuCI.dom</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
+            
+                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
+            
+                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
+            
+                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
+            
+                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
+            
+                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
+            
+                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
+            
+                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
+            
+                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
+            
+                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.fs">
+            <span class="title">
+                <a href="LuCI.fs.html">LuCI.fs</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
+            
+                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
+            
+                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
+            
+                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
+            
+                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
+            
+                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
+            
+                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
+            
+                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Headers">
+            <span class="title">
+                <a href="LuCI.Headers.html">LuCI.Headers</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
+            
+                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network">
+            <span class="title">
+                <a href="LuCI.Network.html">LuCI.Network</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
+            
+                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
+            
+                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
+            
+                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
+            
+                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
+            
+                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
+            
+                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
+            
+                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
+            
+                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
+            
+                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
+            
+                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
+            
+                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
+            
+                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
+            
+                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
+            
+                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
+            
+                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
+            
+                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Device">
+            <span class="title">
+                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
+            
+                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
+            
+                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
+            
+                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
+            
+                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Hosts">
+            <span class="title">
+                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Protocol">
+            <span class="title">
+                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiDevice">
+            <span class="title">
+                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiNetwork">
+            <span class="title">
+                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Poll">
+            <span class="title">
+                <a href="LuCI.Poll.html">LuCI.Poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request">
+            <span class="title">
+                <a href="LuCI.Request.html">LuCI.Request</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
+            
+                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
+            
+                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
+            
+                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request.poll">
+            <span class="title">
+                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Response">
+            <span class="title">
+                <a href="LuCI.Response.html">LuCI.Response</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
+            
+                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
+            
+                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
+            
+                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
+            
+                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
+            
+                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
+            
+                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
+            
+                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.rpc">
+            <span class="title">
+                <a href="LuCI.rpc.html">LuCI.rpc</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
+            
+                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
+            
+                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
+            
+                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
+            
+                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
+            
+                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
+            
+                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.uci">
+            <span class="title">
+                <a href="LuCI.uci.html">LuCI.uci</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
+            
+                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
+            
+                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
+            
+                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
+            
+                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
+            
+                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
+            
+                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
+            
+                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
+            
+                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
+            
+                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
+            
+                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
+            
+                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
+            
+                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
+            
+                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
+            
+                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
+            
+                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
+            
+                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
+            
+                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.view">
+            <span class="title">
+                <a href="LuCI.view.html">LuCI.view</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
+            
+                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
+            
+                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
+            
+                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
+            
+                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
+            
+                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.XHR">
+            <span class="title">
+                <a href="LuCI.XHR.html">LuCI.XHR</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
+            
+                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
+            
+                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
+            
+                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
+            
+                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
+            
+                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+    </ul>
+</div>
+    <div class="main">
+        <h1 class="page-title" data-filename="LuCI.html">Class: LuCI</h1>
+        
+
+
+
+<section>
+    
+<header>
+    <h2>
+    LuCI
+    </h2>
+    
+        <div class="class-description"><p>This is the LuCI base class. It is automatically instantiated and
+accessible using the global <code>L</code> variable.</p></div>
+    
+</header>  
+
+<article>
+    <div class="container-overview">
+    
+    
+    
+        
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="LuCI">
+            
+            new LuCI<span class="signature">(env)</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 1
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>env</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The environment settings to use for the LuCI runtime.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+    
+    </div>
+    
+    
+    
+    
+    
+    
+    
+    
+        <h3 class="subsection-title">Classes</h3>
+        
+        <dl>
+            <dt><a href="LuCI.Class.html">Class</a></dt>
+            <dd></dd>
+        
+            <dt><a href="LuCI.dom.html">dom</a></dt>
+            <dd></dd>
+        
+            <dt><a href="LuCI.fs.html">fs</a></dt>
+            <dd></dd>
+        
+            <dt><a href="LuCI.Headers.html">Headers</a></dt>
+            <dd></dd>
+        
+            <dt><a href="LuCI.Network.html">Network</a></dt>
+            <dd></dd>
+        
+            <dt><a href="LuCI.Poll.html">Poll</a></dt>
+            <dd></dd>
+        
+            <dt><a href="LuCI.Request.html">Request</a></dt>
+            <dd></dd>
+        
+            <dt><a href="LuCI.Response.html">Response</a></dt>
+            <dd></dd>
+        
+            <dt><a href="LuCI.rpc.html">rpc</a></dt>
+            <dd></dd>
+        
+            <dt><a href="LuCI.uci.html">uci</a></dt>
+            <dd></dd>
+        
+            <dt><a href="LuCI.view.html">view</a></dt>
+            <dd></dd>
+        
+            <dt><a href="LuCI.XHR.html">XHR</a></dt>
+            <dd></dd>
+        </dl>
+    
+    
+    
+    
+    
+        <h3 class="subsection-title">Members</h3>
+        
+        <dl>
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="env">env</h4>
+    </div>
+    
+    
+</dt>
+<dd>
+    
+    <div class="description">
+        <p>The <code>env</code> object holds environment settings used by LuCI, such
+as request timeouts, base URLs etc.</p>
+    </div>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+</dd>
+
+        </dl>
+    
+    
+    
+        <h3 class="subsection-title">Methods</h3>
+        
+        <dl>
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="bind">
+            
+            bind<span class="signature">(fn, self, <span class="optional">args</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{function}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 1340
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Return a bound function using the given <code>self</code> as <code>this</code> context
+and any further arguments as parameters to the bound function.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>fn</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">function</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The function to bind.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>self</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The value to bind as <code>this</code> context to the specified function.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>args</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                        <span class="repeatable">repeatable</span>
+                    
+                
+                <p>Zero or more variable arguments which are bound to the function
+as parameters.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        function
+                        
+                    
+            </td>
+            <td class="description last">Returns the bound function.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="error">
+            
+            error<span class="signature">(<span class="optional">type</span>, <span class="optional">fmt</span>, <span class="optional">args</span>)</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 1300
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>A wrapper around <a href="LuCI.html#raise"><code>raise()</code></a> which also renders
+the error either as modal overlay when <code>ui.js</code> is already loaed
+or directly into the view body.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               <th>Default</th>
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>type</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Error</span>
+|
+
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+                <td class="default">
+                
+                    Error
+                
+                </td>
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>Either a string specifying the type of the error to throw or an
+existing <code>Error</code> instance to copy.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>fmt</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+                <td class="default">
+                
+                    Unspecified error
+                
+                </td>
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>A format string which is used to form the error message, together
+with all subsequent optional arguments.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>args</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+            
+            
+                <td class="default">
+                
+                </td>
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                        <span class="repeatable">repeatable</span>
+                    
+                
+                <p>Zero or more variable arguments to the supplied format string.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    <h5>Throws:</h5>
+    
+            
+
+<dl>
+    <dt>
+        <div class="param-desc">
+        <p>Throws the created error object with the captured stack trace
+appended to the message and the type set to the given type
+argument or copied from the given error instance.</p>
+        </div>
+    </dt>
+    <dt>
+        <dl>
+            <dt>
+                Type
+            </dt>
+            <dd>
+                
+<span class="param-type">Error</span>
+
+
+            </dd>
+        </dl>
+    </dt>
+</dl>
+
+
+        
+    
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="get">
+            
+            get<span class="signature">(url, <span class="optional">args</span>, cb)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;null>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 1918
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Issues a GET request to the given url and invokes the specified
+callback function. The function is a wrapper around
+<a href="LuCI.Request.html#request"><code>Request.request()</code></a>.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</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="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The URL to request.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>args</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Object.&lt;string, string></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>Additional query string arguments to append to the URL.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>cb</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type"><a href="LuCI.html#.requestCallbackFn">LuCI.requestCallbackFn</a></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The callback function to invoke when the request finishes.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+        <dt class="important tag-deprecated">Deprecated</dt><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd>
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;null>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to <code>null</code> when concluded.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="halt">
+            
+            halt<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 2040
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Deprecated wrapper around <code>Poll.stop()</code>.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+        <dt class="important tag-deprecated">Deprecated</dt><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd>
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> when the polling loop has been stopped or <code>false</code>
+when it didn't run to begin with.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="hasSystemFeature">
+            
+            hasSystemFeature<span class="signature">(feature, <span class="optional">subfeature</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean|null}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 1574
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Test whether a particular system feature is available, such as
+hostapd SAE support or an installed firewall. The features are
+queried once at the beginning of the LuCI session and cached in
+<code>SessionStorage</code> throughout the lifetime of the associated tab or
+browser window.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>feature</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The feature to test. For detailed list of known feature flags,
+see <code>/modules/luci-base/root/usr/libexec/rpcd/luci</code>.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>subfeature</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>Some feature classes like <code>hostapd</code> provide sub-feature flags,
+such as <code>sae</code> or <code>11w</code> support. The <code>subfeature</code> argument can
+be used to query these.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                         | 
+                    
+                        null
+                        
+                    
+            </td>
+            <td class="description last">Return <code>true</code> if the queried feature (and sub-feature) is available
+or <code>false</code> if the requested feature isn't present or known.
+Return <code>null</code> when a sub-feature was queried for a feature which
+has no sub-features.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="isObject">
+            
+            isObject<span class="signature">(<span class="optional">val</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 1765
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Tests whether the passed argument is a JavaScript object.
+This function is meant to be an object counterpart to the
+standard <code>Array.isArray()</code> function.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>val</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>The value to test</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> if the given value is of type object and
+not <code>null</code>, else returns <code>false</code>.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="location">
+            
+            location<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 1745
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Return the complete URL path to the current view.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the URL path to the current view.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="path">
+            
+            path<span class="signature">(<span class="optional">prefix</span>, <span class="optional">parts</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 1679
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Construct a relative URL path from the given prefix and parts.
+The resulting URL is guaranteed to only contain the characters
+<code>a-z</code>, <code>A-Z</code>, <code>0-9</code>, <code>_</code>, <code>.</code>, <code>%</code>, <code>,</code>, <code>;</code>, and <code>-</code> as well
+as <code>/</code> for the path separator.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>prefix</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>The prefix to join the given parts with. If the <code>prefix</code> is
+omitted, it defaults to an empty string.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>parts</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;string></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>An array of parts to join into an URL path. Parts may contain
+slashes and any of the other characters mentioned above.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Return the joined URL path.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="poll">
+            
+            poll<span class="signature">(interval, url, <span class="optional">args</span>, cb, <span class="optional">post</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{function}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 1988
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Register a polling HTTP request that invokes the specified
+callback function. The function is a wrapper around
+<a href="LuCI.Request.poll.html#add"><code>Request.poll.add()</code></a>.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               <th>Default</th>
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>interval</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+                <td class="default">
+                
+                </td>
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The poll interval to use. If set to a value less than or equal
+to <code>0</code>, it will default to the global poll interval configured
+in <code>LuCI.env.pollinterval</code>.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>url</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+                <td class="default">
+                
+                </td>
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The URL to request.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>args</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Object.&lt;string, string></span>
+
+
+            
+            </td>
+            
+            
+                <td class="default">
+                
+                </td>
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>Specifies additional arguments for the request. For GET requests,
+the arguments are appended to the URL as query string, for POST
+requests, they'll be added to the request body.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>cb</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type"><a href="LuCI.html#.requestCallbackFn">LuCI.requestCallbackFn</a></span>
+
+
+            
+            </td>
+            
+            
+                <td class="default">
+                
+                </td>
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The callback function to invoke whenever a request finishes.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>post</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">boolean</span>
+
+
+            
+            </td>
+            
+            
+                <td class="default">
+                
+                    false
+                
+                </td>
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>When set to <code>false</code> or not specified, poll requests will be made
+using the GET method. When set to <code>true</code>, POST requests will be
+issued. In case of POST requests, the request body will contain
+an argument <code>token</code> with the current value of <code>LuCI.env.token</code> by
+default, regardless of the parameters specified with <code>args</code>.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+        <dt class="important tag-deprecated">Deprecated</dt><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd>
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        function
+                        
+                    
+            </td>
+            <td class="description last">Returns the internally created function that has been passed to
+<a href="LuCI.Request.poll.html#add"><code>Request.poll.add()</code></a>. This value can
+be passed to <code>Poll.remove()</code> to remove the
+polling request.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="post">
+            
+            post<span class="signature">(url, <span class="optional">args</span>, cb)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;null>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 1946
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Issues a POST request to the given url and invokes the specified
+callback function. The function is a wrapper around
+<a href="LuCI.Request.html#request"><code>Request.request()</code></a>. The request is
+sent using <code>application/x-www-form-urlencoded</code> encoding and will
+contain a field <code>token</code> with the current value of <code>LuCI.env.token</code>
+by default.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</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="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The URL to request.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>args</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Object.&lt;string, string></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>Additional post arguments to append to the request body.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>cb</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type"><a href="LuCI.html#.requestCallbackFn">LuCI.requestCallbackFn</a></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The callback function to invoke when the request finishes.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+        <dt class="important tag-deprecated">Deprecated</dt><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd>
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;null>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to <code>null</code> when concluded.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="raise">
+            
+            raise<span class="signature">(<span class="optional">type</span>, <span class="optional">fmt</span>, <span class="optional">args</span>)</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 1234
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Captures the current stack trace and throws an error of the
+specified type as a new exception. Also logs the exception as
+error to the debug console if it is available.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               <th>Default</th>
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>type</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Error</span>
+|
+
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+                <td class="default">
+                
+                    Error
+                
+                </td>
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>Either a string specifying the type of the error to throw or an
+existing <code>Error</code> instance to copy.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>fmt</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+                <td class="default">
+                
+                    Unspecified error
+                
+                </td>
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>A format string which is used to form the error message, together
+with all subsequent optional arguments.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>args</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+            
+            
+                <td class="default">
+                
+                </td>
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                        <span class="repeatable">repeatable</span>
+                    
+                
+                <p>Zero or more variable arguments to the supplied format string.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    <h5>Throws:</h5>
+    
+            
+
+<dl>
+    <dt>
+        <div class="param-desc">
+        <p>Throws the created error object with the captured stack trace
+appended to the message and the type set to the given type
+argument or copied from the given error instance.</p>
+        </div>
+    </dt>
+    <dt>
+        <dl>
+            <dt>
+                Type
+            </dt>
+            <dd>
+                
+<span class="param-type">Error</span>
+
+
+            </dd>
+        </dl>
+    </dt>
+</dl>
+
+
+        
+    
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="require">
+            
+            require<span class="signature">(name)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;LuCI#Class>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 1379
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Load an additional LuCI JavaScript class and its dependencies,
+instantiate it and return the resulting class instance. Each
+class is only loaded once. Subsequent attempts to load the same
+class will return the already instantiated class.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<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">
+                
+                <p>The name of the class to load in dotted notation. Dots will
+be replaced by spaces and joined with the runtime-determined
+base URL of LuCI.js to form an absolute URL to load the class
+file from.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    <h5>Throws:</h5>
+    <ul>
+            <li>
+
+<dl>
+    <dt>
+        <div class="param-desc">
+        <p>Throws a <code>DependencyError</code> when the class to load includes
+circular dependencies.</p>
+        </div>
+    </dt>
+    <dt>
+        <dl>
+            <dt>
+                Type
+            </dt>
+            <dd>
+                
+<span class="param-type">DependencyError</span>
+
+
+            </dd>
+        </dl>
+    </dt>
+</dl>
+
+</li>
+        
+            <li>
+
+<dl>
+    <dt>
+        <div class="param-desc">
+        <p>Throws <code>NetworkError</code> when the underlying <a href="LuCI.Request.html"><code>LuCI.Request</code></a>
+call failed.</p>
+        </div>
+    </dt>
+    <dt>
+        <dl>
+            <dt>
+                Type
+            </dt>
+            <dd>
+                
+<span class="param-type">NetworkError</span>
+
+
+            </dd>
+        </dl>
+    </dt>
+</dl>
+
+</li>
+        
+            <li>
+
+<dl>
+    <dt>
+        <div class="param-desc">
+        <p>Throws <code>SyntaxError</code> when the loaded class file code cannot
+be interpreted by <code>eval</code>.</p>
+        </div>
+    </dt>
+    <dt>
+        <dl>
+            <dt>
+                Type
+            </dt>
+            <dd>
+                
+<span class="param-type">SyntaxError</span>
+
+
+            </dd>
+        </dl>
+    </dt>
+</dl>
+
+</li>
+        
+            <li>
+
+<dl>
+    <dt>
+        <div class="param-desc">
+        <p>Throws <code>TypeError</code> when the class file could be loaded and
+interpreted, but when invoking its code did not yield a valid
+class instance.</p>
+        </div>
+    </dt>
+    <dt>
+        <dl>
+            <dt>
+                Type
+            </dt>
+            <dd>
+                
+<span class="param-type">TypeError</span>
+
+
+            </dd>
+        </dl>
+    </dt>
+</dl>
+
+</li>
+        </ul>
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;LuCI#Class>
+                        
+                    
+            </td>
+            <td class="description last">Returns the instantiated class.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="resolveDefault">
+            
+            resolveDefault<span class="signature">(value, defvalue)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;*>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 1873
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Returns a promise resolving with either the given value or or with
+the given default in case the input value is a rejecting promise.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>value</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The value to resolve the promise with.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>defvalue</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The default value to resolve the promise with in case the given
+input value is a rejecting promise.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;*>
+                        
+                    
+            </td>
+            <td class="description last">Returns a new promise resolving either to the given input value or
+to the given default value on error.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="resource">
+            
+            resource<span class="signature">(<span class="optional">parts</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 1732
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Construct an URL path relative to the global static resource path
+of the LuCI ui (usually <code>/luci-static/resources</code>).</p>
+<p>The resulting URL is guaranteed to only contain the characters
+<code>a-z</code>, <code>A-Z</code>, <code>0-9</code>, <code>_</code>, <code>.</code>, <code>%</code>, <code>,</code>, <code>;</code>, and <code>-</code> as well
+as <code>/</code> for the path separator.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>parts</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;string></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>An array of parts to join into an URL path. Parts may contain
+slashes and any of the other characters mentioned above.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the resulting URL path.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="run">
+            
+            run<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 2053
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Deprecated wrapper around <code>Poll.start()</code>.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+        <dt class="important tag-deprecated">Deprecated</dt><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd>
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> when the polling loop has been started or <code>false</code>
+when it was already running.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="sortedKeys">
+            
+            sortedKeys<span class="signature">(obj, <span class="optional">key</span>, <span class="optional">sortmode</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;string>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 1794
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Return an array of sorted object keys, optionally sorted by
+a different key or a different sorting mode.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>obj</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">object</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The object to extract the keys from. If the given value is
+not an object, the function will return an empty array.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>key</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>Specifies the key to order by. This is mainly useful for
+nested objects of objects or objects of arrays when sorting
+shall not be performed by the primary object keys but by
+some other key pointing to a value within the nested values.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>sortmode</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>May be either <code>addr</code> or <code>num</code> to override the natural
+lexicographic sorting with a sorting suitable for IP/MAC style
+addresses or numeric values respectively.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Array.&lt;string>
+                        
+                    
+            </td>
+            <td class="description last">Returns an array containing the sorted keys of the given object.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="stop">
+            
+            stop<span class="signature">(entry)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 2027
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Deprecated wrapper around <code>Poll.remove()</code>.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>entry</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">function</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The polling function to remove.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+        <dt class="important tag-deprecated">Deprecated</dt><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd>
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> when the function has been removed or <code>false</code> if
+it could not be found.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="toArray">
+            
+            toArray<span class="signature">(val)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;*>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 1839
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Converts the given value to an array. If the given value is of
+type array, it is returned as-is, values of type object are
+returned as one-element array containing the object, empty
+strings and <code>null</code> values are returned as empty array, all other
+values are converted using <code>String()</code>, trimmed, split on white
+space and returned as array.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>val</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The value to convert into an array.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Array.&lt;*>
+                        
+                    
+            </td>
+            <td class="description last">Returns the resulting array.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="url">
+            
+            url<span class="signature">(<span class="optional">parts</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 1710
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Construct an URL  pathrelative to the script path of the server
+side LuCI application (usually <code>/cgi-bin/luci</code>).</p>
+<p>The resulting URL is guaranteed to only contain the characters
+<code>a-z</code>, <code>A-Z</code>, <code>0-9</code>, <code>_</code>, <code>.</code>, <code>%</code>, <code>,</code>, <code>;</code>, and <code>-</code> as well
+as <code>/</code> for the path separator.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>parts</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;string></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>An array of parts to join into an URL path. Parts may contain
+slashes and any of the other characters mentioned above.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the resulting URL path.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        </dl>
+    
+    
+    
+        <h3 class="subsection-title">Type Definitions</h3>
+        
+        <dl>
+                
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id=".requestCallbackFn">
+            
+            LuCI.requestCallbackFn<span class="signature">(xhr, data, duration)</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 1877
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>The request callback function is invoked whenever an HTTP
+reply to a request made using the <code>L.get()</code>, <code>L.post()</code> or
+<code>L.poll()</code> function is timed out or received successfully.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>xhr</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">XMLHTTPRequest</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The XMLHTTPRequest instance used to make the request.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The response JSON if the response could be parsed as such,
+else <code>null</code>.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>duration</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The total duration of the request in milliseconds.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+            </dl>
+    
+    
+    
+
+    
+</article>
+
+</section>  
+
+
+
+
+
+        
+
+        <footer>
+            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
+        </footer>
+    </div>
+</div>
+<script>prettyPrint();</script>
+<script src="scripts/jaguar.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/jsapi/LuCI.rpc.html b/docs/jsapi/LuCI.rpc.html
new file mode 100644 (file)
index 0000000..557b972
--- /dev/null
@@ -0,0 +1,3225 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>Class: rpc</title>
+    
+    
+    <script src="scripts/prettify/prettify.js"></script>
+    <script src="scripts/prettify/lang-css.js"></script>
+    <script src="scripts/jquery.min.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/bootstrap.min.css">
+    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
+    
+    
+    <script>
+    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
+    </script>
+    
+
+    
+</head>
+<body>
+<div id="wrap" class="clearfix">
+    
+<div class="navigation">
+    <h3 class="applicationName"><a href="index.html"></a></h3>
+
+    <div class="search">
+        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
+    </div>
+    <ul class="list">
+    
+        <li class="item" data-name="LuCI">
+            <span class="title">
+                <a href="LuCI.html">LuCI</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
+            
+                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
+            
+                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
+            
+                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
+            
+                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
+            
+                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
+            
+                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
+            
+                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
+            
+                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
+            
+                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
+            
+                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
+            
+                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
+            
+                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
+            
+                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
+            
+                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
+            
+                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
+            
+                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
+            
+                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
+            
+                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Class">
+            <span class="title">
+                <a href="LuCI.Class.html">LuCI.Class</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
+            
+                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
+            
+                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
+            
+                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
+            
+                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
+            
+                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.dom">
+            <span class="title">
+                <a href="LuCI.dom.html">LuCI.dom</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
+            
+                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
+            
+                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
+            
+                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
+            
+                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
+            
+                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
+            
+                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
+            
+                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
+            
+                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
+            
+                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.fs">
+            <span class="title">
+                <a href="LuCI.fs.html">LuCI.fs</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
+            
+                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
+            
+                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
+            
+                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
+            
+                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
+            
+                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
+            
+                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
+            
+                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Headers">
+            <span class="title">
+                <a href="LuCI.Headers.html">LuCI.Headers</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
+            
+                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network">
+            <span class="title">
+                <a href="LuCI.Network.html">LuCI.Network</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
+            
+                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
+            
+                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
+            
+                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
+            
+                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
+            
+                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
+            
+                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
+            
+                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
+            
+                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
+            
+                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
+            
+                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
+            
+                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
+            
+                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
+            
+                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
+            
+                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
+            
+                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
+            
+                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Device">
+            <span class="title">
+                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
+            
+                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
+            
+                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
+            
+                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
+            
+                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Hosts">
+            <span class="title">
+                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Protocol">
+            <span class="title">
+                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiDevice">
+            <span class="title">
+                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiNetwork">
+            <span class="title">
+                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Poll">
+            <span class="title">
+                <a href="LuCI.Poll.html">LuCI.Poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request">
+            <span class="title">
+                <a href="LuCI.Request.html">LuCI.Request</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
+            
+                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
+            
+                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
+            
+                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request.poll">
+            <span class="title">
+                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Response">
+            <span class="title">
+                <a href="LuCI.Response.html">LuCI.Response</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
+            
+                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
+            
+                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
+            
+                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
+            
+                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
+            
+                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
+            
+                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
+            
+                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.rpc">
+            <span class="title">
+                <a href="LuCI.rpc.html">LuCI.rpc</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
+            
+                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
+            
+                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
+            
+                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
+            
+                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
+            
+                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
+            
+                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.uci">
+            <span class="title">
+                <a href="LuCI.uci.html">LuCI.uci</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
+            
+                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
+            
+                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
+            
+                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
+            
+                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
+            
+                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
+            
+                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
+            
+                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
+            
+                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
+            
+                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
+            
+                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
+            
+                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
+            
+                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
+            
+                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
+            
+                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
+            
+                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
+            
+                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
+            
+                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.view">
+            <span class="title">
+                <a href="LuCI.view.html">LuCI.view</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
+            
+                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
+            
+                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
+            
+                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
+            
+                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
+            
+                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.XHR">
+            <span class="title">
+                <a href="LuCI.XHR.html">LuCI.XHR</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
+            
+                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
+            
+                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
+            
+                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
+            
+                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
+            
+                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+    </ul>
+</div>
+    <div class="main">
+        <h1 class="page-title" data-filename="LuCI.rpc.html">Class: rpc</h1>
+        
+
+
+
+<section>
+    
+<header>
+    <h2>
+        <span class="ancestors"><a href="LuCI.html">LuCI</a>.</span>
+    
+    rpc
+    </h2>
+    
+        <div class="class-description"><p>The <code>LuCI.rpc</code> class provides high level ubus JSON-RPC abstractions
+and means for listing and invoking remove RPC methods.</p></div>
+    
+</header>  
+
+<article>
+    <div class="container-overview">
+    
+    
+    
+        
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="rpc">
+            
+            new LuCI.rpc<span class="signature">()</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            rpc.js, line 8
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+    
+    </div>
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+        <h3 class="subsection-title">Methods</h3>
+        
+        <dl>
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="addInterceptor">
+            
+            addInterceptor<span class="signature">(interceptorFn)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{<a href="LuCI.rpc.html#~interceptorFn">LuCI.rpc~interceptorFn</a>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            rpc.js, line 454
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Registers a new interceptor function.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>interceptorFn</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type"><a href="LuCI.rpc.html#~interceptorFn">LuCI.rpc~interceptorFn</a></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The inteceptor function to register.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        <a href="LuCI.rpc.html#~interceptorFn">LuCI.rpc~interceptorFn</a>
+                        
+                    
+            </td>
+            <td class="description last">Returns the given function value.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="declare">
+            
+            declare<span class="signature">(options)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{<a href="LuCI.rpc.html#~invokeFn">LuCI.rpc~invokeFn</a>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            rpc.js, line 292
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Describes a remote RPC call procedure and returns a function
+implementing it.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>options</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type"><a href="LuCI.rpc.html#.DeclareOptions">LuCI.rpc.DeclareOptions</a></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>If any object names are given, this function will return the method
+signatures of each given object.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        <a href="LuCI.rpc.html#~invokeFn">LuCI.rpc~invokeFn</a>
+                        
+                    
+            </td>
+            <td class="description last">Returns a new function implementing the method call described in
+<code>options</code>.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getBaseURL">
+            
+            getBaseURL<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            rpc.js, line 367
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Returns the current RPC base URL.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the RPC URL endpoint to issue requests against.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getSessionID">
+            
+            getSessionID<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            rpc.js, line 346
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Returns the current RPC session id.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the 32 byte session ID string used for authenticating remote
+requests.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="getStatusText">
+            
+            getStatusText<span class="signature">(statusCode)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            rpc.js, line 391
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Translates a numeric <code>ubus</code> error code into a human readable
+description.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>statusCode</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The numeric status code.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the textual description of the code.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="list">
+            
+            list<span class="signature">(<span class="optional">objectNames</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;(Array.&lt;string>|Object.&lt;string, Object.&lt;string, Object.&lt;string, string>>>)>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            rpc.js, line 140
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Lists available remote ubus objects or the method signatures of
+specific objects.</p>
+<p>This function has two signatures and is sensitive to the number of
+arguments passed to it:</p>
+<ul>
+<li><code>list()</code> -
+Returns an array containing the names of all remote <code>ubus</code> objects</li>
+<li><code>list(&quot;objname&quot;, ...)</code>
+Returns method signatures for each given <code>ubus</code> object name.</li>
+</ul>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>objectNames</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                        <span class="repeatable">repeatable</span>
+                    
+                
+                <p>If any object names are given, this function will return the method
+signatures of each given object.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;(Array.&lt;string>|Object.&lt;string, Object.&lt;string, Object.&lt;string, string>>>)>
+                        
+                    
+            </td>
+            <td class="description last">When invoked without arguments, this function will return a promise
+resolving to an array of <code>ubus</code> object names. When invoked with one or
+more arguments, a promise resolving to an object describing the method
+signatures of each requested <code>ubus</code> object name will be returned.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="removeInterceptor">
+            
+            removeInterceptor<span class="signature">(interceptorFn)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            rpc.js, line 470
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Removes a registered interceptor function.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>interceptorFn</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type"><a href="LuCI.rpc.html#~interceptorFn">LuCI.rpc~interceptorFn</a></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The inteceptor function to remove.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> if the given function has been removed or <code>false</code>
+if it has not been found.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="setBaseURL">
+            
+            setBaseURL<span class="signature">(sid)</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            rpc.js, line 377
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Set the RPC base URL to use.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>sid</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>Sets the RPC URL endpoint to issue requests against.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="setSessionID">
+            
+            setSessionID<span class="signature">(sid)</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            rpc.js, line 357
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Set the RPC session id to use.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>sid</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>Sets the 32 byte session ID string used for authenticating remote
+requests.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+        </dl>
+    
+    
+    
+        <h3 class="subsection-title">Type Definitions</h3>
+        
+        <dl>
+                
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id=".DeclareOptions">LuCI.rpc.DeclareOptions<span class="type-signature type object">Object</span> </h4>
+    </div>
+    
+    
+</dt>
+<dd>
+    
+    
+    
+<dl class="details">
+    
+        
+        <h5 class="subsection-title">Properties:</h5>
+        
+        <dl>
+
+<table class="props">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               <th>Argument</th>
+               
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>object</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>The name of the remote <code>ubus</code> object to invoke.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>method</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>The name of the remote <code>ubus</code> method to invoke.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>params</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;string></span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>Lists the named parameters expected by the remote <code>ubus</code> RPC method.
+The arguments passed to the resulting generated method call function
+will be mapped to named parameters in the order they appear in this
+array.</p>
+<p>Extraneous parameters passed to the generated function will not be
+sent to the remote procedure but are passed to the
+<a href="LuCI.rpc.html#~filterFn"><code>filter function</code></a> if one is specified.</p>
+<p>Examples:</p>
+<ul>
+<li><code>params: [ &quot;foo&quot;, &quot;bar&quot; ]</code> -
+When the resulting call function is invoked with <code>fn(true, false)</code>,
+the corresponding args object sent to the remote procedure will be
+<code>{ foo: true, bar: false }</code>.</li>
+<li><code>params: [ &quot;test&quot; ], filter: function(reply, args, extra) { ... }</code> -
+When the resultung generated function is invoked with
+<code>fn(&quot;foo&quot;, &quot;bar&quot;, &quot;baz&quot;)</code> then <code>{ &quot;test&quot;: &quot;foo&quot; }</code> will be sent as
+argument to the remote procedure and the filter function will be
+invoked with <code>filterFn(reply, [ &quot;foo&quot; ], &quot;bar&quot;, &quot;baz&quot;)</code></li>
+</ul></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>expect</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Object.&lt;string, *></span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>Describes the expected return data structure. The given object is
+supposed to contain a single key selecting the value to use from
+the returned <code>ubus</code> reply object. The value of the sole key within
+the <code>expect</code> object is used to infer the expected type of the received
+<code>ubus</code> reply data.</p>
+<p>If the received data does not contain <code>expect</code>'s key, or if the
+type of the data differs from the type of the value in the expect
+object, the expect object's value is returned as default instead.</p>
+<p>The key in the <code>expect</code> object may be an empty string (<code>''</code>) in which
+case the entire reply object is selected instead of one of its subkeys.</p>
+<p>If the <code>expect</code> option is omitted, the received reply will be returned
+as-is, regardless of its format or type.</p>
+<p>Examples:</p>
+<ul>
+<li><code>expect: { '': { error: 'Invalid response' } }</code> -
+This requires the entire <code>ubus</code> reply to be a plain JavaScript
+object. If the reply isn't an object but e.g. an array or a numeric
+error code instead, it will get replaced with
+<code>{ error: 'Invalid response' }</code> instead.</li>
+<li><code>expect: { results: [] }</code> -
+This requires the received <code>ubus</code> reply to be an object containing
+a key <code>results</code> with an array as value. If the received reply does
+not contain such a key, or if <code>reply.results</code> points to a non-array
+value, the empty array (<code>[]</code>) will be used instead.</li>
+<li><code>expect: { success: false }</code> -
+This requires the received <code>ubus</code> reply to be an object containing
+a key <code>success</code> with a boolean value. If the reply does not contain
+<code>success</code> or if <code>reply.success</code> is not a boolean value, <code>false</code> will
+be returned as default instead.</li>
+</ul></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>filter</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type"><a href="LuCI.rpc.html#~filterFn">LuCI.rpc~filterFn</a></span>
+
+
+            
+            </td>
+            
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+                    
+                
+                </td>
+            
+            
+            
+            
+            <td class="description last"><p>Specfies an optional filter function which is invoked to transform the
+received reply data before it is returned to the caller.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table></dl>
+        
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+</dd>
+
+            
+                
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="~filterFn">
+            
+            filterFn<span class="signature">(data, args, extraArgs)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{*}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            rpc.js, line 231
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>The filter function is invoked to transform a received <code>ubus</code> RPC call
+reply before returning it to the caller.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<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">*</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The received <code>ubus</code> reply data or a subset of it as described in the
+<code>expect</code> option of the RPC call declaration. In case of remote call
+errors, <code>data</code> is numeric <code>ubus</code> error code instead.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>args</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;*></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The arguments the RPC method has been invoked with.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>extraArgs</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                        <span class="repeatable">repeatable</span>
+                    
+                
+                <p>All extraneous arguments passed to the RPC method exceeding the number
+of arguments describes in the RPC call declaration.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        *
+                        
+                    
+            </td>
+            <td class="description last">The return value of the filter function will be returned to the caller
+of the RPC method as-is.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+            
+                
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="~interceptorFn">
+            
+            interceptorFn<span class="signature">(msg, req)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;*>|*}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            rpc.js, line 408
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Registered interceptor functions are invoked before the standard reply
+parsing and handling logic.</p>
+<p>By returning rejected promises, interceptor functions can cause the
+invocation function to fail, regardless of the received reply.</p>
+<p>Interceptors may also modify their message argument in-place to
+rewrite received replies before they're processed by the standard
+response handling code.</p>
+<p>A common use case for such functions is to detect failing RPC replies
+due to expired authentication in order to trigger a new login.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>msg</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The unprocessed, JSON decoded remote RPC method call reply.</p>
+<p>Since interceptors run before the standard parsing logic, the reply
+data is not verified for correctness or filtered according to
+<code>expect</code> and <code>filter</code> specifications in the declarations.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>req</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The related request object which is an extended variant of the
+declaration object, allowing access to internals of the invocation
+function such as <code>filter</code>, <code>expect</code> or <code>params</code> values.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;*>
+                         | 
+                    
+                        *
+                        
+                    
+            </td>
+            <td class="description last">Interceptor functions may return a promise to defer response
+processing until some delayed work completed. Any values the returned
+promise resolves to are ignored.
+When the returned promise rejects with an error, the invocation
+function will fail too, forwarding the error to the caller.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+            
+                
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="~invokeFn">
+            
+            invokeFn<span class="signature">(params)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;*>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            rpc.js, line 254
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>The generated invocation function is returned by
+<a href="LuCI.rpc.html#declare"><code>rpc.declare()</code></a> and encapsulates a single
+RPC method call.</p>
+<p>Calling this function will execute a remote <code>ubus</code> HTTP call request
+using the arguments passed to it as arguments and return a promise
+resolving to the received reply values.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>params</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                        <span class="repeatable">repeatable</span>
+                    
+                
+                <p>The parameters to pass to the remote procedure call. The given
+positional arguments will be named to named RPC parameters according
+to the names specified in the <code>params</code> array of the method declaration.</p>
+<p>Any additional parameters exceeding the amount of arguments in the
+<code>params</code> declaration are passed as private extra arguments to the
+declared filter function.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;*>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to the result data of the remote <code>ubus</code>
+RPC method invocation, optionally substituted and filtered according
+to the <code>expect</code> and <code>filter</code> declarations.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+            </dl>
+    
+    
+    
+
+    
+</article>
+
+</section>  
+
+
+
+
+
+        
+
+        <footer>
+            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
+        </footer>
+    </div>
+</div>
+<script>prettyPrint();</script>
+<script src="scripts/jaguar.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/jsapi/LuCI.uci.html b/docs/jsapi/LuCI.uci.html
new file mode 100644 (file)
index 0000000..32e34ea
--- /dev/null
@@ -0,0 +1,4773 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>Class: uci</title>
+    
+    
+    <script src="scripts/prettify/prettify.js"></script>
+    <script src="scripts/prettify/lang-css.js"></script>
+    <script src="scripts/jquery.min.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/bootstrap.min.css">
+    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
+    
+    
+    <script>
+    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
+    </script>
+    
+
+    
+</head>
+<body>
+<div id="wrap" class="clearfix">
+    
+<div class="navigation">
+    <h3 class="applicationName"><a href="index.html"></a></h3>
+
+    <div class="search">
+        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
+    </div>
+    <ul class="list">
+    
+        <li class="item" data-name="LuCI">
+            <span class="title">
+                <a href="LuCI.html">LuCI</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
+            
+                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
+            
+                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
+            
+                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
+            
+                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
+            
+                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
+            
+                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
+            
+                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
+            
+                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
+            
+                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
+            
+                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
+            
+                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
+            
+                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
+            
+                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
+            
+                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
+            
+                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
+            
+                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
+            
+                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
+            
+                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Class">
+            <span class="title">
+                <a href="LuCI.Class.html">LuCI.Class</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
+            
+                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
+            
+                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
+            
+                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
+            
+                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
+            
+                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.dom">
+            <span class="title">
+                <a href="LuCI.dom.html">LuCI.dom</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
+            
+                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
+            
+                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
+            
+                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
+            
+                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
+            
+                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
+            
+                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
+            
+                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
+            
+                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
+            
+                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.fs">
+            <span class="title">
+                <a href="LuCI.fs.html">LuCI.fs</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
+            
+                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
+            
+                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
+            
+                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
+            
+                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
+            
+                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
+            
+                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
+            
+                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Headers">
+            <span class="title">
+                <a href="LuCI.Headers.html">LuCI.Headers</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
+            
+                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network">
+            <span class="title">
+                <a href="LuCI.Network.html">LuCI.Network</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
+            
+                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
+            
+                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
+            
+                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
+            
+                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
+            
+                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
+            
+                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
+            
+                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
+            
+                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
+            
+                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
+            
+                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
+            
+                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
+            
+                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
+            
+                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
+            
+                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
+            
+                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
+            
+                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Device">
+            <span class="title">
+                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
+            
+                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
+            
+                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
+            
+                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
+            
+                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Hosts">
+            <span class="title">
+                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Protocol">
+            <span class="title">
+                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiDevice">
+            <span class="title">
+                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiNetwork">
+            <span class="title">
+                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Poll">
+            <span class="title">
+                <a href="LuCI.Poll.html">LuCI.Poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request">
+            <span class="title">
+                <a href="LuCI.Request.html">LuCI.Request</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
+            
+                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
+            
+                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
+            
+                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request.poll">
+            <span class="title">
+                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Response">
+            <span class="title">
+                <a href="LuCI.Response.html">LuCI.Response</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
+            
+                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
+            
+                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
+            
+                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
+            
+                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
+            
+                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
+            
+                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
+            
+                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.rpc">
+            <span class="title">
+                <a href="LuCI.rpc.html">LuCI.rpc</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
+            
+                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
+            
+                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
+            
+                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
+            
+                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
+            
+                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
+            
+                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.uci">
+            <span class="title">
+                <a href="LuCI.uci.html">LuCI.uci</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
+            
+                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
+            
+                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
+            
+                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
+            
+                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
+            
+                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
+            
+                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
+            
+                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
+            
+                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
+            
+                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
+            
+                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
+            
+                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
+            
+                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
+            
+                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
+            
+                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
+            
+                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
+            
+                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
+            
+                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.view">
+            <span class="title">
+                <a href="LuCI.view.html">LuCI.view</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
+            
+                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
+            
+                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
+            
+                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
+            
+                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
+            
+                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.XHR">
+            <span class="title">
+                <a href="LuCI.XHR.html">LuCI.XHR</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
+            
+                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
+            
+                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
+            
+                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
+            
+                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
+            
+                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+    </ul>
+</div>
+    <div class="main">
+        <h1 class="page-title" data-filename="LuCI.uci.html">Class: uci</h1>
+        
+
+
+
+<section>
+    
+<header>
+    <h2>
+        <span class="ancestors"><a href="LuCI.html">LuCI</a>.</span>
+    
+    uci
+    </h2>
+    
+        <div class="class-description"><p>The <code>LuCI.uci</code> class utilizes <a href="LuCI.rpc.html"><code>LuCI.rpc</code></a> to declare low level
+remote UCI <code>ubus</code> procedures and implements a local caching and data
+manipulation layer on top to allow for synchroneous operations on
+UCI configuration data.</p></div>
+    
+</header>  
+
+<article>
+    <div class="container-overview">
+    
+    
+    
+        
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="uci">
+            
+            new LuCI.uci<span class="signature">()</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            uci.js, line 4
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+    
+    </div>
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+        <h3 class="subsection-title">Methods</h3>
+        
+        <dl>
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="add">
+            
+            add<span class="signature">(config, type, <span class="optional">name</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            uci.js, line 269
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Adds a new section of the given type to the given configuration,
+optionally named according to the given name.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>config</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The name of the configuration to add the section to.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>type</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The type of the section to add.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>The name of the section to add. If the name is omitted, an anonymous
+section will be added instead.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">Returns the section ID of the newly added section which is equivalent
+to the given name for non-anonymous sections.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="apply">
+            
+            apply<span class="signature">(<span class="optional">timeout</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;number>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            uci.js, line 858
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Instructs the remote <code>ubus</code> UCI api to commit all saved changes with
+rollback protection and attempts to confirm the pending commit
+operation to cancel the rollback timer.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               <th>Default</th>
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>timeout</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+                <td class="default">
+                
+                    10
+                
+                </td>
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>Override the confirmation timeout after which a rollback is triggered.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;number>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving/rejecting with the <code>ubus</code> RPC status code.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="changes">
+            
+            changes<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;Object.&lt;string, Array.&lt;<a href="LuCI.uci.html#.ChangeRecord">LuCI.uci.ChangeRecord</a>>>>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            uci.js, line 938
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Fetches uncommitted UCI changes from the remote <code>ubus</code> RPC api.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;Object.&lt;string, Array.&lt;<a href="LuCI.uci.html#.ChangeRecord">LuCI.uci.ChangeRecord</a>>>>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to an object containing the configuration
+names as keys and arrays of related change records as values.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="createSID">
+            
+            createSID<span class="signature">(config)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            uci.js, line 88
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Generates a new, unique section ID for the given configuration.</p>
+<p>Note that the generated ID is temporary, it will get replaced by an
+identifier in the form <code>cfgXXXXXX</code> once the configuration is saved
+by the remote <code>ubus</code> UCI api.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>config</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The configuration to generate the new section ID for.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                        
+                    
+            </td>
+            <td class="description last">A newly generated, unique section ID in the form <code>newXXXXXX</code>
+where <code>X</code> denotes a hexadecimal digit.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="get">
+            
+            get<span class="signature">(config, sid, <span class="optional">option</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string|Array.&lt;string>|<a href="LuCI.uci.html#.SectionObject">LuCI.uci.SectionObject</a>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            uci.js, line 443
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Gets the value of the given option within the specified section
+of the given configuration or the entire section object if the
+option name is omitted.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>config</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The name of the configuration to read the value from.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>sid</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The name or ID of the section to read.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>option</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>The option name to read the value from. If the option name is
+omitted or <code>null</code>, the entire section is returned instead.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        string
+                         | 
+                    
+                        Array.&lt;string>
+                         | 
+                    
+                        <a href="LuCI.uci.html#.SectionObject">LuCI.uci.SectionObject</a>
+                        
+                    
+            </td>
+            <td class="description last"><ul>
+<li>Returns a string containing the option value in case of a
+plain UCI option.</li>
+<li>Returns an array of strings containing the option values in
+case of <code>option</code> pointing to an UCI list.</li>
+<li>Returns a <a href="LuCI.uci.html#.SectionObject"><code>section object</code></a> if
+the <code>option</code> argument has been omitted or is <code>null</code>.</li>
+<li>Returns <code>null</code> if the config, section or option has not been
+found or if the corresponding configuration is not loaded.</li>
+</ul></td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="get_first">
+            
+            get_first<span class="signature">(config, <span class="optional">type</span>, <span class="optional">option</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string|Array.&lt;string>|<a href="LuCI.uci.html#.SectionObject">LuCI.uci.SectionObject</a>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            uci.js, line 618
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Gets the value of the given option or the entire section object of
+the first found section of the specified type or the first found
+section of the entire configuration if no type is specfied.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>config</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The name of the configuration to read the value from.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>type</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>The type of the first section to find. If it is <code>null</code>, the first
+section of the entire config is read, otherwise the first section
+matching the given type.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>option</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>The option name to read the value from. If the option name is
+omitted or <code>null</code>, the entire section is returned instead.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        null
+                         | 
+                    
+                        string
+                         | 
+                    
+                        Array.&lt;string>
+                         | 
+                    
+                        <a href="LuCI.uci.html#.SectionObject">LuCI.uci.SectionObject</a>
+                        
+                    
+            </td>
+            <td class="description last"><ul>
+<li>Returns a string containing the option value in case of a
+plain UCI option.</li>
+<li>Returns an array of strings containing the option values in
+case of <code>option</code> pointing to an UCI list.</li>
+<li>Returns a <a href="LuCI.uci.html#.SectionObject"><code>section object</code></a> if
+the <code>option</code> argument has been omitted or is <code>null</code>.</li>
+<li>Returns <code>null</code> if the config, section or option has not been
+found or if the corresponding configuration is not loaded.</li>
+</ul></td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="load">
+            
+            load<span class="signature">(config)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;Array.&lt;string>>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            uci.js, line 205
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Loads the given UCI configurations from the remote <code>ubus</code> api.</p>
+<p>Loaded configurations are cached and only loaded once. Subsequent
+load operations of the same configurations will return the cached
+data.</p>
+<p>To force reloading a configuration, it has to be unloaded with
+<a href="LuCI.uci.html#unload"><code>uci.unload()</code></a> first.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>config</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+|
+
+<span class="param-type">Array.&lt;string></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The name of the configuration or an array of configuration
+names to load.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Promise.&lt;Array.&lt;string>>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to the names of the configurations
+that have been successfully loaded.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="move">
+            
+            move<span class="signature">(config, sid1, <span class="optional">sid2</span>, <span class="optional">after</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            uci.js, line 718
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Move the first specified section within the given configuration
+before or after the second specified section.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               <th>Default</th>
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>config</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+                <td class="default">
+                
+                </td>
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The configuration to move the section within.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>sid1</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+                <td class="default">
+                
+                </td>
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The ID of the section to move within the configuration.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>sid2</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+                <td class="default">
+                
+                </td>
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>The ID of the target section for the move operation. If the
+<code>after</code> argument is <code>false</code> or not specified, the section named by
+<code>sid1</code> will be moved before this target section, if the <code>after</code>
+argument is <code>true</code>, the <code>sid1</code> section will be moved after this
+section.</p>
+<p>When the <code>sid2</code> argument is <code>null</code>, the section specified by <code>sid1</code>
+is moved to the end of the configuration.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>after</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">boolean</span>
+
+
+            
+            </td>
+            
+            
+                <td class="default">
+                
+                    false
+                
+                </td>
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>When <code>true</code>, the section <code>sid1</code> is moved after the section <code>sid2</code>,
+when <code>false</code>, the section <code>sid1</code> is moved before <code>sid2</code>.</p>
+<p>If <code>sid2</code> is null, then this parameter has no effect and the section
+<code>sid1</code> is moved to the end of the configuration instead.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        boolean
+                        
+                    
+            </td>
+            <td class="description last">Returns <code>true</code> when the section was successfully moved, or <code>false</code>
+when either the section specified by <code>sid1</code> or by <code>sid2</code> is not found.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="remove">
+            
+            remove<span class="signature">(config, sid)</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            uci.js, line 296
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Removes the section with the given ID from the given configuration.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>config</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The name of the configuration to remove the section from.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>sid</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The ID of the section to remove.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="resolveSID">
+            
+            resolveSID<span class="signature">(config, sid)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string|null}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            uci.js, line 119
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Resolves a given section ID in extended notation to the internal
+section ID value.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>config</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The configuration to resolve the section ID for.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>sid</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The section ID to resolve. If the ID is in the form <code>@typename[#]</code>,
+it will get resolved to an internal anonymous ID in the forms
+<code>cfgXXXXXX</code>/<code>newXXXXXX</code> or to the name of a section in case it points
+to a named section. When the given ID is not in extended notation,
+it will be returned as-is.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        string
+                         | 
+                    
+                        null
+                        
+                    
+            </td>
+            <td class="description last">Returns the resolved section ID or the original given ID if it was
+not in extended notation. Returns <code>null</code> when an extended ID could
+not be resolved to existing section ID.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="save">
+            
+            save<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;string>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            uci.js, line 772
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Submits all local configuration changes to the remove <code>ubus</code> api,
+adds, removes and reorders remote sections as needed and reloads
+all loaded configurations to resynchronize the local state with
+the remote configuration values.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Array.&lt;string>
+                        
+                    
+            </td>
+            <td class="description last">Returns a promise resolving to an array of configuration names which
+have been reloaded by the save operation.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="sections">
+            
+            sections<span class="signature">(config, <span class="optional">type</span>, <span class="optional">cb</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;<a href="LuCI.uci.html#.SectionObject">LuCI.uci.SectionObject</a>>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            uci.js, line 384
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Enumerates the sections of the given configuration, optionally
+filtered by type.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>config</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The name of the configuration to enumerate the sections for.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>type</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>Enumerate only sections of the given type. If omitted, enumerate
+all sections.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>cb</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type"><a href="LuCI.uci.html#~sectionsFn">LuCI.uci~sectionsFn</a></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>An optional callback to invoke for each enumerated section.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Array.&lt;<a href="LuCI.uci.html#.SectionObject">LuCI.uci.SectionObject</a>>
+                        
+                    
+            </td>
+            <td class="description last">Returns a sorted array of the section objects within the given
+configuration, filtered by type of a type has been specified.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="set">
+            
+            set<span class="signature">(config, sid, option, value)</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            uci.js, line 516
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Sets the value of the given option within the specified section
+of the given configuration.</p>
+<p>If either config, section or option is null, or if <code>option</code> begins
+with a dot, the function will do nothing.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>config</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The name of the configuration to set the option value in.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>sid</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The name or ID of the section to set the option value in.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>option</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The option name to set the value for.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>value</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">null</span>
+|
+
+<span class="param-type">string</span>
+|
+
+<span class="param-type">Array.&lt;string></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The option value to set. If the value is <code>null</code> or an empty string,
+the option will be removed, otherwise it will be set or overwritten
+with the given value.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="set_first">
+            
+            set_first<span class="signature">(config, <span class="optional">type</span>, option, value)</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            uci.js, line 653
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Sets the value of the given option within the first found section
+of the given configuration matching the specified type or within
+the first section of the entire config when no type has is specified.</p>
+<p>If either config, type or option is null, or if <code>option</code> begins
+with a dot, the function will do nothing.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>config</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The name of the configuration to set the option value in.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>type</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>The type of the first section to find. If it is <code>null</code>, the first
+section of the entire config is written to, otherwise the first
+section matching the given type is used.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>option</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The option name to set the value for.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>value</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">null</span>
+|
+
+<span class="param-type">string</span>
+|
+
+<span class="param-type">Array.&lt;string></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The option value to set. If the value is <code>null</code> or an empty string,
+the option will be removed, otherwise it will be set or overwritten
+with the given value.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="unload">
+            
+            unload<span class="signature">(config)</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            uci.js, line 237
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Unloads the given UCI configurations from the local cache.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>config</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+|
+
+<span class="param-type">Array.&lt;string></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The name of the configuration or an array of configuration
+names to unload.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="unset">
+            
+            unset<span class="signature">(config, sid, option)</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            uci.js, line 587
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Remove the given option within the specified section of the given
+configuration.</p>
+<p>This function is a convenience wrapper around
+<code>uci.set(config, section, option, null)</code>.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>config</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The name of the configuration to remove the option from.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>sid</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The name or ID of the section to remove the option from.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>option</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The name of the option to remove.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="unset_first">
+            
+            unset_first<span class="signature">(config, <span class="optional">type</span>, option)</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            uci.js, line 683
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Removes the given option within the first found section of the given
+configuration matching the specified type or within the first section
+of the entire config when no type has is specified.</p>
+<p>This function is a convenience wrapper around
+<code>uci.set_first(config, type, option, null)</code>.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>config</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The name of the configuration to set the option value in.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>type</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                        <span class="optional">optional</span>
+                    
+                    
+                        
+                    
+                
+                <p>The type of the first section to find. If it is <code>null</code>, the first
+section of the entire config is written to, otherwise the first
+section matching the given type is used.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>option</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                    
+                    
+                        
+                    
+                
+                <p>The option name to set the value for.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+        </dl>
+    
+    
+    
+        <h3 class="subsection-title">Type Definitions</h3>
+        
+        <dl>
+                
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id=".ChangeRecord">LuCI.uci.ChangeRecord<span class="type-signature type array.<string>">Array.&lt;string></span> </h4>
+    </div>
+    
+    
+</dt>
+<dd>
+    
+    <div class="description">
+        <p>An UCI change record is a plain array containing the change operation
+name as first element, the affected section ID as second argument
+and an optional third and fourth argument whose meanings depend on
+the operation.</p>
+    </div>
+    
+    
+    
+<dl class="details">
+    
+        
+        <h5 class="subsection-title">Properties:</h5>
+        
+        <dl>
+
+<table class="props">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>0</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            
+            
+            <td class="description last"><p>The operation name - may be one of <code>add</code>, <code>set</code>, <code>remove</code>, <code>order</code>,
+<code>list-add</code>, <code>list-del</code> or <code>rename</code>.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>1</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            
+            
+            <td class="description last"><p>The section ID targeted by the operation.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>2</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            
+            
+            <td class="description last"><p>The meaning of the third element depends on the operation.</p>
+<ul>
+<li>For <code>add</code> it is type of the section that has been added</li>
+<li>For <code>set</code> it either is the option name if a fourth element exists,
+or the type of a named section which has been added when the change
+entry only contains three elements.</li>
+<li>For <code>remove</code> it contains the name of the option that has been
+removed.</li>
+<li>For <code>order</code> it specifies the new sort index of the section.</li>
+<li>For <code>list-add</code> it contains the name of the list option a new value
+has been added to.</li>
+<li>For <code>list-del</code> it contains the name of the list option a value has
+been removed from.</li>
+<li>For <code>rename</code> it contains the name of the option that has been
+renamed if a fourth element exists, else it contains the new name
+a section has been renamed to if the change entry only contains
+three elements.</li>
+</ul></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>4</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            
+            
+            <td class="description last"><p>The meaning of the fourth element depends on the operation.</p>
+<ul>
+<li>For <code>set</code> it is the value an option has been set to.</li>
+<li>For <code>list-add</code> it is the new value that has been added to a
+list option.</li>
+<li>For <code>rename</code> it is the new name of an option that has been
+renamed.</li>
+</ul></td>
+        </tr>
+       
+       
+       </tbody>
+</table></dl>
+        
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+</dd>
+
+            
+                
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id=".SectionObject">LuCI.uci.SectionObject<span class="type-signature type object.<string, (boolean|number|string|array.<string>)>">Object.&lt;string, (boolean|number|string|Array.&lt;string>)></span> </h4>
+    </div>
+    
+    
+</dt>
+<dd>
+    
+    <div class="description">
+        <p>A section object represents the options and their corresponding values
+enclosed within a configuration section, as well as some additional
+meta data such as sort indexes and internal ID.</p>
+<p>Any internal metadata fields are prefixed with a dot which is isn't
+an allowed character for normal option names.</p>
+    </div>
+    
+    
+    
+<dl class="details">
+    
+        
+        <h5 class="subsection-title">Properties:</h5>
+        
+        <dl>
+
+<table class="props">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>.anonymous</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">boolean</span>
+
+
+            
+            </td>
+            
+            
+            
+            
+            
+            <td class="description last"><p>The <code>.anonymous</code> property specifies whether the configuration is
+anonymous (<code>true</code>) or named (<code>false</code>).</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>.index</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+            
+            
+            
+            
+            
+            <td class="description last"><p>The <code>.index</code> property specifes the sort order of the section.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>.name</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            
+            
+            <td class="description last"><p>The <code>.name</code> property holds the name of the section object. It may be
+either an anonymous ID in the form <code>cfgXXXXXX</code> or <code>newXXXXXX</code> with <code>X</code>
+being a hexadecimal digit or a string holding the name of the section.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>.type</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            
+            
+            <td class="description last"><p>The <code>.type</code> property contains the type of the corresponding uci
+section.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>*</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+|
+
+<span class="param-type">Array.&lt;string></span>
+
+
+            
+            </td>
+            
+            
+            
+            
+            
+            <td class="description last"><p>A section object may contain an arbitrary number of further properties
+representing the uci option enclosed in the section.</p>
+<p>All option property names will be in the form <code>[A-Za-z0-9_]+</code> and
+either contain a string value or an array of strings, in case the
+underlying option is an UCI list.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table></dl>
+        
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+</dd>
+
+            
+                
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="~sectionsFn">
+            
+            sectionsFn<span class="signature">(section, sid)</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            uci.js, line 352
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>The sections callback is invoked for each section found within
+the given configuration and receives the section object and its
+associated name as arguments.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>section</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type"><a href="LuCI.uci.html#.SectionObject">LuCI.uci.SectionObject</a></span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The section object.</p></td>
+        </tr>
+       
+       
+       
+        <tr>
+            
+                <td class="name"><code>sid</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The name or ID of the section.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+            </dl>
+    
+    
+    
+
+    
+</article>
+
+</section>  
+
+
+
+
+
+        
+
+        <footer>
+            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
+        </footer>
+    </div>
+</div>
+<script>prettyPrint();</script>
+<script src="scripts/jaguar.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/jsapi/LuCI.view.html b/docs/jsapi/LuCI.view.html
new file mode 100644 (file)
index 0000000..59b34cf
--- /dev/null
@@ -0,0 +1,2083 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>Class: view</title>
+    
+    
+    <script src="scripts/prettify/prettify.js"></script>
+    <script src="scripts/prettify/lang-css.js"></script>
+    <script src="scripts/jquery.min.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/bootstrap.min.css">
+    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
+    
+    
+    <script>
+    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
+    </script>
+    
+
+    
+</head>
+<body>
+<div id="wrap" class="clearfix">
+    
+<div class="navigation">
+    <h3 class="applicationName"><a href="index.html"></a></h3>
+
+    <div class="search">
+        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
+    </div>
+    <ul class="list">
+    
+        <li class="item" data-name="LuCI">
+            <span class="title">
+                <a href="LuCI.html">LuCI</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
+            
+                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
+            
+                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
+            
+                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
+            
+                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
+            
+                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
+            
+                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
+            
+                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
+            
+                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
+            
+                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
+            
+                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
+            
+                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
+            
+                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
+            
+                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
+            
+                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
+            
+                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
+            
+                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
+            
+                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
+            
+                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Class">
+            <span class="title">
+                <a href="LuCI.Class.html">LuCI.Class</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
+            
+                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
+            
+                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
+            
+                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
+            
+                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
+            
+                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.dom">
+            <span class="title">
+                <a href="LuCI.dom.html">LuCI.dom</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
+            
+                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
+            
+                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
+            
+                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
+            
+                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
+            
+                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
+            
+                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
+            
+                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
+            
+                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
+            
+                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.fs">
+            <span class="title">
+                <a href="LuCI.fs.html">LuCI.fs</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
+            
+                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
+            
+                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
+            
+                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
+            
+                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
+            
+                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
+            
+                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
+            
+                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Headers">
+            <span class="title">
+                <a href="LuCI.Headers.html">LuCI.Headers</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
+            
+                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network">
+            <span class="title">
+                <a href="LuCI.Network.html">LuCI.Network</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
+            
+                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
+            
+                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
+            
+                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
+            
+                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
+            
+                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
+            
+                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
+            
+                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
+            
+                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
+            
+                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
+            
+                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
+            
+                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
+            
+                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
+            
+                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
+            
+                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
+            
+                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
+            
+                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Device">
+            <span class="title">
+                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
+            
+                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
+            
+                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
+            
+                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
+            
+                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Hosts">
+            <span class="title">
+                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Protocol">
+            <span class="title">
+                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiDevice">
+            <span class="title">
+                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiNetwork">
+            <span class="title">
+                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Poll">
+            <span class="title">
+                <a href="LuCI.Poll.html">LuCI.Poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request">
+            <span class="title">
+                <a href="LuCI.Request.html">LuCI.Request</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
+            
+                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
+            
+                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
+            
+                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request.poll">
+            <span class="title">
+                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Response">
+            <span class="title">
+                <a href="LuCI.Response.html">LuCI.Response</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
+            
+                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
+            
+                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
+            
+                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
+            
+                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
+            
+                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
+            
+                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
+            
+                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.rpc">
+            <span class="title">
+                <a href="LuCI.rpc.html">LuCI.rpc</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
+            
+                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
+            
+                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
+            
+                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
+            
+                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
+            
+                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
+            
+                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.uci">
+            <span class="title">
+                <a href="LuCI.uci.html">LuCI.uci</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
+            
+                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
+            
+                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
+            
+                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
+            
+                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
+            
+                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
+            
+                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
+            
+                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
+            
+                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
+            
+                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
+            
+                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
+            
+                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
+            
+                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
+            
+                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
+            
+                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
+            
+                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
+            
+                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
+            
+                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.view">
+            <span class="title">
+                <a href="LuCI.view.html">LuCI.view</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
+            
+                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
+            
+                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
+            
+                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
+            
+                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
+            
+                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.XHR">
+            <span class="title">
+                <a href="LuCI.XHR.html">LuCI.XHR</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
+            
+                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
+            
+                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
+            
+                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
+            
+                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
+            
+                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+    </ul>
+</div>
+    <div class="main">
+        <h1 class="page-title" data-filename="LuCI.view.html">Class: view</h1>
+        
+
+
+
+<section>
+    
+<header>
+    <h2>
+        <span class="ancestors"><a href="LuCI.html">LuCI</a>.</span>
+    
+    view
+    </h2>
+    
+        <div class="class-description"><p>The <code>view</code> class forms the basis of views and provides a standard
+set of methods to inherit from.</p></div>
+    
+</header>  
+
+<article>
+    <div class="container-overview">
+    
+    
+    
+        
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="view">
+            
+            new LuCI.view<span class="signature">()</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 2687
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    
+    
+</dd>
+
+    
+    </div>
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+        <h3 class="subsection-title">Methods</h3>
+        
+        <dl>
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="addFooter">
+            
+            addFooter<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{DocumentFragment}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 2905
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>Renders a standard page action footer if any of the
+<code>handleSave()</code>, <code>handleSaveApply()</code> or <code>handleReset()</code>
+functions are defined.</p>
+<p>The default implementation should be sufficient for most
+views - it will render a standard page footer with action
+buttons labeled <code>Save</code>, <code>Save &amp; Apply</code> and <code>Reset</code>
+triggering the <code>handleSave()</code>, <code>handleSaveApply()</code> and
+<code>handleReset()</code> functions respectively.</p>
+<p>When any of these <code>handle*()</code> functions is overwritten
+with <code>null</code> by a view extending this class, the
+corresponding button will not be rendered.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        DocumentFragment
+                        
+                    
+            </td>
+            <td class="description last">Returns a <code>DocumentFragment</code> containing the footer bar
+with buttons for each corresponding <code>handle*()</code> action
+or an empty <code>DocumentFragment</code> if all three <code>handle*()</code>
+methods are overwritten with <code>null</code>.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="handleReset">
+            
+            handleReset<span class="signature">(ev)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{*|Promise.&lt;*>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 2871
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>The handleReset function is invoked when the user clicks
+the <code>Reset</code> button in the page action footer.</p>
+<p>The default implementation should be sufficient for most
+views using <code>form.Map()</code> based forms - it
+will iterate all forms present in the view and invoke
+the <code>Map.reset()</code> method on each form.</p>
+<p>Views not using <code>Map</code> instances or requiring other special
+logic should overwrite <code>handleReset()</code> with a custom
+implementation.</p>
+<p>To disable the <code>Reset</code> page footer button, views extending
+this base class should overwrite the <code>handleReset</code> function
+with <code>null</code>.</p>
+<p>The invocation of this function is wrapped by
+<code>Promise.resolve()</code> so it may return Promises if needed.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>ev</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Event</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The DOM event that triggered the function.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        *
+                         | 
+                    
+                        Promise.&lt;*>
+                        
+                    
+            </td>
+            <td class="description last">Any return values of this function are discarded, but
+passed through <code>Promise.resolve()</code> to ensure that any
+returned promise runs to completion before the button
+is reenabled.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="handleSave">
+            
+            handleSave<span class="signature">(ev)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{*|Promise.&lt;*>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 2790
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>The handleSave function is invoked when the user clicks
+the <code>Save</code> button in the page action footer.</p>
+<p>The default implementation should be sufficient for most
+views using <code>form.Map()</code> based forms - it
+will iterate all forms present in the view and invoke
+the <code>Map.save()</code> method on each form.</p>
+<p>Views not using <code>Map</code> instances or requiring other special
+logic should overwrite <code>handleSave()</code> with a custom
+implementation.</p>
+<p>To disable the <code>Save</code> page footer button, views extending
+this base class should overwrite the <code>handleSave</code> function
+with <code>null</code>.</p>
+<p>The invocation of this function is wrapped by
+<code>Promise.resolve()</code> so it may return Promises if needed.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>ev</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Event</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The DOM event that triggered the function.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        *
+                         | 
+                    
+                        Promise.&lt;*>
+                        
+                    
+            </td>
+            <td class="description last">Any return values of this function are discarded, but
+passed through <code>Promise.resolve()</code> to ensure that any
+returned promise runs to completion before the button
+is reenabled.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="handleSaveApply">
+            
+            handleSaveApply<span class="signature">(ev)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{*|Promise.&lt;*>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 2834
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>The handleSaveApply function is invoked when the user clicks
+the <code>Save &amp; Apply</code> button in the page action footer.</p>
+<p>The default implementation should be sufficient for most
+views using <code>form.Map()</code> based forms - it
+will first invoke
+<code>view.handleSave()</code> and then
+call <code>ui.changes.apply()</code> to start the
+modal config apply and page reload flow.</p>
+<p>Views not using <code>Map</code> instances or requiring other special
+logic should overwrite <code>handleSaveApply()</code> with a custom
+implementation.</p>
+<p>To disable the <code>Save &amp; Apply</code> page footer button, views
+extending this base class should overwrite the
+<code>handleSaveApply</code> function with <code>null</code>.</p>
+<p>The invocation of this function is wrapped by
+<code>Promise.resolve()</code> so it may return Promises if needed.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>ev</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">Event</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>The DOM event that triggered the function.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        *
+                         | 
+                    
+                        Promise.&lt;*>
+                        
+                    
+            </td>
+            <td class="description last">Any return values of this function are discarded, but
+passed through <code>Promise.resolve()</code> to ensure that any
+returned promise runs to completion before the button
+is reenabled.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="load">
+            
+            <span class="type-signature ">abstract</span>load<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{*|Promise.&lt;*>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 2725
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>The load function is invoked before the view is rendered.</p>
+<p>The invocation of this function is wrapped by
+<code>Promise.resolve()</code> so it may return Promises if needed.</p>
+<p>The return value of the function (or the resolved values
+of the promise returned by it) will be passed as first
+argument to <code>render()</code>.</p>
+<p>This function is supposed to be overwritten by subclasses,
+the default implementation does nothing.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        *
+                         | 
+                    
+                        Promise.&lt;*>
+                        
+                    
+            </td>
+            <td class="description last">May return any value or a Promise resolving to any value.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        
+            
+<dt>
+    <div class="nameContainer">
+        <h4 class="name" id="render">
+            
+            <span class="type-signature ">abstract</span>render<span class="signature">(load_results)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Node|Promise.&lt;Node>}</span>
+        </h4>
+    
+        
+        <div class="tag-source">
+            luci.js, line 2757
+        </div>
+        
+    </div>
+
+    
+</dt>
+<dd>
+    
+    
+    <div class="description">
+        <p>The render function is invoked after the
+<a href="LuCI.view.html#load"><code>load()</code></a> function and responsible
+for setting up the view contents. It must return a DOM
+<code>Node</code> or <code>DocumentFragment</code> holding the contents to
+insert into the view area.</p>
+<p>The invocation of this function is wrapped by
+<code>Promise.resolve()</code> so it may return Promises if needed.</p>
+<p>The return value of the function (or the resolved values
+of the promise returned by it) will be inserted into the
+main content area using
+<a href="LuCI.dom.html#append"><code>dom.append()</code></a>.</p>
+<p>This function is supposed to be overwritten by subclasses,
+the default implementation does nothing.</p>
+    </div>
+    
+
+    
+    
+    
+    
+    
+        
+
+<table class="params">
+    <thead>
+       <tr>
+               
+               <th>Name</th>
+               
+               
+               <th>Type</th>
+               
+               
+               
+               <th class="last">Description</th>
+       </tr>
+       </thead>
+       
+       <tbody>
+       
+       
+        <tr>
+            
+                <td class="name"><code>load_results</code></td>
+            
+            
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+|
+
+<span class="param-type">null</span>
+
+
+            
+            </td>
+            
+            
+            
+            <td class="description last">
+                
+                <p>This function will receive the return value of the
+<a href="LuCI.view.html#load"><code>view.load()</code></a> function as first
+argument.</p></td>
+        </tr>
+       
+       
+       </tbody>
+</table>
+    
+    
+    
+<dl class="details">
+    
+        
+    
+    
+    
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+</dl>
+
+    
+    
+
+    
+
+    
+    
+    
+    
+    
+    <h5>Returns:</h5>
+    
+
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Type</th>
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+    <tbody>
+    
+        <tr>
+            
+            <td class="type">
+            
+                        Node
+                         | 
+                    
+                        Promise.&lt;Node>
+                        
+                    
+            </td>
+            <td class="description last">Should return a DOM <code>Node</code> value or a <code>Promise</code> resolving
+to a <code>Node</code> value.</td>
+        </tr>
+    
+    </tbody>
+</table>
+
+    
+    
+    
+</dd>
+
+        </dl>
+    
+    
+    
+    
+    
+
+    
+</article>
+
+</section>  
+
+
+
+
+
+        
+
+        <footer>
+            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
+        </footer>
+    </div>
+</div>
+<script>prettyPrint();</script>
+<script src="scripts/jaguar.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/jsapi/fonts/OpenSans-Bold-webfont.eot b/docs/jsapi/fonts/OpenSans-Bold-webfont.eot
new file mode 100644 (file)
index 0000000..5d20d91
Binary files /dev/null and b/docs/jsapi/fonts/OpenSans-Bold-webfont.eot differ
diff --git a/docs/jsapi/fonts/OpenSans-Bold-webfont.svg b/docs/jsapi/fonts/OpenSans-Bold-webfont.svg
new file mode 100644 (file)
index 0000000..3ed7be4
--- /dev/null
@@ -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/docs/jsapi/fonts/OpenSans-Bold-webfont.woff b/docs/jsapi/fonts/OpenSans-Bold-webfont.woff
new file mode 100644 (file)
index 0000000..1205787
Binary files /dev/null and b/docs/jsapi/fonts/OpenSans-Bold-webfont.woff differ
diff --git a/docs/jsapi/fonts/OpenSans-BoldItalic-webfont.eot b/docs/jsapi/fonts/OpenSans-BoldItalic-webfont.eot
new file mode 100644 (file)
index 0000000..1f639a1
Binary files /dev/null and b/docs/jsapi/fonts/OpenSans-BoldItalic-webfont.eot differ
diff --git a/docs/jsapi/fonts/OpenSans-BoldItalic-webfont.svg b/docs/jsapi/fonts/OpenSans-BoldItalic-webfont.svg
new file mode 100644 (file)
index 0000000..6a2607b
--- /dev/null
@@ -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/docs/jsapi/fonts/OpenSans-BoldItalic-webfont.woff b/docs/jsapi/fonts/OpenSans-BoldItalic-webfont.woff
new file mode 100644 (file)
index 0000000..ed760c0
Binary files /dev/null and b/docs/jsapi/fonts/OpenSans-BoldItalic-webfont.woff differ
diff --git a/docs/jsapi/fonts/OpenSans-Italic-webfont.eot b/docs/jsapi/fonts/OpenSans-Italic-webfont.eot
new file mode 100644 (file)
index 0000000..0c8a0ae
Binary files /dev/null and b/docs/jsapi/fonts/OpenSans-Italic-webfont.eot differ
diff --git a/docs/jsapi/fonts/OpenSans-Italic-webfont.svg b/docs/jsapi/fonts/OpenSans-Italic-webfont.svg
new file mode 100644 (file)
index 0000000..e1075dc
--- /dev/null
@@ -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/docs/jsapi/fonts/OpenSans-Italic-webfont.woff b/docs/jsapi/fonts/OpenSans-Italic-webfont.woff
new file mode 100644 (file)
index 0000000..ff652e6
Binary files /dev/null and b/docs/jsapi/fonts/OpenSans-Italic-webfont.woff differ
diff --git a/docs/jsapi/fonts/OpenSans-Light-webfont.eot b/docs/jsapi/fonts/OpenSans-Light-webfont.eot
new file mode 100644 (file)
index 0000000..1486840
Binary files /dev/null and b/docs/jsapi/fonts/OpenSans-Light-webfont.eot differ
diff --git a/docs/jsapi/fonts/OpenSans-Light-webfont.svg b/docs/jsapi/fonts/OpenSans-Light-webfont.svg
new file mode 100644 (file)
index 0000000..11a472c
--- /dev/null
@@ -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/docs/jsapi/fonts/OpenSans-Light-webfont.woff b/docs/jsapi/fonts/OpenSans-Light-webfont.woff
new file mode 100644 (file)
index 0000000..e786074
Binary files /dev/null and b/docs/jsapi/fonts/OpenSans-Light-webfont.woff differ
diff --git a/docs/jsapi/fonts/OpenSans-LightItalic-webfont.eot b/docs/jsapi/fonts/OpenSans-LightItalic-webfont.eot
new file mode 100644 (file)
index 0000000..8f44592
Binary files /dev/null and b/docs/jsapi/fonts/OpenSans-LightItalic-webfont.eot differ
diff --git a/docs/jsapi/fonts/OpenSans-LightItalic-webfont.svg b/docs/jsapi/fonts/OpenSans-LightItalic-webfont.svg
new file mode 100644 (file)
index 0000000..431d7e3
--- /dev/null
@@ -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/docs/jsapi/fonts/OpenSans-LightItalic-webfont.woff b/docs/jsapi/fonts/OpenSans-LightItalic-webfont.woff
new file mode 100644 (file)
index 0000000..43e8b9e
Binary files /dev/null and b/docs/jsapi/fonts/OpenSans-LightItalic-webfont.woff differ
diff --git a/docs/jsapi/fonts/OpenSans-Regular-webfont.eot b/docs/jsapi/fonts/OpenSans-Regular-webfont.eot
new file mode 100644 (file)
index 0000000..6bbc3cf
Binary files /dev/null and b/docs/jsapi/fonts/OpenSans-Regular-webfont.eot differ
diff --git a/docs/jsapi/fonts/OpenSans-Regular-webfont.svg b/docs/jsapi/fonts/OpenSans-Regular-webfont.svg
new file mode 100644 (file)
index 0000000..25a3952
--- /dev/null
@@ -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/docs/jsapi/fonts/OpenSans-Regular-webfont.woff b/docs/jsapi/fonts/OpenSans-Regular-webfont.woff
new file mode 100644 (file)
index 0000000..e231183
Binary files /dev/null and b/docs/jsapi/fonts/OpenSans-Regular-webfont.woff differ
diff --git a/docs/jsapi/fs.js.html b/docs/jsapi/fs.js.html
new file mode 100644 (file)
index 0000000..3ee1af8
--- /dev/null
@@ -0,0 +1,350 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: fs.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: fs.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>'use strict';
+'require rpc';
+
+/**
+ * @typedef {Object} FileStatEntry
+ * @memberof LuCI.fs
+
+ * @property {string} name - Name of the directory entry
+ * @property {string} type - Type of the entry, one of `block`, `char`, `directory`, `fifo`, `symlink`, `file`, `socket` or `unknown`
+ * @property {number} size - Size in bytes
+ * @property {number} mode - Access permissions
+ * @property {number} atime - Last access time in seconds since epoch
+ * @property {number} mtime - Last modification time in seconds since epoch
+ * @property {number} ctime - Last change time in seconds since epoch
+ * @property {number} inode - Inode number
+ * @property {number} uid - Numeric owner id
+ * @property {number} gid - Numeric group id
+ */
+
+/**
+ * @typedef {Object} FileExecResult
+ * @memberof LuCI.fs
+ *
+ * @property {number} code - The exit code of the invoked command
+ * @property {string} [stdout] - The stdout produced by the command, if any
+ * @property {string} [stderr] - The stderr produced by the command, if any
+ */
+
+var callFileList, callFileStat, callFileRead, callFileWrite, callFileRemove,
+    callFileExec, callFileMD5;
+
+callFileList = rpc.declare({
+       object: 'file',
+       method: 'list',
+       params: [ 'path' ]
+});
+
+callFileStat = rpc.declare({
+       object: 'file',
+       method: 'stat',
+       params: [ 'path' ]
+});
+
+callFileRead = rpc.declare({
+       object: 'file',
+       method: 'read',
+       params: [ 'path' ]
+});
+
+callFileWrite = rpc.declare({
+       object: 'file',
+       method: 'write',
+       params: [ 'path', 'data', 'mode' ]
+});
+
+callFileRemove = rpc.declare({
+       object: 'file',
+       method: 'remove',
+       params: [ 'path' ]
+});
+
+callFileExec = rpc.declare({
+       object: 'file',
+       method: 'exec',
+       params: [ 'command', 'params', 'env' ]
+});
+
+callFileMD5 = rpc.declare({
+       object: 'file',
+       method: 'md5',
+       params: [ 'path' ]
+});
+
+var rpcErrors = [
+       null,
+       'InvalidCommandError',
+       'InvalidArgumentError',
+       'MethodNotFoundError',
+       'NotFoundError',
+       'NoDataError',
+       'PermissionError',
+       'TimeoutError',
+       'UnsupportedError'
+];
+
+function handleRpcReply(expect, rc) {
+       if (typeof(rc) == 'number' &amp;&amp; rc != 0) {
+               var e = new Error(rpc.getStatusText(rc)); e.name = rpcErrors[rc] || 'Error';
+               throw e;
+       }
+
+       if (expect) {
+               var type = Object.prototype.toString;
+
+               for (var key in expect) {
+                       if (rc != null &amp;&amp; key != '')
+                               rc = rc[key];
+
+                       if (rc == null || type.call(rc) != type.call(expect[key])) {
+                               var e = new Error(_('Unexpected reply data format')); e.name = 'TypeError';
+                               throw e;
+                       }
+
+                       break;
+               }
+       }
+
+       return rc;
+}
+
+/**
+ * @class fs
+ * @memberof LuCI
+ * @hideconstructor
+ * @classdesc
+ *
+ * Provides high level utilities to wrap file system related RPC calls.
+ * To import the class in views, use `'require fs'`, to import it in
+ * external JavaScript, use `L.require("fs").then(...)`.
+ */
+var FileSystem = L.Class.extend(/** @lends LuCI.fs.prototype */ {
+       /**
+        * Obtains a listing of the specified directory.
+        *
+        * @param {string} path
+        * The directory path to list.
+        *
+        * @returns {Promise&lt;LuCI.fs.FileStatEntry[]>}
+        * Returns a promise resolving to an array of stat detail objects or
+        * rejecting with an error stating the failure reason.
+        */
+       list: function(path) {
+               return callFileList(path).then(handleRpcReply.bind(this, { entries: [] }));
+       },
+
+       /**
+        * Return file stat information on the specified path.
+        *
+        * @param {string} path
+        * The filesystem path to stat.
+        *
+        * @returns {Promise&lt;LuCI.fs.FileStatEntry>}
+        * Returns a promise resolving to a stat detail object or
+        * rejecting with an error stating the failure reason.
+        */
+       stat: function(path) {
+               return callFileStat(path).then(handleRpcReply.bind(this, { '': {} }));
+       },
+
+       /**
+        * Read the contents of the given file and return them.
+        * Note: this function is unsuitable for obtaining binary data.
+        *
+        * @param {string} path
+        * The file path to read.
+        *
+        * @returns {Promise&lt;string>}
+        * Returns a promise resolving to a string containing the file contents or
+        * rejecting with an error stating the failure reason.
+        */
+       read: function(path) {
+               return callFileRead(path).then(handleRpcReply.bind(this, { data: '' }));
+       },
+
+       /**
+        * Write the given data to the specified file path.
+        * If the specified file path does not exist, it will be created, given
+        * sufficient permissions.
+        *
+        * Note: `data` will be converted to a string using `String(data)` or to
+        * `''` when it is `null`.
+        *
+        * @param {string} path
+        * The file path to write to.
+        *
+        * @param {*} [data]
+        * The file data to write. If it is null, it will be set to an empty
+        * string.
+        *
+        * @param {number} [mode]
+        * The permissions to use on file creation. Default is 420 (0644).
+        *
+        * @returns {Promise&lt;number>}
+        * Returns a promise resolving to `0` or rejecting with an error stating
+        * the failure reason.
+        */
+       write: function(path, data, mode) {
+               data = (data != null) ? String(data) : '';
+               mode = (mode != null) ? mode : 420; // 0644
+               return callFileWrite(path, data, mode).then(handleRpcReply.bind(this, { '': 0 }));
+       },
+
+       /**
+        * Unlink the given file.
+        *
+        * @param {string}
+        * The file path to remove.
+        *
+        * @returns {Promise&lt;number>}
+        * Returns a promise resolving to `0` or rejecting with an error stating
+        * the failure reason.
+        */
+       remove: function(path) {
+               return callFileRemove(path).then(handleRpcReply.bind(this, { '': 0 }));
+       },
+
+       /**
+        * Execute the specified command, optionally passing params and
+        * environment variables.
+        *
+        * Note: The `command` must be either the path to an executable,
+        * or a basename without arguments in which case it will be searched
+        * in $PATH. If specified, the values given in `params` will be passed
+        * as arguments to the command.
+        *
+        * The key/value pairs in the optional `env` table are translated to
+        * `setenv()` calls prior to running the command.
+        *
+        * @param {string} command
+        * The command to invoke.
+        *
+        * @param {string[]} [params]
+        * The arguments to pass to the command.
+        *
+        * @param {Object.&lt;string, string>} [env]
+        * Environment variables to set.
+        *
+        * @returns {Promise&lt;LuCI.fs.FileExecResult>}
+        * Returns a promise resolving to an object describing the execution
+        * results or rejecting with an error stating the failure reason.
+        */
+       exec: function(command, params, env) {
+               if (!Array.isArray(params))
+                       params = null;
+
+               if (!L.isObject(env))
+                       env = null;
+
+               return callFileExec(command, params, env).then(handleRpcReply.bind(this, { '': {} }));
+       },
+
+       /**
+        * Read the contents of the given file, trim leading and trailing white
+        * space and return the trimmed result. In case of errors, return an empty
+        * string instead.
+        *
+        * Note: this function is useful to read single-value files in `/sys`
+        * or `/proc`.
+        *
+        * This function is guaranteed to not reject its promises, on failure,
+        * an empty string will be returned.
+        *
+        * @param {string} path
+        * The file path to read.
+        *
+        * @returns {Promise&lt;string>}
+        * Returns a promise resolving to the file contents or the empty string
+        * on failure.
+        */
+       trimmed: function(path) {
+               return L.resolveDefault(this.read(path), '').then(function(s) {
+                       return s.trim();
+               });
+       },
+
+       /**
+        * Read the contents of the given file, split it into lines, trim
+        * leading and trailing white space of each line and return the
+        * resulting array.
+        *
+        * This function is guaranteed to not reject its promises, on failure,
+        * an empty array will be returned.
+        *
+        * @param {string} path
+        * The file path to read.
+        *
+        * @returns {Promise&lt;string[]>}
+        * Returns a promise resolving to an array containing the stripped lines
+        * of the given file or `[]` on failure.
+        */
+       lines: function(path) {
+               return L.resolveDefault(this.read(path), '').then(function(s) {
+                       var lines = [];
+
+                       s = s.trim();
+
+                       if (s != '') {
+                               var l = s.split(/\n/);
+
+                               for (var i = 0; i &lt; l.length; i++)
+                                       lines.push(l[i].trim());
+                       }
+
+                       return lines;
+               });
+       }
+});
+
+return FileSystem;
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="LuCI.html">LuCI</a></li><li><a href="LuCI.Class.html">Class</a></li><li><a href="LuCI.dom.html">dom</a></li><li><a href="LuCI.fs.html">fs</a></li><li><a href="LuCI.Headers.html">Headers</a></li><li><a href="LuCI.Network.html">Network</a></li><li><a href="LuCI.Network.Device.html">Device</a></li><li><a href="LuCI.Network.Hosts.html">Hosts</a></li><li><a href="LuCI.Network.Protocol.html">Protocol</a></li><li><a href="LuCI.Network.WifiDevice.html">WifiDevice</a></li><li><a href="LuCI.Network.WifiNetwork.html">WifiNetwork</a></li><li><a href="LuCI.Poll.html">Poll</a></li><li><a href="LuCI.Request.html">Request</a></li><li><a href="LuCI.Request.poll.html">poll</a></li><li><a href="LuCI.Response.html">Response</a></li><li><a href="LuCI.rpc.html">rpc</a></li><li><a href="LuCI.uci.html">uci</a></li><li><a href="LuCI.view.html">view</a></li><li><a href="LuCI.XHR.html">XHR</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 09:33:05 GMT+0100 (Central European Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/docs/jsapi/index.html b/docs/jsapi/index.html
new file mode 100644 (file)
index 0000000..550ed9b
--- /dev/null
@@ -0,0 +1,1131 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>Index</title>
+    
+    
+    <script src="scripts/prettify/prettify.js"></script>
+    <script src="scripts/prettify/lang-css.js"></script>
+    <script src="scripts/jquery.min.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/bootstrap.min.css">
+    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
+    
+    
+    <script>
+    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
+    </script>
+    
+
+    
+</head>
+<body>
+<div id="wrap" class="clearfix">
+    
+<div class="navigation">
+    <h3 class="applicationName"><a href="index.html"></a></h3>
+
+    <div class="search">
+        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
+    </div>
+    <ul class="list">
+    
+        <li class="item" data-name="LuCI">
+            <span class="title">
+                <a href="LuCI.html">LuCI</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
+            
+                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
+            
+                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
+            
+                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
+            
+                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
+            
+                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
+            
+                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
+            
+                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
+            
+                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
+            
+                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
+            
+                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
+            
+                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
+            
+                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
+            
+                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
+            
+                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
+            
+                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
+            
+                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
+            
+                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
+            
+                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Class">
+            <span class="title">
+                <a href="LuCI.Class.html">LuCI.Class</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
+            
+                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
+            
+                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
+            
+                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
+            
+                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
+            
+                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.dom">
+            <span class="title">
+                <a href="LuCI.dom.html">LuCI.dom</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
+            
+                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
+            
+                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
+            
+                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
+            
+                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
+            
+                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
+            
+                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
+            
+                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
+            
+                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
+            
+                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
+            
+                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.fs">
+            <span class="title">
+                <a href="LuCI.fs.html">LuCI.fs</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
+            
+                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
+            
+                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
+            
+                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
+            
+                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
+            
+                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
+            
+                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
+            
+                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Headers">
+            <span class="title">
+                <a href="LuCI.Headers.html">LuCI.Headers</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
+            
+                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network">
+            <span class="title">
+                <a href="LuCI.Network.html">LuCI.Network</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
+            
+                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
+            
+                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
+            
+                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
+            
+                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
+            
+                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
+            
+                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
+            
+                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
+            
+                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
+            
+                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
+            
+                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
+            
+                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
+            
+                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
+            
+                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
+            
+                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
+            
+                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
+            
+                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
+            
+                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
+            
+                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
+            
+                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Device">
+            <span class="title">
+                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
+            
+                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
+            
+                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
+            
+                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
+            
+                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
+            
+                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
+            
+                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
+            
+                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Hosts">
+            <span class="title">
+                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.Protocol">
+            <span class="title">
+                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
+            
+                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiDevice">
+            <span class="title">
+                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Network.WifiNetwork">
+            <span class="title">
+                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
+            
+                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Poll">
+            <span class="title">
+                <a href="LuCI.Poll.html">LuCI.Poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request">
+            <span class="title">
+                <a href="LuCI.Request.html">LuCI.Request</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
+            
+                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
+            
+                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
+            
+                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Request.poll">
+            <span class="title">
+                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
+            
+                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
+            
+                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
+            
+                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.Response">
+            <span class="title">
+                <a href="LuCI.Response.html">LuCI.Response</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            <span class="subtitle">Members</span>
+            
+                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
+            
+                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
+            
+                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
+            
+                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
+            
+                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
+            
+                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
+            
+                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
+            
+                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.rpc">
+            <span class="title">
+                <a href="LuCI.rpc.html">LuCI.rpc</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
+            
+                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
+            
+                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
+            
+                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
+            
+                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
+            
+                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
+            
+                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
+            
+                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
+            
+                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
+            
+                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.uci">
+            <span class="title">
+                <a href="LuCI.uci.html">LuCI.uci</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            <span class="subtitle">Typedefs</span>
+            
+                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
+            
+                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
+            
+                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
+            
+                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
+            
+                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
+            
+                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
+            
+                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
+            
+                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
+            
+                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
+            
+                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
+            
+                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
+            
+                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
+            
+                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
+            
+                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
+            
+                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
+            
+                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
+            
+                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
+            
+                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
+            
+                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.view">
+            <span class="title">
+                <a href="LuCI.view.html">LuCI.view</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
+            
+                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
+            
+                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
+            
+                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
+            
+                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
+            
+                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+        <li class="item" data-name="LuCI.XHR">
+            <span class="title">
+                <a href="LuCI.XHR.html">LuCI.XHR</a>
+                
+            </span>
+            <ul class="members itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="typedefs itemMembers">
+            
+            </ul>
+            <ul class="methods itemMembers">
+            
+            <span class="subtitle">Methods</span>
+            
+                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
+            
+                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
+            
+                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
+            
+                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
+            
+                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
+            
+                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
+            
+            </ul>
+            <ul class="events itemMembers">
+            
+            </ul>
+        </li>
+    
+    </ul>
+</div>
+    <div class="main">
+        <h1 class="page-title" data-filename="index.html">Index</h1>
+        
+
+
+    
+
+
+    <h3> </h3>
+
+
+
+
+
+
+
+
+    
+
+
+
+
+    <section>
+        <article class="readme"><h1>OpenWrt luci feed</h1>
+<p><a target="_blank" href="https://hosted.weblate.org/engage/openwrt/?utm_source=widget"><img src="https://hosted.weblate.org/widgets/openwrt/-/svg-badge.svg" alt="Translation status"></a></p>
+<h2>Description</h2>
+<p>This is the OpenWrt &quot;luci&quot;-feed containing LuCI - OpenWrt Configuration Interface.</p>
+<h2>Usage</h2>
+<p>This feed is enabled by default. Your feeds.conf.default (or feeds.conf) should contain a line like:</p>
+<pre class="prettyprint source"><code>src-git luci https://github.com/openwrt/luci.git
+</code></pre>
+<p>To install all its package definitions, run:</p>
+<pre class="prettyprint source"><code>./scripts/feeds update luci
+./scripts/feeds install -a -p luci
+</code></pre>
+<h2>API Reference</h2>
+<p>You can browse the generated API documentation directly on Github.</p>
+<ul>
+<li><a target="_blank" href="http://htmlpreview.github.io/?http://raw.githubusercontent.com/openwrt/luci/master/documentation/api/index.html">Server side Lua APIs</a></li>
+<li><a target="_blank" href="http://htmlpreview.github.io/?http://raw.githubusercontent.com/openwrt/luci/master/documentation/jsapi/index.html">Client side JavaScript APIs</a></li>
+</ul>
+<h2>Development</h2>
+<p>Documentation for developing and extending LuCI can be found <a target="_blank" href="https://github.com/openwrt/luci/wiki">in the Wiki</a></p>
+<h2>License</h2>
+<p>See <a href="LICENSE">LICENSE</a> file.</p>
+<h2>Package Guidelines</h2>
+<p>See <a href="CONTRIBUTING.md">CONTRIBUTING.md</a> file.</p>
+<h2>Translation status</h2>
+<p><a target="_blank" href="https://hosted.weblate.org/engage/openwrt/?utm_source=widget"><img src="https://hosted.weblate.org/widgets/openwrt/-/multi-auto.svg" alt="Translation status"></a></p></article>
+    </section>
+
+
+
+
+
+
+        
+
+        <footer>
+            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
+        </footer>
+    </div>
+</div>
+<script>prettyPrint();</script>
+<script src="scripts/jaguar.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/jsapi/luci.js.html b/docs/jsapi/luci.js.html
new file mode 100644 (file)
index 0000000..7cad32c
--- /dev/null
@@ -0,0 +1,3125 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: luci.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: luci.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/**
+ * @class LuCI
+ * @classdesc
+ *
+ * This is the LuCI base class. It is automatically instantiated and
+ * accessible using the global `L` variable.
+ *
+ * @param {Object} env
+ * The environment settings to use for the LuCI runtime.
+ */
+
+(function(window, document, undefined) {
+       'use strict';
+
+       /* Object.assign polyfill for IE */
+       if (typeof Object.assign !== 'function') {
+               Object.defineProperty(Object, 'assign', {
+                       value: function assign(target, varArgs) {
+                               if (target == null)
+                                       throw new TypeError('Cannot convert undefined or null to object');
+
+                               var to = Object(target);
+
+                               for (var index = 1; index &lt; arguments.length; index++)
+                                       if (arguments[index] != null)
+                                               for (var nextKey in arguments[index])
+                                                       if (Object.prototype.hasOwnProperty.call(arguments[index], nextKey))
+                                                               to[nextKey] = arguments[index][nextKey];
+
+                               return to;
+                       },
+                       writable: true,
+                       configurable: true
+               });
+       }
+
+       /* Promise.finally polyfill */
+       if (typeof Promise.prototype.finally !== 'function') {
+               Promise.prototype.finally = function(fn) {
+                       var onFinally = function(cb) {
+                               return Promise.resolve(fn.call(this)).then(cb);
+                       };
+
+                       return this.then(
+                               function(result) { return onFinally.call(this, function() { return result }) },
+                               function(reason) { return onFinally.call(this, function() { return Promise.reject(reason) }) }
+                       );
+               };
+       }
+
+       /*
+        * Class declaration and inheritance helper
+        */
+
+       var toCamelCase = function(s) {
+               return s.replace(/(?:^|[\. -])(.)/g, function(m0, m1) { return m1.toUpperCase() });
+       };
+
+       /**
+        * @class Class
+        * @hideconstructor
+        * @memberof LuCI
+        * @classdesc
+        *
+        * `LuCI.Class` is the abstract base class all LuCI classes inherit from.
+        *
+        * It provides simple means to create subclasses of given classes and
+        * implements prototypal inheritance.
+        */
+       var superContext = null, Class = Object.assign(function() {}, {
+               /**
+                * Extends this base class with the properties described in
+                * `properties` and returns a new subclassed Class instance
+                *
+                * @memberof LuCI.Class
+                *
+                * @param {Object&lt;string, *>} properties
+                * An object describing the properties to add to the new
+                * subclass.
+                *
+                * @returns {LuCI.Class}
+                * Returns a new LuCI.Class sublassed from this class, extended
+                * by the given properties and with its prototype set to this base
+                * class to enable inheritance. The resulting value represents a
+                * class constructor and can be instantiated with `new`.
+                */
+               extend: function(properties) {
+                       var props = {
+                               __base__: { value: this.prototype },
+                               __name__: { value: properties.__name__ || 'anonymous' }
+                       };
+
+                       var ClassConstructor = function() {
+                               if (!(this instanceof ClassConstructor))
+                                       throw new TypeError('Constructor must not be called without "new"');
+
+                               if (Object.getPrototypeOf(this).hasOwnProperty('__init__')) {
+                                       if (typeof(this.__init__) != 'function')
+                                               throw new TypeError('Class __init__ member is not a function');
+
+                                       this.__init__.apply(this, arguments)
+                               }
+                               else {
+                                       this.super('__init__', arguments);
+                               }
+                       };
+
+                       for (var key in properties)
+                               if (!props[key] &amp;&amp; properties.hasOwnProperty(key))
+                                       props[key] = { value: properties[key], writable: true };
+
+                       ClassConstructor.prototype = Object.create(this.prototype, props);
+                       ClassConstructor.prototype.constructor = ClassConstructor;
+                       Object.assign(ClassConstructor, this);
+                       ClassConstructor.displayName = toCamelCase(props.__name__.value + 'Class');
+
+                       return ClassConstructor;
+               },
+
+               /**
+                * Extends this base class with the properties described in
+                * `properties`, instantiates the resulting subclass using
+                * the additional optional arguments passed to this function
+                * and returns the resulting subclassed Class instance.
+                *
+                * This function serves as a convenience shortcut for
+                * {@link LuCI.Class.extend Class.extend()} and subsequent
+                * `new`.
+                *
+                * @memberof LuCI.Class
+                *
+                * @param {Object&lt;string, *>} properties
+                * An object describing the properties to add to the new
+                * subclass.
+                *
+                * @param {...*} [new_args]
+                * Specifies arguments to be passed to the subclass constructor
+                * as-is in order to instantiate the new subclass.
+                *
+                * @returns {LuCI.Class}
+                * Returns a new LuCI.Class instance extended by the given
+                * properties with its prototype set to this base class to
+                * enable inheritance.
+                */
+               singleton: function(properties /*, ... */) {
+                       return Class.extend(properties)
+                               .instantiate(Class.prototype.varargs(arguments, 1));
+               },
+
+               /**
+                * Calls the class constructor using `new` with the given argument
+                * array being passed as variadic parameters to the constructor.
+                *
+                * @memberof LuCI.Class
+                *
+                * @param {Array&lt;*>} params
+                * An array of arbitrary values which will be passed as arguments
+                * to the constructor function.
+                *
+                * @param {...*} [new_args]
+                * Specifies arguments to be passed to the subclass constructor
+                * as-is in order to instantiate the new subclass.
+                *
+                * @returns {LuCI.Class}
+                * Returns a new LuCI.Class instance extended by the given
+                * properties with its prototype set to this base class to
+                * enable inheritance.
+                */
+               instantiate: function(args) {
+                       return new (Function.prototype.bind.apply(this,
+                               Class.prototype.varargs(args, 0, null)))();
+               },
+
+               /* unused */
+               call: function(self, method) {
+                       if (typeof(this.prototype[method]) != 'function')
+                               throw new ReferenceError(method + ' is not defined in class');
+
+                       return this.prototype[method].apply(self, self.varargs(arguments, 1));
+               },
+
+               /**
+                * Checks whether the given class value is a subclass of this class.
+                *
+                * @memberof LuCI.Class
+                *
+                * @param {LuCI.Class} classValue
+                * The class object to test.
+                *
+                * @returns {boolean}
+                * Returns `true` when the given `classValue` is a subclass of this
+                * class or `false` if the given value is not a valid class or not
+                * a subclass of this class'.
+                */
+               isSubclass: function(classValue) {
+                       return (classValue != null &amp;&amp;
+                               typeof(classValue) == 'function' &amp;&amp;
+                               classValue.prototype instanceof this);
+               },
+
+               prototype: {
+                       /**
+                        * Extract all values from the given argument array beginning from
+                        * `offset` and prepend any further given optional parameters to
+                        * the beginning of the resulting array copy.
+                        *
+                        * @memberof LuCI.Class
+                        * @instance
+                        *
+                        * @param {Array&lt;*>} args
+                        * The array to extract the values from.
+                        *
+                        * @param {number} offset
+                        * The offset from which to extract the values. An offset of `0`
+                        * would copy all values till the end.
+                        *
+                        * @param {...*} [extra_args]
+                        * Extra arguments to add to prepend to the resultung array.
+                        *
+                        * @returns {Array&lt;*>}
+                        * Returns a new array consisting of the optional extra arguments
+                        * and the values extracted from the `args` array beginning with
+                        * `offset`.
+                        */
+                       varargs: function(args, offset /*, ... */) {
+                               return Array.prototype.slice.call(arguments, 2)
+                                       .concat(Array.prototype.slice.call(args, offset));
+                       },
+
+                       /**
+                        * Walks up the parent class chain and looks for a class member
+                        * called `key` in any of the parent classes this class inherits
+                        * from. Returns the member value of the superclass or calls the
+                        * member as function and returns its return value when the
+                        * optional `callArgs` array is given.
+                        *
+                        * This function has two signatures and is sensitive to the
+                        * amount of arguments passed to it:
+                        *  - `super('key')` -
+                        *    Returns the value of `key` when found within one of the
+                        *    parent classes.
+                        *  - `super('key', ['arg1', 'arg2'])` -
+                        *    Calls the `key()` method with parameters `arg1` and `arg2`
+                        *    when found within one of the parent classes.
+                        *
+                        * @memberof LuCI.Class
+                        * @instance
+                        *
+                        * @param {string} key
+                        * The name of the superclass member to retrieve.
+                        *
+                        * @param {Array&lt;*>} [callArgs]
+                        * An optional array of function call parameters to use. When
+                        * this parameter is specified, the found member value is called
+                        * as function using the values of this array as arguments.
+                        *
+                        * @throws {ReferenceError}
+                        * Throws a `ReferenceError` when `callArgs` are specified and
+                        * the found member named by `key` is not a function value.
+                        *
+                        * @returns {*|null}
+                        * Returns the value of the found member or the return value of
+                        * the call to the found method. Returns `null` when no member
+                        * was found in the parent class chain or when the call to the
+                        * superclass method returned `null`.
+                        */
+                       super: function(key, callArgs) {
+                               for (superContext = Object.getPrototypeOf(superContext ||
+                                                                         Object.getPrototypeOf(this));
+                                    superContext &amp;&amp; !superContext.hasOwnProperty(key);
+                                    superContext = Object.getPrototypeOf(superContext)) { }
+
+                               if (!superContext)
+                                       return null;
+
+                               var res = superContext[key];
+
+                               if (arguments.length > 1) {
+                                       if (typeof(res) != 'function')
+                                               throw new ReferenceError(key + ' is not a function in base class');
+
+                                       if (typeof(callArgs) != 'object')
+                                               callArgs = this.varargs(arguments, 1);
+
+                                       res = res.apply(this, callArgs);
+                               }
+
+                               superContext = null;
+
+                               return res;
+                       },
+
+                       /**
+                        * Returns a string representation of this class.
+                        *
+                        * @returns {string}
+                        * Returns a string representation of this class containing the
+                        * constructor functions `displayName` and describing the class
+                        * members and their respective types.
+                        */
+                       toString: function() {
+                               var s = '[' + this.constructor.displayName + ']', f = true;
+                               for (var k in this) {
+                                       if (this.hasOwnProperty(k)) {
+                                               s += (f ? ' {\n' : '') + '  ' + k + ': ' + typeof(this[k]) + '\n';
+                                               f = false;
+                                       }
+                               }
+                               return s + (f ? '' : '}');
+                       }
+               }
+       });
+
+
+       /**
+        * @class
+        * @memberof LuCI
+        * @hideconstructor
+        * @classdesc
+        *
+        * The `Headers` class is an internal utility class exposed in HTTP
+        * response objects using the `response.headers` property.
+        */
+       var Headers = Class.extend(/** @lends LuCI.Headers.prototype */ {
+               __name__: 'LuCI.XHR.Headers',
+               __init__: function(xhr) {
+                       var hdrs = this.headers = {};
+                       xhr.getAllResponseHeaders().split(/\r\n/).forEach(function(line) {
+                               var m = /^([^:]+):(.*)$/.exec(line);
+                               if (m != null)
+                                       hdrs[m[1].trim().toLowerCase()] = m[2].trim();
+                       });
+               },
+
+               /**
+                * Checks whether the given header name is present.
+                * Note: Header-Names are case-insensitive.
+                *
+                * @instance
+                * @memberof LuCI.Headers
+                * @param {string} name
+                * The header name to check
+                *
+                * @returns {boolean}
+                * Returns `true` if the header name is present, `false` otherwise
+                */
+               has: function(name) {
+                       return this.headers.hasOwnProperty(String(name).toLowerCase());
+               },
+
+               /**
+                * Returns the value of the given header name.
+                * Note: Header-Names are case-insensitive.
+                *
+                * @instance
+                * @memberof LuCI.Headers
+                * @param {string} name
+                * The header name to read
+                *
+                * @returns {string|null}
+                * The value of the given header name or `null` if the header isn't present.
+                */
+               get: function(name) {
+                       var key = String(name).toLowerCase();
+                       return this.headers.hasOwnProperty(key) ? this.headers[key] : null;
+               }
+       });
+
+       /**
+        * @class
+        * @memberof LuCI
+        * @hideconstructor
+        * @classdesc
+        *
+        * The `Response` class is an internal utility class representing HTTP responses.
+        */
+       var Response = Class.extend({
+               __name__: 'LuCI.XHR.Response',
+               __init__: function(xhr, url, duration, headers, content) {
+                       /**
+                        * Describes whether the response is successful (status codes `200..299`) or not
+                        * @instance
+                        * @memberof LuCI.Response
+                        * @name ok
+                        * @type {boolean}
+                        */
+                       this.ok = (xhr.status >= 200 &amp;&amp; xhr.status &lt;= 299);
+
+                       /**
+                        * The numeric HTTP status code of the response
+                        * @instance
+                        * @memberof LuCI.Response
+                        * @name status
+                        * @type {number}
+                        */
+                       this.status = xhr.status;
+
+                       /**
+                        * The HTTP status description message of the response
+                        * @instance
+                        * @memberof LuCI.Response
+                        * @name statusText
+                        * @type {string}
+                        */
+                       this.statusText = xhr.statusText;
+
+                       /**
+                        * The HTTP headers of the response
+                        * @instance
+                        * @memberof LuCI.Response
+                        * @name headers
+                        * @type {LuCI.Headers}
+                        */
+                       this.headers = (headers != null) ? headers : new Headers(xhr);
+
+                       /**
+                        * The total duration of the HTTP request in milliseconds
+                        * @instance
+                        * @memberof LuCI.Response
+                        * @name duration
+                        * @type {number}
+                        */
+                       this.duration = duration;
+
+                       /**
+                        * The final URL of the request, i.e. after following redirects.
+                        * @instance
+                        * @memberof LuCI.Response
+                        * @name url
+                        * @type {string}
+                        */
+                       this.url = url;
+
+                       /* privates */
+                       this.xhr = xhr;
+
+                       if (content != null &amp;&amp; typeof(content) == 'object') {
+                               this.responseJSON = content;
+                               this.responseText = null;
+                       }
+                       else if (content != null) {
+                               this.responseJSON = null;
+                               this.responseText = String(content);
+                       }
+                       else {
+                               this.responseJSON = null;
+                               this.responseText = xhr.responseText;
+                       }
+               },
+
+               /**
+                * Clones the given response object, optionally overriding the content
+                * of the cloned instance.
+                *
+                * @instance
+                * @memberof LuCI.Response
+                * @param {*} [content]
+                * Override the content of the cloned response. Object values will be
+                * treated as JSON response data, all other types will be converted
+                * using `String()` and treated as response text.
+                *
+                * @returns {LuCI.Response}
+                * The cloned `Response` instance.
+                */
+               clone: function(content) {
+                       var copy = new Response(this.xhr, this.url, this.duration, this.headers, content);
+
+                       copy.ok = this.ok;
+                       copy.status = this.status;
+                       copy.statusText = this.statusText;
+
+                       return copy;
+               },
+
+               /**
+                * Access the response content as JSON data.
+                *
+                * @instance
+                * @memberof LuCI.Response
+                * @throws {SyntaxError}
+                * Throws `SyntaxError` if the content isn't valid JSON.
+                *
+                * @returns {*}
+                * The parsed JSON data.
+                */
+               json: function() {
+                       if (this.responseJSON == null)
+                               this.responseJSON = JSON.parse(this.responseText);
+
+                       return this.responseJSON;
+               },
+
+               /**
+                * Access the response content as string.
+                *
+                * @instance
+                * @memberof LuCI.Response
+                * @returns {string}
+                * The response content.
+                */
+               text: function() {
+                       if (this.responseText == null &amp;&amp; this.responseJSON != null)
+                               this.responseText = JSON.stringify(this.responseJSON);
+
+                       return this.responseText;
+               }
+       });
+
+
+       var requestQueue = [];
+
+       function isQueueableRequest(opt) {
+               if (!classes.rpc)
+                       return false;
+
+               if (opt.method != 'POST' || typeof(opt.content) != 'object')
+                       return false;
+
+               if (opt.nobatch === true)
+                       return false;
+
+               var rpcBaseURL = Request.expandURL(classes.rpc.getBaseURL());
+
+               return (rpcBaseURL != null &amp;&amp; opt.url.indexOf(rpcBaseURL) == 0);
+       }
+
+       function flushRequestQueue() {
+               if (!requestQueue.length)
+                       return;
+
+               var reqopt = Object.assign({}, requestQueue[0][0], { content: [], nobatch: true }),
+                   batch = [];
+
+               for (var i = 0; i &lt; requestQueue.length; i++) {
+                       batch[i] = requestQueue[i];
+                       reqopt.content[i] = batch[i][0].content;
+               }
+
+               requestQueue.length = 0;
+
+               Request.request(rpcBaseURL, reqopt).then(function(reply) {
+                       var json = null, req = null;
+
+                       try { json = reply.json() }
+                       catch(e) { }
+
+                       while ((req = batch.shift()) != null)
+                               if (Array.isArray(json) &amp;&amp; json.length)
+                                       req[2].call(reqopt, reply.clone(json.shift()));
+                               else
+                                       req[1].call(reqopt, new Error('No related RPC reply'));
+               }).catch(function(error) {
+                       var req = null;
+
+                       while ((req = batch.shift()) != null)
+                               req[1].call(reqopt, error);
+               });
+       }
+
+       /**
+        * @class
+        * @memberof LuCI
+        * @hideconstructor
+        * @classdesc
+        *
+        * The `Request` class allows initiating HTTP requests and provides utilities
+        * for dealing with responses.
+        */
+       var Request = Class.singleton(/** @lends LuCI.Request.prototype */ {
+               __name__: 'LuCI.Request',
+
+               interceptors: [],
+
+               /**
+                * Turn the given relative URL into an absolute URL if necessary.
+                *
+                * @instance
+                * @memberof LuCI.Request
+                * @param {string} url
+                * The URL to convert.
+                *
+                * @returns {string}
+                * The absolute URL derived from the given one, or the original URL
+                * if it already was absolute.
+                */
+               expandURL: function(url) {
+                       if (!/^(?:[^/]+:)?\/\//.test(url))
+                               url = location.protocol + '//' + location.host + url;
+
+                       return url;
+               },
+
+               /**
+                * @typedef {Object} RequestOptions
+                * @memberof LuCI.Request
+                *
+                * @property {string} [method=GET]
+                * The HTTP method to use, e.g. `GET` or `POST`.
+                *
+                * @property {Object&lt;string, Object|string>} [query]
+                * Query string data to append to the URL. Non-string values of the
+                * given object will be converted to JSON.
+                *
+                * @property {boolean} [cache=false]
+                * Specifies whether the HTTP response may be retrieved from cache.
+                *
+                * @property {string} [username]
+                * Provides a username for HTTP basic authentication.
+                *
+                * @property {string} [password]
+                * Provides a password for HTTP basic authentication.
+                *
+                * @property {number} [timeout]
+                * Specifies the request timeout in seconds.
+                *
+                * @property {boolean} [credentials=false]
+                * Whether to include credentials such as cookies in the request.
+                *
+                * @property {*} [content]
+                * Specifies the HTTP message body to send along with the request.
+                * If the value is a function, it is invoked and the return value
+                * used as content, if it is a FormData instance, it is used as-is,
+                * if it is an object, it will be converted to JSON, in all other
+                * cases it is converted to a string.
+                *
+            * @property {Object&lt;string, string>} [header]
+            * Specifies HTTP headers to set for the request.
+            *
+            * @property {function} [progress]
+            * An optional request callback function which receives ProgressEvent
+            * instances as sole argument during the HTTP request transfer.
+                */
+
+               /**
+                * Initiate an HTTP request to the given target.
+                *
+                * @instance
+                * @memberof LuCI.Request
+                * @param {string} target
+                * The URL to request.
+                *
+                * @param {LuCI.Request.RequestOptions} [options]
+                * Additional options to configure the request.
+                *
+                * @returns {Promise&lt;LuCI.Response>}
+                * The resulting HTTP response.
+                */
+               request: function(target, options) {
+                       var state = { xhr: new XMLHttpRequest(), url: this.expandURL(target), start: Date.now() },
+                           opt = Object.assign({}, options, state),
+                           content = null,
+                           contenttype = null,
+                           callback = this.handleReadyStateChange;
+
+                       return new Promise(function(resolveFn, rejectFn) {
+                               opt.xhr.onreadystatechange = callback.bind(opt, resolveFn, rejectFn);
+                               opt.method = String(opt.method || 'GET').toUpperCase();
+
+                               if ('query' in opt) {
+                                       var q = (opt.query != null) ? Object.keys(opt.query).map(function(k) {
+                                               if (opt.query[k] != null) {
+                                                       var v = (typeof(opt.query[k]) == 'object')
+                                                               ? JSON.stringify(opt.query[k])
+                                                               : String(opt.query[k]);
+
+                                                       return '%s=%s'.format(encodeURIComponent(k), encodeURIComponent(v));
+                                               }
+                                               else {
+                                                       return encodeURIComponent(k);
+                                               }
+                                       }).join('&amp;') : '';
+
+                                       if (q !== '') {
+                                               switch (opt.method) {
+                                               case 'GET':
+                                               case 'HEAD':
+                                               case 'OPTIONS':
+                                                       opt.url += ((/\?/).test(opt.url) ? '&amp;' : '?') + q;
+                                                       break;
+
+                                               default:
+                                                       if (content == null) {
+                                                               content = q;
+                                                               contenttype = 'application/x-www-form-urlencoded';
+                                                       }
+                                               }
+                                       }
+                               }
+
+                               if (!opt.cache)
+                                       opt.url += ((/\?/).test(opt.url) ? '&amp;' : '?') + (new Date()).getTime();
+
+                               if (isQueueableRequest(opt)) {
+                                       requestQueue.push([opt, rejectFn, resolveFn]);
+                                       requestAnimationFrame(flushRequestQueue);
+                                       return;
+                               }
+
+                               if ('username' in opt &amp;&amp; 'password' in opt)
+                                       opt.xhr.open(opt.method, opt.url, true, opt.username, opt.password);
+                               else
+                                       opt.xhr.open(opt.method, opt.url, true);
+
+                               opt.xhr.responseType = 'text';
+
+                               if ('overrideMimeType' in opt.xhr)
+                                       opt.xhr.overrideMimeType('application/octet-stream');
+
+                               if ('timeout' in opt)
+                                       opt.xhr.timeout = +opt.timeout;
+
+                               if ('credentials' in opt)
+                                       opt.xhr.withCredentials = !!opt.credentials;
+
+                               if (opt.content != null) {
+                                       switch (typeof(opt.content)) {
+                                       case 'function':
+                                               content = opt.content(xhr);
+                                               break;
+
+                                       case 'object':
+                                               if (!(opt.content instanceof FormData)) {
+                                                       content = JSON.stringify(opt.content);
+                                                       contenttype = 'application/json';
+                                               }
+                                               else {
+                                                       content = opt.content;
+                                               }
+                                               break;
+
+                                       default:
+                                               content = String(opt.content);
+                                       }
+                               }
+
+                               if ('headers' in opt)
+                                       for (var header in opt.headers)
+                                               if (opt.headers.hasOwnProperty(header)) {
+                                                       if (header.toLowerCase() != 'content-type')
+                                                               opt.xhr.setRequestHeader(header, opt.headers[header]);
+                                                       else
+                                                               contenttype = opt.headers[header];
+                                               }
+
+                               if ('progress' in opt &amp;&amp; 'upload' in opt.xhr)
+                                       opt.xhr.upload.addEventListener('progress', opt.progress);
+
+                               if (contenttype != null)
+                                       opt.xhr.setRequestHeader('Content-Type', contenttype);
+
+                               try {
+                                       opt.xhr.send(content);
+                               }
+                               catch (e) {
+                                       rejectFn.call(opt, e);
+                               }
+                       });
+               },
+
+               handleReadyStateChange: function(resolveFn, rejectFn, ev) {
+                       var xhr = this.xhr,
+                           duration = Date.now() - this.start;
+
+                       if (xhr.readyState !== 4)
+                               return;
+
+                       if (xhr.status === 0 &amp;&amp; xhr.statusText === '') {
+                               if (duration >= this.timeout)
+                                       rejectFn.call(this, new Error('XHR request timed out'));
+                               else
+                                       rejectFn.call(this, new Error('XHR request aborted by browser'));
+                       }
+                       else {
+                               var response = new Response(
+                                       xhr, xhr.responseURL || this.url, duration);
+
+                               Promise.all(Request.interceptors.map(function(fn) { return fn(response) }))
+                                       .then(resolveFn.bind(this, response))
+                                       .catch(rejectFn.bind(this));
+                       }
+               },
+
+               /**
+                * Initiate an HTTP GET request to the given target.
+                *
+                * @instance
+                * @memberof LuCI.Request
+                * @param {string} target
+                * The URL to request.
+                *
+                * @param {LuCI.Request.RequestOptions} [options]
+                * Additional options to configure the request.
+                *
+                * @returns {Promise&lt;LuCI.Response>}
+                * The resulting HTTP response.
+                */
+               get: function(url, options) {
+                       return this.request(url, Object.assign({ method: 'GET' }, options));
+               },
+
+               /**
+                * Initiate an HTTP POST request to the given target.
+                *
+                * @instance
+                * @memberof LuCI.Request
+                * @param {string} target
+                * The URL to request.
+                *
+                * @param {*} [data]
+                * The request data to send, see {@link LuCI.Request.RequestOptions} for details.
+                *
+                * @param {LuCI.Request.RequestOptions} [options]
+                * Additional options to configure the request.
+                *
+                * @returns {Promise&lt;LuCI.Response>}
+                * The resulting HTTP response.
+                */
+               post: function(url, data, options) {
+                       return this.request(url, Object.assign({ method: 'POST', content: data }, options));
+               },
+
+               /**
+                * Interceptor functions are invoked whenever an HTTP reply is received, in the order
+                * these functions have been registered.
+                * @callback LuCI.Request.interceptorFn
+                * @param {LuCI.Response} res
+                * The HTTP response object
+                */
+
+               /**
+                * Register an HTTP response interceptor function. Interceptor
+                * functions are useful to perform default actions on incoming HTTP
+                * responses, such as checking for expired authentication or for
+                * implementing request retries before returning a failure.
+                *
+                * @instance
+                * @memberof LuCI.Request
+                * @param {LuCI.Request.interceptorFn} interceptorFn
+                * The interceptor function to register.
+                *
+                * @returns {LuCI.Request.interceptorFn}
+                * The registered function.
+                */
+               addInterceptor: function(interceptorFn) {
+                       if (typeof(interceptorFn) == 'function')
+                               this.interceptors.push(interceptorFn);
+                       return interceptorFn;
+               },
+
+               /**
+                * Remove an HTTP response interceptor function. The passed function
+                * value must be the very same value that was used to register the
+                * function.
+                *
+                * @instance
+                * @memberof LuCI.Request
+                * @param {LuCI.Request.interceptorFn} interceptorFn
+                * The interceptor function to remove.
+                *
+                * @returns {boolean}
+                * Returns `true` if any function has been removed, else `false`.
+                */
+               removeInterceptor: function(interceptorFn) {
+                       var oldlen = this.interceptors.length, i = oldlen;
+                       while (i--)
+                               if (this.interceptors[i] === interceptorFn)
+                                       this.interceptors.splice(i, 1);
+                       return (this.interceptors.length &lt; oldlen);
+               },
+
+               /**
+                * @class
+                * @memberof LuCI.Request
+                * @hideconstructor
+                * @classdesc
+                *
+                * The `Request.poll` class provides some convience wrappers around
+                * {@link LuCI.Poll} mainly to simplify registering repeating HTTP
+                * request calls as polling functions.
+                */
+               poll: {
+                       /**
+                        * The callback function is invoked whenever an HTTP reply to a
+                        * polled request is received or when the polled request timed
+                        * out.
+                        *
+                        * @callback LuCI.Request.poll~callbackFn
+                        * @param {LuCI.Response} res
+                        * The HTTP response object.
+                        *
+                        * @param {*} data
+                        * The response JSON if the response could be parsed as such,
+                        * else `null`.
+                        *
+                        * @param {number} duration
+                        * The total duration of the request in milliseconds.
+                        */
+
+                       /**
+                        * Register a repeating HTTP request with an optional callback
+                        * to invoke whenever a response for the request is received.
+                        *
+                        * @instance
+                        * @memberof LuCI.Request.poll
+                        * @param {number} interval
+                        * The poll interval in seconds.
+                        *
+                        * @param {string} url
+                        * The URL to request on each poll.
+                        *
+                        * @param {LuCI.Request.RequestOptions} [options]
+                        * Additional options to configure the request.
+                        *
+                        * @param {LuCI.Request.poll~callbackFn} [callback]
+                        * {@link LuCI.Request.poll~callbackFn Callback} function to
+                        * invoke for each HTTP reply.
+                        *
+                        * @throws {TypeError}
+                        * Throws `TypeError` when an invalid interval was passed.
+                        *
+                        * @returns {function}
+                        * Returns the internally created poll function.
+                        */
+                       add: function(interval, url, options, callback) {
+                               if (isNaN(interval) || interval &lt;= 0)
+                                       throw new TypeError('Invalid poll interval');
+
+                               var ival = interval >>> 0,
+                                   opts = Object.assign({}, options, { timeout: ival * 1000 - 5 });
+
+                               var fn = function() {
+                                       return Request.request(url, options).then(function(res) {
+                                               if (!Poll.active())
+                                                       return;
+
+                                               try {
+                                                       callback(res, res.json(), res.duration);
+                                               }
+                                               catch (err) {
+                                                       callback(res, null, res.duration);
+                                               }
+                                       });
+                               };
+
+                               return (Poll.add(fn, ival) ? fn : null);
+                       },
+
+                       /**
+                        * Remove a polling request that has been previously added using `add()`.
+                        * This function is essentially a wrapper around
+                        * {@link LuCI.Poll.remove LuCI.Poll.remove()}.
+                        *
+                        * @instance
+                        * @memberof LuCI.Request.poll
+                        * @param {function} entry
+                        * The poll function returned by {@link LuCI.Request.poll#add add()}.
+                        *
+                        * @returns {boolean}
+                        * Returns `true` if any function has been removed, else `false`.
+                        */
+                       remove: function(entry) { return Poll.remove(entry) },
+
+                       /**
+                         * Alias for {@link LuCI.Poll.start LuCI.Poll.start()}.
+                         *
+                         * @instance
+                         * @memberof LuCI.Request.poll
+                         */
+                       start: function() { return Poll.start() },
+
+                       /**
+                         * Alias for {@link LuCI.Poll.stop LuCI.Poll.stop()}.
+                         *
+                         * @instance
+                         * @memberof LuCI.Request.poll
+                         */
+                       stop: function() { return Poll.stop() },
+
+                       /**
+                         * Alias for {@link LuCI.Poll.active LuCI.Poll.active()}.
+                         *
+                         * @instance
+                         * @memberof LuCI.Request.poll
+                         */
+                       active: function() { return Poll.active() }
+               }
+       });
+
+       /**
+        * @class
+        * @memberof LuCI
+        * @hideconstructor
+        * @classdesc
+        *
+        * The `Poll` class allows registering and unregistering poll actions,
+        * as well as starting, stopping and querying the state of the polling
+        * loop.
+        */
+       var Poll = Class.singleton(/** @lends LuCI.Poll.prototype */ {
+               __name__: 'LuCI.Poll',
+
+               queue: [],
+
+               /**
+                * Add a new operation to the polling loop. If the polling loop is not
+                * already started at this point, it will be implicitely started.
+                *
+                * @instance
+                * @memberof LuCI.Poll
+                * @param {function} fn
+                * The function to invoke on each poll interval.
+                *
+                * @param {number} interval
+                * The poll interval in seconds.
+                *
+                * @throws {TypeError}
+                * Throws `TypeError` when an invalid interval was passed.
+                *
+                * @returns {boolean}
+                * Returns `true` if the function has been added or `false` if it
+                * already is registered.
+                */
+               add: function(fn, interval) {
+                       if (interval == null || interval &lt;= 0)
+                               interval = window.L ? window.L.env.pollinterval : null;
+
+                       if (isNaN(interval) || typeof(fn) != 'function')
+                               throw new TypeError('Invalid argument to LuCI.Poll.add()');
+
+                       for (var i = 0; i &lt; this.queue.length; i++)
+                               if (this.queue[i].fn === fn)
+                                       return false;
+
+                       var e = {
+                               r: true,
+                               i: interval >>> 0,
+                               fn: fn
+                       };
+
+                       this.queue.push(e);
+
+                       if (this.tick != null &amp;&amp; !this.active())
+                               this.start();
+
+                       return true;
+               },
+
+               /**
+                * Remove an operation from the polling loop. If no further operatons
+                * are registered, the polling loop is implicitely stopped.
+                *
+                * @instance
+                * @memberof LuCI.Poll
+                * @param {function} fn
+                * The function to remove.
+                *
+                * @throws {TypeError}
+                * Throws `TypeError` when the given argument isn't a function.
+                *
+                * @returns {boolean}
+                * Returns `true` if the function has been removed or `false` if it
+                * wasn't found.
+                */
+               remove: function(fn) {
+                       if (typeof(fn) != 'function')
+                               throw new TypeError('Invalid argument to LuCI.Poll.remove()');
+
+                       var len = this.queue.length;
+
+                       for (var i = len; i > 0; i--)
+                               if (this.queue[i-1].fn === fn)
+                                       this.queue.splice(i-1, 1);
+
+                       if (!this.queue.length &amp;&amp; this.stop())
+                               this.tick = 0;
+
+                       return (this.queue.length != len);
+               },
+
+               /**
+                * (Re)start the polling loop. Dispatches a custom `poll-start` event
+                * to the `document` object upon successful start.
+                *
+                * @instance
+                * @memberof LuCI.Poll
+                * @returns {boolean}
+                * Returns `true` if polling has been started (or if no functions
+                * where registered) or `false` when the polling loop already runs.
+                */
+               start: function() {
+                       if (this.active())
+                               return false;
+
+                       this.tick = 0;
+
+                       if (this.queue.length) {
+                               this.timer = window.setInterval(this.step, 1000);
+                               this.step();
+                               document.dispatchEvent(new CustomEvent('poll-start'));
+                       }
+
+                       return true;
+               },
+
+               /**
+                * Stop the polling loop. Dispatches a custom `poll-stop` event
+                * to the `document` object upon successful stop.
+                *
+                * @instance
+                * @memberof LuCI.Poll
+                * @returns {boolean}
+                * Returns `true` if polling has been stopped or `false` if it din't
+                * run to begin with.
+                */
+               stop: function() {
+                       if (!this.active())
+                               return false;
+
+                       document.dispatchEvent(new CustomEvent('poll-stop'));
+                       window.clearInterval(this.timer);
+                       delete this.timer;
+                       delete this.tick;
+                       return true;
+               },
+
+               /* private */
+               step: function() {
+                       for (var i = 0, e = null; (e = Poll.queue[i]) != null; i++) {
+                               if ((Poll.tick % e.i) != 0)
+                                       continue;
+
+                               if (!e.r)
+                                       continue;
+
+                               e.r = false;
+
+                               Promise.resolve(e.fn()).finally((function() { this.r = true }).bind(e));
+                       }
+
+                       Poll.tick = (Poll.tick + 1) % Math.pow(2, 32);
+               },
+
+               /**
+                * Test whether the polling loop is running.
+                *
+                * @instance
+                * @memberof LuCI.Poll
+                * @returns {boolean} - Returns `true` if polling is active, else `false`.
+                */
+               active: function() {
+                       return (this.timer != null);
+               }
+       });
+
+
+       var dummyElem = null,
+           domParser = null,
+           originalCBIInit = null,
+           rpcBaseURL = null,
+           sysFeatures = null,
+           classes = {};
+
+       var LuCI = Class.extend(/** @lends LuCI.prototype */ {
+               __name__: 'LuCI',
+               __init__: function(env) {
+
+                       document.querySelectorAll('script[src*="/luci.js"]').forEach(function(s) {
+                               if (env.base_url == null || env.base_url == '') {
+                                       var m = (s.getAttribute('src') || '').match(/^(.*)\/luci\.js(?:\?v=([^?]+))?$/);
+                                       if (m) {
+                                               env.base_url = m[1];
+                                               env.resource_version = m[2];
+                                       }
+                               }
+                       });
+
+                       if (env.base_url == null)
+                               this.error('InternalError', 'Cannot find url of luci.js');
+
+                       Object.assign(this.env, env);
+
+                       document.addEventListener('poll-start', function(ev) {
+                               document.querySelectorAll('[id^="xhr_poll_status"]').forEach(function(e) {
+                                       e.style.display = (e.id == 'xhr_poll_status_off') ? 'none' : '';
+                               });
+                       });
+
+                       document.addEventListener('poll-stop', function(ev) {
+                               document.querySelectorAll('[id^="xhr_poll_status"]').forEach(function(e) {
+                                       e.style.display = (e.id == 'xhr_poll_status_on') ? 'none' : '';
+                               });
+                       });
+
+                       var domReady = new Promise(function(resolveFn, rejectFn) {
+                               document.addEventListener('DOMContentLoaded', resolveFn);
+                       });
+
+                       Promise.all([
+                               domReady,
+                               this.require('ui'),
+                               this.require('rpc'),
+                               this.require('form'),
+                               this.probeRPCBaseURL()
+                       ]).then(this.setupDOM.bind(this)).catch(this.error);
+
+                       originalCBIInit = window.cbi_init;
+                       window.cbi_init = function() {};
+               },
+
+               /**
+                * Captures the current stack trace and throws an error of the
+                * specified type as a new exception. Also logs the exception as
+                * error to the debug console if it is available.
+                *
+                * @instance
+                * @memberof LuCI
+                *
+                * @param {Error|string} [type=Error]
+                * Either a string specifying the type of the error to throw or an
+                * existing `Error` instance to copy.
+                *
+                * @param {string} [fmt=Unspecified error]
+                * A format string which is used to form the error message, together
+                * with all subsequent optional arguments.
+                *
+                * @param {...*} [args]
+                * Zero or more variable arguments to the supplied format string.
+                *
+                * @throws {Error}
+                * Throws the created error object with the captured stack trace
+                * appended to the message and the type set to the given type
+                * argument or copied from the given error instance.
+                */
+               raise: function(type, fmt /*, ...*/) {
+                       var e = null,
+                           msg = fmt ? String.prototype.format.apply(fmt, this.varargs(arguments, 2)) : null,
+                           stack = null;
+
+                       if (type instanceof Error) {
+                               e = type;
+
+                               if (msg)
+                                       e.message = msg + ': ' + e.message;
+                       }
+                       else {
+                               try { throw new Error('stacktrace') }
+                               catch (e2) { stack = (e2.stack || '').split(/\n/) }
+
+                               e = new (window[type || 'Error'] || Error)(msg || 'Unspecified error');
+                               e.name = type || 'Error';
+                       }
+
+                       stack = (stack || []).map(function(frame) {
+                               frame = frame.replace(/(.*?)@(.+):(\d+):(\d+)/g, 'at $1 ($2:$3:$4)').trim();
+                               return frame ? '  ' + frame : '';
+                       });
+
+                       if (!/^  at /.test(stack[0]))
+                               stack.shift();
+
+                       if (/\braise /.test(stack[0]))
+                               stack.shift();
+
+                       if (/\berror /.test(stack[0]))
+                               stack.shift();
+
+                       if (stack.length)
+                               e.message += '\n' + stack.join('\n');
+
+                       if (window.console &amp;&amp; console.debug)
+                               console.debug(e);
+
+                       throw e;
+               },
+
+               /**
+                * A wrapper around {@link LuCI#raise raise()} which also renders
+                * the error either as modal overlay when `ui.js` is already loaed
+                * or directly into the view body.
+                *
+                * @instance
+                * @memberof LuCI
+                *
+                * @param {Error|string} [type=Error]
+                * Either a string specifying the type of the error to throw or an
+                * existing `Error` instance to copy.
+                *
+                * @param {string} [fmt=Unspecified error]
+                * A format string which is used to form the error message, together
+                * with all subsequent optional arguments.
+                *
+                * @param {...*} [args]
+                * Zero or more variable arguments to the supplied format string.
+                *
+                * @throws {Error}
+                * Throws the created error object with the captured stack trace
+                * appended to the message and the type set to the given type
+                * argument or copied from the given error instance.
+                */
+               error: function(type, fmt /*, ...*/) {
+                       try {
+                               L.raise.apply(L, Array.prototype.slice.call(arguments));
+                       }
+                       catch (e) {
+                               if (!e.reported) {
+                                       if (L.ui)
+                                               L.ui.addNotification(e.name || _('Runtime error'),
+                                                       E('pre', {}, e.message), 'danger');
+                                       else
+                                               L.dom.content(document.querySelector('#maincontent'),
+                                                       E('pre', { 'class': 'alert-message error' }, e.message));
+
+                                       e.reported = true;
+                               }
+
+                               throw e;
+                       }
+               },
+
+               /**
+                * Return a bound function using the given `self` as `this` context
+                * and any further arguments as parameters to the bound function.
+                *
+                * @instance
+                * @memberof LuCI
+                *
+                * @param {function} fn
+                * The function to bind.
+                *
+                * @param {*} self
+                * The value to bind as `this` context to the specified function.
+                *
+                * @param {...*} [args]
+                * Zero or more variable arguments which are bound to the function
+                * as parameters.
+                *
+                * @returns {function}
+                * Returns the bound function.
+                */
+               bind: function(fn, self /*, ... */) {
+                       return Function.prototype.bind.apply(fn, this.varargs(arguments, 2, self));
+               },
+
+               /**
+                * Load an additional LuCI JavaScript class and its dependencies,
+                * instantiate it and return the resulting class instance. Each
+                * class is only loaded once. Subsequent attempts to load the same
+                * class will return the already instantiated class.
+                *
+                * @instance
+                * @memberof LuCI
+                *
+                * @param {string} name
+                * The name of the class to load in dotted notation. Dots will
+                * be replaced by spaces and joined with the runtime-determined
+                * base URL of LuCI.js to form an absolute URL to load the class
+                * file from.
+                *
+                * @throws {DependencyError}
+                * Throws a `DependencyError` when the class to load includes
+                * circular dependencies.
+                *
+                * @throws {NetworkError}
+                * Throws `NetworkError` when the underlying {@link LuCI.Request}
+                * call failed.
+                *
+                * @throws {SyntaxError}
+                * Throws `SyntaxError` when the loaded class file code cannot
+                * be interpreted by `eval`.
+                *
+                * @throws {TypeError}
+                * Throws `TypeError` when the class file could be loaded and
+                * interpreted, but when invoking its code did not yield a valid
+                * class instance.
+                *
+                * @returns {Promise&lt;LuCI#Class>}
+                * Returns the instantiated class.
+                */
+               require: function(name, from) {
+                       var L = this, url = null, from = from || [];
+
+                       /* Class already loaded */
+                       if (classes[name] != null) {
+                               /* Circular dependency */
+                               if (from.indexOf(name) != -1)
+                                       L.raise('DependencyError',
+                                               'Circular dependency: class "%s" depends on "%s"',
+                                               name, from.join('" which depends on "'));
+
+                               return Promise.resolve(classes[name]);
+                       }
+
+                       url = '%s/%s.js%s'.format(L.env.base_url, name.replace(/\./g, '/'), (L.env.resource_version ? '?v=' + L.env.resource_version : ''));
+                       from = [ name ].concat(from);
+
+                       var compileClass = function(res) {
+                               if (!res.ok)
+                                       L.raise('NetworkError',
+                                               'HTTP error %d while loading class file "%s"', res.status, url);
+
+                               var source = res.text(),
+                                   requirematch = /^require[ \t]+(\S+)(?:[ \t]+as[ \t]+([a-zA-Z_]\S*))?$/,
+                                   strictmatch = /^use[ \t]+strict$/,
+                                   depends = [],
+                                   args = '';
+
+                               /* find require statements in source */
+                               for (var i = 0, off = -1, quote = -1, esc = false; i &lt; source.length; i++) {
+                                       var chr = source.charCodeAt(i);
+
+                                       if (esc) {
+                                               esc = false;
+                                       }
+                                       else if (chr == 92) {
+                                               esc = true;
+                                       }
+                                       else if (chr == quote) {
+                                               var s = source.substring(off, i),
+                                                   m = requirematch.exec(s);
+
+                                               if (m) {
+                                                       var dep = m[1], as = m[2] || dep.replace(/[^a-zA-Z0-9_]/g, '_');
+                                                       depends.push(L.require(dep, from));
+                                                       args += ', ' + as;
+                                               }
+                                               else if (!strictmatch.exec(s)) {
+                                                       break;
+                                               }
+
+                                               off = -1;
+                                               quote = -1;
+                                       }
+                                       else if (quote == -1 &amp;&amp; (chr == 34 || chr == 39)) {
+                                               off = i + 1;
+                                               quote = chr;
+                                       }
+                               }
+
+                               /* load dependencies and instantiate class */
+                               return Promise.all(depends).then(function(instances) {
+                                       var _factory, _class;
+
+                                       try {
+                                               _factory = eval(
+                                                       '(function(window, document, L%s) { %s })\n\n//# sourceURL=%s\n'
+                                                               .format(args, source, res.url));
+                                       }
+                                       catch (error) {
+                                               L.raise('SyntaxError', '%s\n  in %s:%s',
+                                                       error.message, res.url, error.lineNumber || '?');
+                                       }
+
+                                       _factory.displayName = toCamelCase(name + 'ClassFactory');
+                                       _class = _factory.apply(_factory, [window, document, L].concat(instances));
+
+                                       if (!Class.isSubclass(_class))
+                                           L.error('TypeError', '"%s" factory yields invalid constructor', name);
+
+                                       if (_class.displayName == 'AnonymousClass')
+                                               _class.displayName = toCamelCase(name + 'Class');
+
+                                       var ptr = Object.getPrototypeOf(L),
+                                           parts = name.split(/\./),
+                                           instance = new _class();
+
+                                       for (var i = 0; ptr &amp;&amp; i &lt; parts.length - 1; i++)
+                                               ptr = ptr[parts[i]];
+
+                                       if (ptr)
+                                               ptr[parts[i]] = instance;
+
+                                       classes[name] = instance;
+
+                                       return instance;
+                               });
+                       };
+
+                       /* Request class file */
+                       classes[name] = Request.get(url, { cache: true }).then(compileClass);
+
+                       return classes[name];
+               },
+
+               /* DOM setup */
+               probeRPCBaseURL: function() {
+                       if (rpcBaseURL == null) {
+                               try {
+                                       rpcBaseURL = window.sessionStorage.getItem('rpcBaseURL');
+                               }
+                               catch (e) { }
+                       }
+
+                       if (rpcBaseURL == null) {
+                               var rpcFallbackURL = this.url('admin/ubus');
+
+                               rpcBaseURL = Request.get('/ubus/').then(function(res) {
+                                       return (rpcBaseURL = (res.status == 400) ? '/ubus/' : rpcFallbackURL);
+                               }, function() {
+                                       return (rpcBaseURL = rpcFallbackURL);
+                               }).then(function(url) {
+                                       try {
+                                               window.sessionStorage.setItem('rpcBaseURL', url);
+                                       }
+                                       catch (e) { }
+
+                                       return url;
+                               });
+                       }
+
+                       return Promise.resolve(rpcBaseURL);
+               },
+
+               probeSystemFeatures: function() {
+                       var sessionid = classes.rpc.getSessionID();
+
+                       if (sysFeatures == null) {
+                               try {
+                                       var data = JSON.parse(window.sessionStorage.getItem('sysFeatures'));
+
+                                       if (this.isObject(data) &amp;&amp; this.isObject(data[sessionid]))
+                                               sysFeatures = data[sessionid];
+                               }
+                               catch (e) {}
+                       }
+
+                       if (!this.isObject(sysFeatures)) {
+                               sysFeatures = classes.rpc.declare({
+                                       object: 'luci',
+                                       method: 'getFeatures',
+                                       expect: { '': {} }
+                               })().then(function(features) {
+                                       try {
+                                               var data = {};
+                                                   data[sessionid] = features;
+
+                                               window.sessionStorage.setItem('sysFeatures', JSON.stringify(data));
+                                       }
+                                       catch (e) {}
+
+                                       sysFeatures = features;
+
+                                       return features;
+                               });
+                       }
+
+                       return Promise.resolve(sysFeatures);
+               },
+
+               /**
+                * Test whether a particular system feature is available, such as
+                * hostapd SAE support or an installed firewall. The features are
+                * queried once at the beginning of the LuCI session and cached in
+                * `SessionStorage` throughout the lifetime of the associated tab or
+                * browser window.
+                *
+                * @instance
+                * @memberof LuCI
+                *
+                * @param {string} feature
+                * The feature to test. For detailed list of known feature flags,
+                * see `/modules/luci-base/root/usr/libexec/rpcd/luci`.
+                *
+                * @param {string} [subfeature]
+                * Some feature classes like `hostapd` provide sub-feature flags,
+                * such as `sae` or `11w` support. The `subfeature` argument can
+                * be used to query these.
+                *
+                * @return {boolean|null}
+                * Return `true` if the queried feature (and sub-feature) is available
+                * or `false` if the requested feature isn't present or known.
+                * Return `null` when a sub-feature was queried for a feature which
+                * has no sub-features.
+                */
+               hasSystemFeature: function() {
+                       var ft = sysFeatures[arguments[0]];
+
+                       if (arguments.length == 2)
+                               return this.isObject(ft) ? ft[arguments[1]] : null;
+
+                       return (ft != null &amp;&amp; ft != false);
+               },
+
+               /* private */
+               notifySessionExpiry: function() {
+                       Poll.stop();
+
+                       L.ui.showModal(_('Session expired'), [
+                               E('div', { class: 'alert-message warning' },
+                                       _('A new login is required since the authentication session expired.')),
+                               E('div', { class: 'right' },
+                                       E('div', {
+                                               class: 'btn primary',
+                                               click: function() {
+                                                       var loc = window.location;
+                                                       window.location = loc.protocol + '//' + loc.host + loc.pathname + loc.search;
+                                               }
+                                       }, _('To login…')))
+                       ]);
+
+                       L.raise('SessionError', 'Login session is expired');
+               },
+
+               /* private */
+               setupDOM: function(res) {
+                       var domEv = res[0],
+                           uiClass = res[1],
+                           rpcClass = res[2],
+                           formClass = res[3],
+                           rpcBaseURL = res[4];
+
+                       rpcClass.setBaseURL(rpcBaseURL);
+
+                       rpcClass.addInterceptor(function(msg, req) {
+                               if (!L.isObject(msg) || !L.isObject(msg.error) || msg.error.code != -32002)
+                                       return;
+
+                               if (!L.isObject(req) || (req.object == 'session' &amp;&amp; req.method == 'access'))
+                                       return;
+
+                               return rpcClass.declare({
+                                       'object': 'session',
+                                       'method': 'access',
+                                       'params': [ 'scope', 'object', 'function' ],
+                                       'expect': { access: true }
+                               })('uci', 'luci', 'read').catch(L.notifySessionExpiry);
+                       });
+
+                       Request.addInterceptor(function(res) {
+                               var isDenied = false;
+
+                               if (res.status == 403 &amp;&amp; res.headers.get('X-LuCI-Login-Required') == 'yes')
+                                       isDenied = true;
+
+                               if (!isDenied)
+                                       return;
+
+                               L.notifySessionExpiry();
+                       });
+
+                       return this.probeSystemFeatures().finally(this.initDOM);
+               },
+
+               /* private */
+               initDOM: function() {
+                       originalCBIInit();
+                       Poll.start();
+                       document.dispatchEvent(new CustomEvent('luci-loaded'));
+               },
+
+               /**
+                * The `env` object holds environment settings used by LuCI, such
+                * as request timeouts, base URLs etc.
+                *
+                * @instance
+                * @memberof LuCI
+                */
+               env: {},
+
+               /**
+                * Construct a relative URL path from the given prefix and parts.
+                * The resulting URL is guaranteed to only contain the characters
+                * `a-z`, `A-Z`, `0-9`, `_`, `.`, `%`, `,`, `;`, and `-` as well
+                * as `/` for the path separator.
+                *
+                * @instance
+                * @memberof LuCI
+                *
+                * @param {string} [prefix]
+                * The prefix to join the given parts with. If the `prefix` is
+                * omitted, it defaults to an empty string.
+                *
+                * @param {string[]} [parts]
+                * An array of parts to join into an URL path. Parts may contain
+                * slashes and any of the other characters mentioned above.
+                *
+                * @return {string}
+                * Return the joined URL path.
+                */
+               path: function(prefix, parts) {
+                       var url = [ prefix || '' ];
+
+                       for (var i = 0; i &lt; parts.length; i++)
+                               if (/^(?:[a-zA-Z0-9_.%,;-]+\/)*[a-zA-Z0-9_.%,;-]+$/.test(parts[i]))
+                                       url.push('/', parts[i]);
+
+                       if (url.length === 1)
+                               url.push('/');
+
+                       return url.join('');
+               },
+
+               /**
+                * Construct an URL  pathrelative to the script path of the server
+                * side LuCI application (usually `/cgi-bin/luci`).
+                *
+                * The resulting URL is guaranteed to only contain the characters
+                * `a-z`, `A-Z`, `0-9`, `_`, `.`, `%`, `,`, `;`, and `-` as well
+                * as `/` for the path separator.
+                *
+                * @instance
+                * @memberof LuCI
+                *
+                * @param {string[]} [parts]
+                * An array of parts to join into an URL path. Parts may contain
+                * slashes and any of the other characters mentioned above.
+                *
+                * @return {string}
+                * Returns the resulting URL path.
+                */
+               url: function() {
+                       return this.path(this.env.scriptname, arguments);
+               },
+
+               /**
+                * Construct an URL path relative to the global static resource path
+                * of the LuCI ui (usually `/luci-static/resources`).
+                *
+                * The resulting URL is guaranteed to only contain the characters
+                * `a-z`, `A-Z`, `0-9`, `_`, `.`, `%`, `,`, `;`, and `-` as well
+                * as `/` for the path separator.
+                *
+                * @instance
+                * @memberof LuCI
+                *
+                * @param {string[]} [parts]
+                * An array of parts to join into an URL path. Parts may contain
+                * slashes and any of the other characters mentioned above.
+                *
+                * @return {string}
+                * Returns the resulting URL path.
+                */
+               resource: function() {
+                       return this.path(this.env.resource, arguments);
+               },
+
+               /**
+                * Return the complete URL path to the current view.
+                *
+                * @instance
+                * @memberof LuCI
+                *
+                * @return {string}
+                * Returns the URL path to the current view.
+                */
+               location: function() {
+                       return this.path(this.env.scriptname, this.env.requestpath);
+               },
+
+
+               /**
+                * Tests whether the passed argument is a JavaScript object.
+                * This function is meant to be an object counterpart to the
+                * standard `Array.isArray()` function.
+                *
+                * @instance
+                * @memberof LuCI
+                *
+                * @param {*} [val]
+                * The value to test
+                *
+                * @return {boolean}
+                * Returns `true` if the given value is of type object and
+                * not `null`, else returns `false`.
+                */
+               isObject: function(val) {
+                       return (val != null &amp;&amp; typeof(val) == 'object');
+               },
+
+               /**
+                * Return an array of sorted object keys, optionally sorted by
+                * a different key or a different sorting mode.
+                *
+                * @instance
+                * @memberof LuCI
+                *
+                * @param {object} obj
+                * The object to extract the keys from. If the given value is
+                * not an object, the function will return an empty array.
+                *
+                * @param {string} [key]
+                * Specifies the key to order by. This is mainly useful for
+                * nested objects of objects or objects of arrays when sorting
+                * shall not be performed by the primary object keys but by
+                * some other key pointing to a value within the nested values.
+                *
+                * @param {string} [sortmode]
+                * May be either `addr` or `num` to override the natural
+                * lexicographic sorting with a sorting suitable for IP/MAC style
+                * addresses or numeric values respectively.
+                *
+                * @return {string[]}
+                * Returns an array containing the sorted keys of the given object.
+                */
+               sortedKeys: function(obj, key, sortmode) {
+                       if (obj == null || typeof(obj) != 'object')
+                               return [];
+
+                       return Object.keys(obj).map(function(e) {
+                               var v = (key != null) ? obj[e][key] : e;
+
+                               switch (sortmode) {
+                               case 'addr':
+                                       v = (v != null) ? v.replace(/(?:^|[.:])([0-9a-fA-F]{1,4})/g,
+                                               function(m0, m1) { return ('000' + m1.toLowerCase()).substr(-4) }) : null;
+                                       break;
+
+                               case 'num':
+                                       v = (v != null) ? +v : null;
+                                       break;
+                               }
+
+                               return [ e, v ];
+                       }).filter(function(e) {
+                               return (e[1] != null);
+                       }).sort(function(a, b) {
+                               return (a[1] > b[1]);
+                       }).map(function(e) {
+                               return e[0];
+                       });
+               },
+
+               /**
+                * Converts the given value to an array. If the given value is of
+                * type array, it is returned as-is, values of type object are
+                * returned as one-element array containing the object, empty
+                * strings and `null` values are returned as empty array, all other
+                * values are converted using `String()`, trimmed, split on white
+                * space and returned as array.
+                *
+                * @instance
+                * @memberof LuCI
+                *
+                * @param {*} val
+                * The value to convert into an array.
+                *
+                * @return {Array&lt;*>}
+                * Returns the resulting array.
+                */
+               toArray: function(val) {
+                       if (val == null)
+                               return [];
+                       else if (Array.isArray(val))
+                               return val;
+                       else if (typeof(val) == 'object')
+                               return [ val ];
+
+                       var s = String(val).trim();
+
+                       if (s == '')
+                               return [];
+
+                       return s.split(/\s+/);
+               },
+
+               /**
+                * Returns a promise resolving with either the given value or or with
+                * the given default in case the input value is a rejecting promise.
+                *
+                * @instance
+                * @memberof LuCI
+                *
+                * @param {*} value
+                * The value to resolve the promise with.
+                *
+                * @param {*} defvalue
+                * The default value to resolve the promise with in case the given
+                * input value is a rejecting promise.
+                *
+                * @returns {Promise&lt;*>}
+                * Returns a new promise resolving either to the given input value or
+                * to the given default value on error.
+                */
+               resolveDefault: function(value, defvalue) {
+                       return Promise.resolve(value).catch(function() { return defvalue });
+               },
+
+               /**
+                * The request callback function is invoked whenever an HTTP
+                * reply to a request made using the `L.get()`, `L.post()` or
+                * `L.poll()` function is timed out or received successfully.
+                *
+                * @instance
+                * @memberof LuCI
+                *
+                * @callback LuCI.requestCallbackFn
+                * @param {XMLHTTPRequest} xhr
+                * The XMLHTTPRequest instance used to make the request.
+                *
+                * @param {*} data
+                * The response JSON if the response could be parsed as such,
+                * else `null`.
+                *
+                * @param {number} duration
+                * The total duration of the request in milliseconds.
+                */
+
+               /**
+                * Issues a GET request to the given url and invokes the specified
+                * callback function. The function is a wrapper around
+                * {@link LuCI.Request#request Request.request()}.
+                *
+                * @deprecated
+                * @instance
+                * @memberof LuCI
+                *
+                * @param {string} url
+                * The URL to request.
+                *
+                * @param {Object&lt;string, string>} [args]
+                * Additional query string arguments to append to the URL.
+                *
+                * @param {LuCI.requestCallbackFn} cb
+                * The callback function to invoke when the request finishes.
+                *
+                * @return {Promise&lt;null>}
+                * Returns a promise resolving to `null` when concluded.
+                */
+               get: function(url, args, cb) {
+                       return this.poll(null, url, args, cb, false);
+               },
+
+               /**
+                * Issues a POST request to the given url and invokes the specified
+                * callback function. The function is a wrapper around
+                * {@link LuCI.Request#request Request.request()}. The request is
+                * sent using `application/x-www-form-urlencoded` encoding and will
+                * contain a field `token` with the current value of `LuCI.env.token`
+                * by default.
+                *
+                * @deprecated
+                * @instance
+                * @memberof LuCI
+                *
+                * @param {string} url
+                * The URL to request.
+                *
+                * @param {Object&lt;string, string>} [args]
+                * Additional post arguments to append to the request body.
+                *
+                * @param {LuCI.requestCallbackFn} cb
+                * The callback function to invoke when the request finishes.
+                *
+                * @return {Promise&lt;null>}
+                * Returns a promise resolving to `null` when concluded.
+                */
+               post: function(url, args, cb) {
+                       return this.poll(null, url, args, cb, true);
+               },
+
+               /**
+                * Register a polling HTTP request that invokes the specified
+                * callback function. The function is a wrapper around
+                * {@link LuCI.Request.poll#add Request.poll.add()}.
+                *
+                * @deprecated
+                * @instance
+                * @memberof LuCI
+                *
+                * @param {number} interval
+                * The poll interval to use. If set to a value less than or equal
+                * to `0`, it will default to the global poll interval configured
+                * in `LuCI.env.pollinterval`.
+                *
+                * @param {string} url
+                * The URL to request.
+                *
+                * @param {Object&lt;string, string>} [args]
+                * Specifies additional arguments for the request. For GET requests,
+                * the arguments are appended to the URL as query string, for POST
+                * requests, they'll be added to the request body.
+                *
+                * @param {LuCI.requestCallbackFn} cb
+                * The callback function to invoke whenever a request finishes.
+                *
+                * @param {boolean} [post=false]
+                * When set to `false` or not specified, poll requests will be made
+                * using the GET method. When set to `true`, POST requests will be
+                * issued. In case of POST requests, the request body will contain
+                * an argument `token` with the current value of `LuCI.env.token` by
+                * default, regardless of the parameters specified with `args`.
+                *
+                * @return {function}
+                * Returns the internally created function that has been passed to
+                * {@link LuCI.Request.poll#add Request.poll.add()}. This value can
+                * be passed to {@link LuCI.Poll.remove Poll.remove()} to remove the
+                * polling request.
+                */
+               poll: function(interval, url, args, cb, post) {
+                       if (interval !== null &amp;&amp; interval &lt;= 0)
+                               interval = this.env.pollinterval;
+
+                       var data = post ? { token: this.env.token } : null,
+                           method = post ? 'POST' : 'GET';
+
+                       if (!/^(?:\/|\S+:\/\/)/.test(url))
+                               url = this.url(url);
+
+                       if (args != null)
+                               data = Object.assign(data || {}, args);
+
+                       if (interval !== null)
+                               return Request.poll.add(interval, url, { method: method, query: data }, cb);
+                       else
+                               return Request.request(url, { method: method, query: data })
+                                       .then(function(res) {
+                                               var json = null;
+                                               if (/^application\/json\b/.test(res.headers.get('Content-Type')))
+                                                       try { json = res.json() } catch(e) {}
+                                               cb(res.xhr, json, res.duration);
+                                       });
+               },
+
+               /**
+                * Deprecated wrapper around {@link LuCI.Poll.remove Poll.remove()}.
+                *
+                * @deprecated
+                * @instance
+                * @memberof LuCI
+                *
+                * @param {function} entry
+                * The polling function to remove.
+                *
+                * @return {boolean}
+                * Returns `true` when the function has been removed or `false` if
+                * it could not be found.
+                */
+               stop: function(entry) { return Poll.remove(entry) },
+
+               /**
+                * Deprecated wrapper around {@link LuCI.Poll.stop Poll.stop()}.
+                *
+                * @deprecated
+                * @instance
+                * @memberof LuCI
+                *
+                * @return {boolean}
+                * Returns `true` when the polling loop has been stopped or `false`
+                * when it didn't run to begin with.
+                */
+               halt: function() { return Poll.stop() },
+
+               /**
+                * Deprecated wrapper around {@link LuCI.Poll.start Poll.start()}.
+                *
+                * @deprecated
+                * @instance
+                * @memberof LuCI
+                *
+                * @return {boolean}
+                * Returns `true` when the polling loop has been started or `false`
+                * when it was already running.
+                */
+               run: function() { return Poll.start() },
+
+
+               /**
+                * @class
+                * @memberof LuCI
+                * @hideconstructor
+                * @classdesc
+                *
+                * The `dom` class provides convenience method for creating and
+                * manipulating DOM elements.
+                */
+               dom: Class.singleton(/* @lends LuCI.dom.prototype */ {
+                       __name__: 'LuCI.DOM',
+
+                       /**
+                        * Tests whether the given argument is a valid DOM `Node`.
+                        *
+                        * @instance
+                        * @memberof LuCI.dom
+                        * @param {*} e
+                        * The value to test.
+                        *
+                        * @returns {boolean}
+                        * Returns `true` if the value is a DOM `Node`, else `false`.
+                        */
+                       elem: function(e) {
+                               return (e != null &amp;&amp; typeof(e) == 'object' &amp;&amp; 'nodeType' in e);
+                       },
+
+                       /**
+                        * Parses a given string as HTML and returns the first child node.
+                        *
+                        * @instance
+                        * @memberof LuCI.dom
+                        * @param {string} s
+                        * A string containing an HTML fragment to parse. Note that only
+                        * the first result of the resulting structure is returned, so an
+                        * input value of `&lt;div>foo&lt;/div> &lt;div>bar&lt;/div>` will only return
+                        * the first `div` element node.
+                        *
+                        * @returns {Node}
+                        * Returns the first DOM `Node` extracted from the HTML fragment or
+                        * `null` on parsing failures or if no element could be found.
+                        */
+                       parse: function(s) {
+                               var elem;
+
+                               try {
+                                       domParser = domParser || new DOMParser();
+                                       elem = domParser.parseFromString(s, 'text/html').body.firstChild;
+                               }
+                               catch(e) {}
+
+                               if (!elem) {
+                                       try {
+                                               dummyElem = dummyElem || document.createElement('div');
+                                               dummyElem.innerHTML = s;
+                                               elem = dummyElem.firstChild;
+                                       }
+                                       catch (e) {}
+                               }
+
+                               return elem || null;
+                       },
+
+                       /**
+                        * Tests whether a given `Node` matches the given query selector.
+                        *
+                        * This function is a convenience wrapper around the standard
+                        * `Node.matches("selector")` function with the added benefit that
+                        * the `node` argument may be a non-`Node` value, in which case
+                        * this function simply returns `false`.
+                        *
+                        * @instance
+                        * @memberof LuCI.dom
+                        * @param {*} node
+                        * The `Node` argument to test the selector against.
+                        *
+                        * @param {string} [selector]
+                        * The query selector expression to test against the given node.
+                        *
+                        * @returns {boolean}
+                        * Returns `true` if the given node matches the specified selector
+                        * or `false` when the node argument is no valid DOM `Node` or the
+                        * selector didn't match.
+                        */
+                       matches: function(node, selector) {
+                               var m = this.elem(node) ? node.matches || node.msMatchesSelector : null;
+                               return m ? m.call(node, selector) : false;
+                       },
+
+                       /**
+                        * Returns the closest parent node that matches the given query
+                        * selector expression.
+                        *
+                        * This function is a convenience wrapper around the standard
+                        * `Node.closest("selector")` function with the added benefit that
+                        * the `node` argument may be a non-`Node` value, in which case
+                        * this function simply returns `null`.
+                        *
+                        * @instance
+                        * @memberof LuCI.dom
+                        * @param {*} node
+                        * The `Node` argument to find the closest parent for.
+                        *
+                        * @param {string} [selector]
+                        * The query selector expression to test against each parent.
+                        *
+                        * @returns {Node|null}
+                        * Returns the closest parent node matching the selector or
+                        * `null` when the node argument is no valid DOM `Node` or the
+                        * selector didn't match any parent.
+                        */
+                       parent: function(node, selector) {
+                               if (this.elem(node) &amp;&amp; node.closest)
+                                       return node.closest(selector);
+
+                               while (this.elem(node))
+                                       if (this.matches(node, selector))
+                                               return node;
+                                       else
+                                               node = node.parentNode;
+
+                               return null;
+                       },
+
+                       /**
+                        * Appends the given children data to the given node.
+                        *
+                        * @instance
+                        * @memberof LuCI.dom
+                        * @param {*} node
+                        * The `Node` argument to append the children to.
+                        *
+                        * @param {*} [children]
+                        * The childrens to append to the given node.
+                        *
+                        * When `children` is an array, then each item of the array
+                        * will be either appended as child element or text node,
+                        * depending on whether the item is a DOM `Node` instance or
+                        * some other non-`null` value. Non-`Node`, non-`null` values
+                        * will be converted to strings first before being passed as
+                        * argument to `createTextNode()`.
+                        *
+                        * When `children` is a function, it will be invoked with
+                        * the passed `node` argument as sole parameter and the `append`
+                        * function will be invoked again, with the given `node` argument
+                        * as first and the return value of the `children` function as
+                        * second parameter.
+                        *
+                        * When `children` is is a DOM `Node` instance, it will be
+                        * appended to the given `node`.
+                        *
+                        * When `children` is any other non-`null` value, it will be
+                        * converted to a string and appened to the `innerHTML` property
+                        * of the given `node`.
+                        *
+                        * @returns {Node|null}
+                        * Returns the last children `Node` appended to the node or `null`
+                        * if either the `node` argument was no valid DOM `node` or if the
+                        * `children` was `null` or didn't result in further DOM nodes.
+                        */
+                       append: function(node, children) {
+                               if (!this.elem(node))
+                                       return null;
+
+                               if (Array.isArray(children)) {
+                                       for (var i = 0; i &lt; children.length; i++)
+                                               if (this.elem(children[i]))
+                                                       node.appendChild(children[i]);
+                                               else if (children !== null &amp;&amp; children !== undefined)
+                                                       node.appendChild(document.createTextNode('' + children[i]));
+
+                                       return node.lastChild;
+                               }
+                               else if (typeof(children) === 'function') {
+                                       return this.append(node, children(node));
+                               }
+                               else if (this.elem(children)) {
+                                       return node.appendChild(children);
+                               }
+                               else if (children !== null &amp;&amp; children !== undefined) {
+                                       node.innerHTML = '' + children;
+                                       return node.lastChild;
+                               }
+
+                               return null;
+                       },
+
+                       /**
+                        * Replaces the content of the given node with the given children.
+                        *
+                        * This function first removes any children of the given DOM
+                        * `Node` and then adds the given given children following the
+                        * rules outlined below.
+                        *
+                        * @instance
+                        * @memberof LuCI.dom
+                        * @param {*} node
+                        * The `Node` argument to replace the children of.
+                        *
+                        * @param {*} [children]
+                        * The childrens to replace into the given node.
+                        *
+                        * When `children` is an array, then each item of the array
+                        * will be either appended as child element or text node,
+                        * depending on whether the item is a DOM `Node` instance or
+                        * some other non-`null` value. Non-`Node`, non-`null` values
+                        * will be converted to strings first before being passed as
+                        * argument to `createTextNode()`.
+                        *
+                        * When `children` is a function, it will be invoked with
+                        * the passed `node` argument as sole parameter and the `append`
+                        * function will be invoked again, with the given `node` argument
+                        * as first and the return value of the `children` function as
+                        * second parameter.
+                        *
+                        * When `children` is is a DOM `Node` instance, it will be
+                        * appended to the given `node`.
+                        *
+                        * When `children` is any other non-`null` value, it will be
+                        * converted to a string and appened to the `innerHTML` property
+                        * of the given `node`.
+                        *
+                        * @returns {Node|null}
+                        * Returns the last children `Node` appended to the node or `null`
+                        * if either the `node` argument was no valid DOM `node` or if the
+                        * `children` was `null` or didn't result in further DOM nodes.
+                        */
+                       content: function(node, children) {
+                               if (!this.elem(node))
+                                       return null;
+
+                               var dataNodes = node.querySelectorAll('[data-idref]');
+
+                               for (var i = 0; i &lt; dataNodes.length; i++)
+                                       delete this.registry[dataNodes[i].getAttribute('data-idref')];
+
+                               while (node.firstChild)
+                                       node.removeChild(node.firstChild);
+
+                               return this.append(node, children);
+                       },
+
+                       /**
+                        * Sets attributes or registers event listeners on element nodes.
+                        *
+                        * @instance
+                        * @memberof LuCI.dom
+                        * @param {*} node
+                        * The `Node` argument to set the attributes or add the event
+                        * listeners for. When the given `node` value is not a valid
+                        * DOM `Node`, the function returns and does nothing.
+                        *
+                        * @param {string|Object&lt;string, *>} key
+                        * Specifies either the attribute or event handler name to use,
+                        * or an object containing multiple key, value pairs which are
+                        * each added to the node as either attribute or event handler,
+                        * depending on the respective value.
+                        *
+                        * @param {*} [val]
+                        * Specifies the attribute value or event handler function to add.
+                        * If the `key` parameter is an `Object`, this parameter will be
+                        * ignored.
+                        *
+                        * When `val` is of type function, it will be registered as event
+                        * handler on the given `node` with the `key` parameter being the
+                        * event name.
+                        *
+                        * When `val` is of type object, it will be serialized as JSON and
+                        * added as attribute to the given `node`, using the given `key`
+                        * as attribute name.
+                        *
+                        * When `val` is of any other type, it will be added as attribute
+                        * to the given `node` as-is, with the underlying `setAttribute()`
+                        * call implicitely turning it into a string.
+                        */
+                       attr: function(node, key, val) {
+                               if (!this.elem(node))
+                                       return null;
+
+                               var attr = null;
+
+                               if (typeof(key) === 'object' &amp;&amp; key !== null)
+                                       attr = key;
+                               else if (typeof(key) === 'string')
+                                       attr = {}, attr[key] = val;
+
+                               for (key in attr) {
+                                       if (!attr.hasOwnProperty(key) || attr[key] == null)
+                                               continue;
+
+                                       switch (typeof(attr[key])) {
+                                       case 'function':
+                                               node.addEventListener(key, attr[key]);
+                                               break;
+
+                                       case 'object':
+                                               node.setAttribute(key, JSON.stringify(attr[key]));
+                                               break;
+
+                                       default:
+                                               node.setAttribute(key, attr[key]);
+                                       }
+                               }
+                       },
+
+                       /**
+                        * Creates a new DOM `Node` from the given `html`, `attr` and
+                        * `data` parameters.
+                        *
+                        * This function has multiple signatures, it can be either invoked
+                        * in the form `create(html[, attr[, data]])` or in the form
+                        * `create(html[, data])`. The used variant is determined from the
+                        * type of the second argument.
+                        *
+                        * @instance
+                        * @memberof LuCI.dom
+                        * @param {*} html
+                        * Describes the node to create.
+                        *
+                        * When the value of `html` is of type array, a `DocumentFragment`
+                        * node is created and each item of the array is first converted
+                        * to a DOM `Node` by passing it through `create()` and then added
+                        * as child to the fragment.
+                        *
+                        * When the value of `html` is a DOM `Node` instance, no new
+                        * element will be created but the node will be used as-is.
+                        *
+                        * When the value of `html` is a string starting with `&lt;`, it will
+                        * be passed to `dom.parse()` and the resulting value is used.
+                        *
+                        * When the value of `html` is any other string, it will be passed
+                        * to `document.createElement()` for creating a new DOM `Node` of
+                        * the given name.
+                        *
+                        * @param {Object&lt;string, *>} [attr]
+                        * Specifies an Object of key, value pairs to set as attributes
+                        * or event handlers on the created node. Refer to
+                        * {@link LuCI.dom#attr dom.attr()} for details.
+                        *
+                        * @param {*} [data]
+                        * Specifies children to append to the newly created element.
+                        * Refer to {@link LuCI.dom#append dom.append()} for details.
+                        *
+                        * @throws {InvalidCharacterError}
+                        * Throws an `InvalidCharacterError` when the given `html`
+                        * argument contained malformed markup (such as not escaped
+                        * `&amp;` characters in XHTML mode) or when the given node name
+                        * in `html` contains characters which are not legal in DOM
+                        * element names, such as spaces.
+                        *
+                        * @returns {Node}
+                        * Returns the newly created `Node`.
+                        */
+                       create: function() {
+                               var html = arguments[0],
+                                   attr = arguments[1],
+                                   data = arguments[2],
+                                   elem;
+
+                               if (!(attr instanceof Object) || Array.isArray(attr))
+                                       data = attr, attr = null;
+
+                               if (Array.isArray(html)) {
+                                       elem = document.createDocumentFragment();
+                                       for (var i = 0; i &lt; html.length; i++)
+                                               elem.appendChild(this.create(html[i]));
+                               }
+                               else if (this.elem(html)) {
+                                       elem = html;
+                               }
+                               else if (html.charCodeAt(0) === 60) {
+                                       elem = this.parse(html);
+                               }
+                               else {
+                                       elem = document.createElement(html);
+                               }
+
+                               if (!elem)
+                                       return null;
+
+                               this.attr(elem, attr);
+                               this.append(elem, data);
+
+                               return elem;
+                       },
+
+                       registry: {},
+
+                       /**
+                        * Attaches or detaches arbitrary data to and from a DOM `Node`.
+                        *
+                        * This function is useful to attach non-string values or runtime
+                        * data that is not serializable to DOM nodes. To decouple data
+                        * from the DOM, values are not added directly to nodes, but
+                        * inserted into a registry instead which is then referenced by a
+                        * string key stored as `data-idref` attribute in the node.
+                        *
+                        * This function has multiple signatures and is sensitive to the
+                        * number of arguments passed to it.
+                        *
+                        *  - `dom.data(node)` -
+                        *     Fetches all data associated with the given node.
+                        *  - `dom.data(node, key)` -
+                        *     Fetches a specific key associated with the given node.
+                        *  - `dom.data(node, key, val)` -
+                        *     Sets a specific key to the given value associated with the
+                        *     given node.
+                        *  - `dom.data(node, null)` -
+                        *     Clears any data associated with the node.
+                        *  - `dom.data(node, key, null)` -
+                        *     Clears the given key associated with the node.
+                        *
+                        * @instance
+                        * @memberof LuCI.dom
+                        * @param {Node} node
+                        * The DOM `Node` instance to set or retrieve the data for.
+                        *
+                        * @param {string|null} [key]
+                        * This is either a string specifying the key to retrieve, or
+                        * `null` to unset the entire node data.
+                        *
+                        * @param {*|null} [val]
+                        * This is either a non-`null` value to set for a given key or
+                        * `null` to remove the given `key` from the specified node.
+                        *
+                        * @returns {*}
+                        * Returns the get or set value, or `null` when no value could
+                        * be found.
+                        */
+                       data: function(node, key, val) {
+                               var id = node.getAttribute('data-idref');
+
+                               /* clear all data */
+                               if (arguments.length > 1 &amp;&amp; key == null) {
+                                       if (id != null) {
+                                               node.removeAttribute('data-idref');
+                                               val = this.registry[id]
+                                               delete this.registry[id];
+                                               return val;
+                                       }
+
+                                       return null;
+                               }
+
+                               /* clear a key */
+                               else if (arguments.length > 2 &amp;&amp; key != null &amp;&amp; val == null) {
+                                       if (id != null) {
+                                               val = this.registry[id][key];
+                                               delete this.registry[id][key];
+                                               return val;
+                                       }
+
+                                       return null;
+                               }
+
+                               /* set a key */
+                               else if (arguments.length > 2 &amp;&amp; key != null &amp;&amp; val != null) {
+                                       if (id == null) {
+                                               do { id = Math.floor(Math.random() * 0xffffffff).toString(16) }
+                                               while (this.registry.hasOwnProperty(id));
+
+                                               node.setAttribute('data-idref', id);
+                                               this.registry[id] = {};
+                                       }
+
+                                       return (this.registry[id][key] = val);
+                               }
+
+                               /* get all data */
+                               else if (arguments.length == 1) {
+                                       if (id != null)
+                                               return this.registry[id];
+
+                                       return null;
+                               }
+
+                               /* get a key */
+                               else if (arguments.length == 2) {
+                                       if (id != null)
+                                               return this.registry[id][key];
+                               }
+
+                               return null;
+                       },
+
+                       /**
+                        * Binds the given class instance ot the specified DOM `Node`.
+                        *
+                        * This function uses the `dom.data()` facility to attach the
+                        * passed instance of a Class to a node. This is needed for
+                        * complex widget elements or similar where the corresponding
+                        * class instance responsible for the element must be retrieved
+                        * from DOM nodes obtained by `querySelector()` or similar means.
+                        *
+                        * @instance
+                        * @memberof LuCI.dom
+                        * @param {Node} node
+                        * The DOM `Node` instance to bind the class to.
+                        *
+                        * @param {Class} inst
+                        * The Class instance to bind to the node.
+                        *
+                        * @throws {TypeError}
+                        * Throws a `TypeError` when the given instance argument isn't
+                        * a valid Class instance.
+                        *
+                        * @returns {Class}
+                        * Returns the bound class instance.
+                        */
+                       bindClassInstance: function(node, inst) {
+                               if (!(inst instanceof Class))
+                                       L.error('TypeError', 'Argument must be a class instance');
+
+                               return this.data(node, '_class', inst);
+                       },
+
+                       /**
+                        * Finds a bound class instance on the given node itself or the
+                        * first bound instance on its closest parent node.
+                        *
+                        * @instance
+                        * @memberof LuCI.dom
+                        * @param {Node} node
+                        * The DOM `Node` instance to start from.
+                        *
+                        * @returns {Class|null}
+                        * Returns the founds class instance if any or `null` if no bound
+                        * class could be found on the node itself or any of its parents.
+                        */
+                       findClassInstance: function(node) {
+                               var inst = null;
+
+                               do {
+                                       inst = this.data(node, '_class');
+                                       node = node.parentNode;
+                               }
+                               while (!(inst instanceof Class) &amp;&amp; node != null);
+
+                               return inst;
+                       },
+
+                       /**
+                        * Finds a bound class instance on the given node itself or the
+                        * first bound instance on its closest parent node and invokes
+                        * the specified method name on the found class instance.
+                        *
+                        * @instance
+                        * @memberof LuCI.dom
+                        * @param {Node} node
+                        * The DOM `Node` instance to start from.
+                        *
+                        * @param {string} method
+                        * The name of the method to invoke on the found class instance.
+                        *
+                        * @param {...*} params
+                        * Additional arguments to pass to the invoked method as-is.
+                        *
+                        * @returns {*|null}
+                        * Returns the return value of the invoked method if a class
+                        * instance and method has been found. Returns `null` if either
+                        * no bound class instance could be found, or if the found
+                        * instance didn't have the requested `method`.
+                        */
+                       callClassMethod: function(node, method /*, ... */) {
+                               var inst = this.findClassInstance(node);
+
+                               if (inst == null || typeof(inst[method]) != 'function')
+                                       return null;
+
+                               return inst[method].apply(inst, inst.varargs(arguments, 2));
+                       },
+
+                       /**
+                        * The ignore callback function is invoked by `isEmpty()` for each
+                        * child node to decide whether to ignore a child node or not.
+                        *
+                        * When this function returns `false`, the node passed to it is
+                        * ignored, else not.
+                        *
+                        * @callback LuCI.dom~ignoreCallbackFn
+                        * @param {Node} node
+                        * The child node to test.
+                        *
+                        * @returns {boolean}
+                        * Boolean indicating whether to ignore the node or not.
+                        */
+
+                       /**
+                        * Tests whether a given DOM `Node` instance is empty or appears
+                        * empty.
+                        *
+                        * Any element child nodes which have the CSS class `hidden` set
+                        * or for which the optionally passed `ignoreFn` callback function
+                        * returns `false` are ignored.
+                        *
+                        * @instance
+                        * @memberof LuCI.dom
+                        * @param {Node} node
+                        * The DOM `Node` instance to test.
+                        *
+                        * @param {LuCI.dom~ignoreCallbackFn} [ignoreFn]
+                        * Specifies an optional function which is invoked for each child
+                        * node to decide whether the child node should be ignored or not.
+                        *
+                        * @returns {boolean}
+                        * Returns `true` if the node does not have any children or if
+                        * any children node either has a `hidden` CSS class or a `false`
+                        * result when testing it using the given `ignoreFn`.
+                        */
+                       isEmpty: function(node, ignoreFn) {
+                               for (var child = node.firstElementChild; child != null; child = child.nextElementSibling)
+                                       if (!child.classList.contains('hidden') &amp;&amp; (!ignoreFn || !ignoreFn(child)))
+                                               return false;
+
+                               return true;
+                       }
+               }),
+
+               Poll: Poll,
+               Class: Class,
+               Request: Request,
+
+               /**
+                * @class
+                * @memberof LuCI
+                * @hideconstructor
+                * @classdesc
+                *
+                * The `view` class forms the basis of views and provides a standard
+                * set of methods to inherit from.
+                */
+               view: Class.extend(/* @lends LuCI.view.prototype */ {
+                       __name__: 'LuCI.View',
+
+                       __init__: function() {
+                               var vp = document.getElementById('view');
+
+                               L.dom.content(vp, E('div', { 'class': 'spinning' }, _('Loading view…')));
+
+                               return Promise.resolve(this.load())
+                                       .then(L.bind(this.render, this))
+                                       .then(L.bind(function(nodes) {
+                                               var vp = document.getElementById('view');
+
+                                               L.dom.content(vp, nodes);
+                                               L.dom.append(vp, this.addFooter());
+                                       }, this)).catch(L.error);
+                       },
+
+                       /**
+                        * The load function is invoked before the view is rendered.
+                        *
+                        * The invocation of this function is wrapped by
+                        * `Promise.resolve()` so it may return Promises if needed.
+                        *
+                        * The return value of the function (or the resolved values
+                        * of the promise returned by it) will be passed as first
+                        * argument to `render()`.
+                        *
+                        * This function is supposed to be overwritten by subclasses,
+                        * the default implementation does nothing.
+                        *
+                        * @instance
+                        * @abstract
+                        * @memberof LuCI.view
+                        *
+                        * @returns {*|Promise&lt;*>}
+                        * May return any value or a Promise resolving to any value.
+                        */
+                       load: function() {},
+
+                       /**
+                        * The render function is invoked after the
+                        * {@link LuCI.view#load load()} function and responsible
+                        * for setting up the view contents. It must return a DOM
+                        * `Node` or `DocumentFragment` holding the contents to
+                        * insert into the view area.
+                        *
+                        * The invocation of this function is wrapped by
+                        * `Promise.resolve()` so it may return Promises if needed.
+                        *
+                        * The return value of the function (or the resolved values
+                        * of the promise returned by it) will be inserted into the
+                        * main content area using
+                        * {@link LuCI.dom#append dom.append()}.
+                        *
+                        * This function is supposed to be overwritten by subclasses,
+                        * the default implementation does nothing.
+                        *
+                        * @instance
+                        * @abstract
+                        * @memberof LuCI.view
+                        * @param {*|null} load_results
+                        * This function will receive the return value of the
+                        * {@link LuCI.view#load view.load()} function as first
+                        * argument.
+                        *
+                        * @returns {Node|Promise&lt;Node>}
+                        * Should return a DOM `Node` value or a `Promise` resolving
+                        * to a `Node` value.
+                        */
+                       render: function() {},
+
+                       /**
+                        * The handleSave function is invoked when the user clicks
+                        * the `Save` button in the page action footer.
+                        *
+                        * The default implementation should be sufficient for most
+                        * views using {@link form#Map form.Map()} based forms - it
+                        * will iterate all forms present in the view and invoke
+                        * the {@link form#Map#save Map.save()} method on each form.
+                        *
+                        * Views not using `Map` instances or requiring other special
+                        * logic should overwrite `handleSave()` with a custom
+                        * implementation.
+                        *
+                        * To disable the `Save` page footer button, views extending
+                        * this base class should overwrite the `handleSave` function
+                        * with `null`.
+                        *
+                        * The invocation of this function is wrapped by
+                        * `Promise.resolve()` so it may return Promises if needed.
+                        *
+                        * @instance
+                        * @memberof LuCI.view
+                        * @param {Event} ev
+                        * The DOM event that triggered the function.
+                        *
+                        * @returns {*|Promise&lt;*>}
+                        * Any return values of this function are discarded, but
+                        * passed through `Promise.resolve()` to ensure that any
+                        * returned promise runs to completion before the button
+                        * is reenabled.
+                        */
+                       handleSave: function(ev) {
+                               var tasks = [];
+
+                               document.getElementById('maincontent')
+                                       .querySelectorAll('.cbi-map').forEach(function(map) {
+                                               tasks.push(L.dom.callClassMethod(map, 'save'));
+                                       });
+
+                               return Promise.all(tasks);
+                       },
+
+                       /**
+                        * The handleSaveApply function is invoked when the user clicks
+                        * the `Save &amp; Apply` button in the page action footer.
+                        *
+                        * The default implementation should be sufficient for most
+                        * views using {@link form#Map form.Map()} based forms - it
+                        * will first invoke
+                        * {@link LuCI.view.handleSave view.handleSave()} and then
+                        * call {@link ui#changes#apply ui.changes.apply()} to start the
+                        * modal config apply and page reload flow.
+                        *
+                        * Views not using `Map` instances or requiring other special
+                        * logic should overwrite `handleSaveApply()` with a custom
+                        * implementation.
+                        *
+                        * To disable the `Save &amp; Apply` page footer button, views
+                        * extending this base class should overwrite the
+                        * `handleSaveApply` function with `null`.
+                        *
+                        * The invocation of this function is wrapped by
+                        * `Promise.resolve()` so it may return Promises if needed.
+                        *
+                        * @instance
+                        * @memberof LuCI.view
+                        * @param {Event} ev
+                        * The DOM event that triggered the function.
+                        *
+                        * @returns {*|Promise&lt;*>}
+                        * Any return values of this function are discarded, but
+                        * passed through `Promise.resolve()` to ensure that any
+                        * returned promise runs to completion before the button
+                        * is reenabled.
+                        */
+                       handleSaveApply: function(ev) {
+                               return this.handleSave(ev).then(function() {
+                                       L.ui.changes.apply(true);
+                               });
+                       },
+
+                       /**
+                        * The handleReset function is invoked when the user clicks
+                        * the `Reset` button in the page action footer.
+                        *
+                        * The default implementation should be sufficient for most
+                        * views using {@link form#Map form.Map()} based forms - it
+                        * will iterate all forms present in the view and invoke
+                        * the {@link form#Map#save Map.reset()} method on each form.
+                        *
+                        * Views not using `Map` instances or requiring other special
+                        * logic should overwrite `handleReset()` with a custom
+                        * implementation.
+                        *
+                        * To disable the `Reset` page footer button, views extending
+                        * this base class should overwrite the `handleReset` function
+                        * with `null`.
+                        *
+                        * The invocation of this function is wrapped by
+                        * `Promise.resolve()` so it may return Promises if needed.
+                        *
+                        * @instance
+                        * @memberof LuCI.view
+                        * @param {Event} ev
+                        * The DOM event that triggered the function.
+                        *
+                        * @returns {*|Promise&lt;*>}
+                        * Any return values of this function are discarded, but
+                        * passed through `Promise.resolve()` to ensure that any
+                        * returned promise runs to completion before the button
+                        * is reenabled.
+                        */
+                       handleReset: function(ev) {
+                               var tasks = [];
+
+                               document.getElementById('maincontent')
+                                       .querySelectorAll('.cbi-map').forEach(function(map) {
+                                               tasks.push(L.dom.callClassMethod(map, 'reset'));
+                                       });
+
+                               return Promise.all(tasks);
+                       },
+
+                       /**
+                        * Renders a standard page action footer if any of the
+                        * `handleSave()`, `handleSaveApply()` or `handleReset()`
+                        * functions are defined.
+                        *
+                        * The default implementation should be sufficient for most
+                        * views - it will render a standard page footer with action
+                        * buttons labeled `Save`, `Save &amp; Apply` and `Reset`
+                        * triggering the `handleSave()`, `handleSaveApply()` and
+                        * `handleReset()` functions respectively.
+                        *
+                        * When any of these `handle*()` functions is overwritten
+                        * with `null` by a view extending this class, the
+                        * corresponding button will not be rendered.
+                        *
+                        * @instance
+                        * @memberof LuCI.view
+                        * @returns {DocumentFragment}
+                        * Returns a `DocumentFragment` containing the footer bar
+                        * with buttons for each corresponding `handle*()` action
+                        * or an empty `DocumentFragment` if all three `handle*()`
+                        * methods are overwritten with `null`.
+                        */
+                       addFooter: function() {
+                               var footer = E([]);
+
+                               if (this.handleSaveApply || this.handleSave || this.handleReset) {
+                                       footer.appendChild(E('div', { 'class': 'cbi-page-actions' }, [
+                                               this.handleSaveApply ? E('button', {
+                                                       'class': 'cbi-button cbi-button-apply',
+                                                       'click': L.ui.createHandlerFn(this, 'handleSaveApply')
+                                               }, [ _('Save &amp; Apply') ]) : '', ' ',
+                                               this.handleSave ? E('button', {
+                                                       'class': 'cbi-button cbi-button-save',
+                                                       'click': L.ui.createHandlerFn(this, 'handleSave')
+                                               }, [ _('Save') ]) : '', ' ',
+                                               this.handleReset ? E('button', {
+                                                       'class': 'cbi-button cbi-button-reset',
+                                                       'click': L.ui.createHandlerFn(this, 'handleReset')
+                                               }, [ _('Reset') ]) : ''
+                                       ]));
+                               }
+
+                               return footer;
+                       }
+               })
+       });
+
+       /**
+        * @class
+        * @memberof LuCI
+        * @deprecated
+        * @classdesc
+        *
+        * The `LuCI.XHR` class is a legacy compatibility shim for the
+        * functionality formerly provided by `xhr.js`. It is registered as global
+        * `window.XHR` symbol for compatibility with legacy code.
+        *
+        * New code should use {@link LuCI.Request} instead to implement HTTP
+        * request handling.
+        */
+       var XHR = Class.extend(/** @lends LuCI.XHR.prototype */ {
+               __name__: 'LuCI.XHR',
+               __init__: function() {
+                       if (window.console &amp;&amp; console.debug)
+                               console.debug('Direct use XHR() is deprecated, please use L.Request instead');
+               },
+
+               _response: function(cb, res, json, duration) {
+                       if (this.active)
+                               cb(res, json, duration);
+                       delete this.active;
+               },
+
+               /**
+                * This function is a legacy wrapper around
+                * {@link LuCI#get LuCI.get()}.
+                *
+                * @instance
+                * @deprecated
+                * @memberof LuCI.XHR
+                *
+                * @param {string} url
+                * The URL to request
+                *
+                * @param {Object} [data]
+                * Additional query string data
+                *
+                * @param {LuCI.requestCallbackFn} [callback]
+                * Callback function to invoke on completion
+                *
+                * @param {number} [timeout]
+                * Request timeout to use
+                *
+                * @return {Promise&lt;null>}
+                */
+               get: function(url, data, callback, timeout) {
+                       this.active = true;
+                       L.get(url, data, this._response.bind(this, callback), timeout);
+               },
+
+               /**
+                * This function is a legacy wrapper around
+                * {@link LuCI#post LuCI.post()}.
+                *
+                * @instance
+                * @deprecated
+                * @memberof LuCI.XHR
+                *
+                * @param {string} url
+                * The URL to request
+                *
+                * @param {Object} [data]
+                * Additional data to append to the request body.
+                *
+                * @param {LuCI.requestCallbackFn} [callback]
+                * Callback function to invoke on completion
+                *
+                * @param {number} [timeout]
+                * Request timeout to use
+                *
+                * @return {Promise&lt;null>}
+                */
+               post: function(url, data, callback, timeout) {
+                       this.active = true;
+                       L.post(url, data, this._response.bind(this, callback), timeout);
+               },
+
+               /**
+                * Cancels a running request.
+                *
+                * This function does not actually cancel the underlying
+                * `XMLHTTPRequest` request but it sets a flag which prevents the
+                * invocation of the callback function when the request eventually
+                * finishes or timed out.
+                *
+                * @instance
+                * @deprecated
+                * @memberof LuCI.XHR
+                */
+               cancel: function() { delete this.active },
+
+               /**
+                * Checks the running state of the request.
+                *
+                * @instance
+                * @deprecated
+                * @memberof LuCI.XHR
+                *
+                * @returns {boolean}
+                * Returns `true` if the request is still running or `false` if it
+                * already completed.
+                */
+               busy: function() { return (this.active === true) },
+
+               /**
+                * Ignored for backwards compatibility.
+                *
+                * This function does nothing.
+                *
+                * @instance
+                * @deprecated
+                * @memberof LuCI.XHR
+                */
+               abort: function() {},
+
+               /**
+                * Existing for backwards compatibility.
+                *
+                * This function simply throws an `InternalError` when invoked.
+                *
+                * @instance
+                * @deprecated
+                * @memberof LuCI.XHR
+                *
+                * @throws {InternalError}
+                * Throws an `InternalError` with the message `Not implemented`
+                * when invoked.
+                */
+               send_form: function() { L.error('InternalError', 'Not implemented') },
+       });
+
+       XHR.get = function() { return window.L.get.apply(window.L, arguments) };
+       XHR.post = function() { return window.L.post.apply(window.L, arguments) };
+       XHR.poll = function() { return window.L.poll.apply(window.L, arguments) };
+       XHR.stop = Request.poll.remove.bind(Request.poll);
+       XHR.halt = Request.poll.stop.bind(Request.poll);
+       XHR.run = Request.poll.start.bind(Request.poll);
+       XHR.running = Request.poll.active.bind(Request.poll);
+
+       window.XHR = XHR;
+       window.LuCI = LuCI;
+})(window, document);
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="LuCI.html">LuCI</a></li><li><a href="LuCI.Class.html">Class</a></li><li><a href="LuCI.dom.html">dom</a></li><li><a href="LuCI.fs.html">fs</a></li><li><a href="LuCI.Headers.html">Headers</a></li><li><a href="LuCI.Network.html">Network</a></li><li><a href="LuCI.Network.Device.html">Device</a></li><li><a href="LuCI.Network.Hosts.html">Hosts</a></li><li><a href="LuCI.Network.Protocol.html">Protocol</a></li><li><a href="LuCI.Network.WifiDevice.html">WifiDevice</a></li><li><a href="LuCI.Network.WifiNetwork.html">WifiNetwork</a></li><li><a href="LuCI.Poll.html">Poll</a></li><li><a href="LuCI.Request.html">Request</a></li><li><a href="LuCI.Request.poll.html">poll</a></li><li><a href="LuCI.Response.html">Response</a></li><li><a href="LuCI.rpc.html">rpc</a></li><li><a href="LuCI.uci.html">uci</a></li><li><a href="LuCI.view.html">view</a></li><li><a href="LuCI.XHR.html">XHR</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 09:33:05 GMT+0100 (Central European Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/docs/jsapi/network.js.html b/docs/jsapi/network.js.html
new file mode 100644 (file)
index 0000000..e066333
--- /dev/null
@@ -0,0 +1,4038 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: network.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: network.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>'use strict';
+'require uci';
+'require rpc';
+'require validation';
+
+var proto_errors = {
+       CONNECT_FAILED:                 _('Connection attempt failed'),
+       INVALID_ADDRESS:                _('IP address in invalid'),
+       INVALID_GATEWAY:                _('Gateway address is invalid'),
+       INVALID_LOCAL_ADDRESS:  _('Local IP address is invalid'),
+       MISSING_ADDRESS:                _('IP address is missing'),
+       MISSING_PEER_ADDRESS:   _('Peer address is missing'),
+       NO_DEVICE:                              _('Network device is not present'),
+       NO_IFACE:                               _('Unable to determine device name'),
+       NO_IFNAME:                              _('Unable to determine device name'),
+       NO_WAN_ADDRESS:                 _('Unable to determine external IP address'),
+       NO_WAN_LINK:                    _('Unable to determine upstream interface'),
+       PEER_RESOLVE_FAIL:              _('Unable to resolve peer host name'),
+       PIN_FAILED:                             _('PIN code rejected')
+};
+
+var iface_patterns_ignore = [
+       /^wmaster\d+/,
+       /^wifi\d+/,
+       /^hwsim\d+/,
+       /^imq\d+/,
+       /^ifb\d+/,
+       /^mon\.wlan\d+/,
+       /^sit\d+/,
+       /^gre\d+/,
+       /^gretap\d+/,
+       /^ip6gre\d+/,
+       /^ip6tnl\d+/,
+       /^tunl\d+/,
+       /^lo$/
+];
+
+var iface_patterns_wireless = [
+       /^wlan\d+/,
+       /^wl\d+/,
+       /^ath\d+/,
+       /^\w+\.network\d+/
+];
+
+var iface_patterns_virtual = [ ];
+
+var callLuciNetworkDevices = rpc.declare({
+       object: 'luci-rpc',
+       method: 'getNetworkDevices',
+       expect: { '': {} }
+});
+
+var callLuciWirelessDevices = rpc.declare({
+       object: 'luci-rpc',
+       method: 'getWirelessDevices',
+       expect: { '': {} }
+});
+
+var callLuciBoardJSON = rpc.declare({
+       object: 'luci-rpc',
+       method: 'getBoardJSON'
+});
+
+var callLuciHostHints = rpc.declare({
+       object: 'luci-rpc',
+       method: 'getHostHints',
+       expect: { '': {} }
+});
+
+var callIwinfoAssoclist = rpc.declare({
+       object: 'iwinfo',
+       method: 'assoclist',
+       params: [ 'device', 'mac' ],
+       expect: { results: [] }
+});
+
+var callIwinfoScan = rpc.declare({
+       object: 'iwinfo',
+       method: 'scan',
+       params: [ 'device' ],
+       nobatch: true,
+       expect: { results: [] }
+});
+
+var callNetworkInterfaceDump = rpc.declare({
+       object: 'network.interface',
+       method: 'dump',
+       expect: { 'interface': [] }
+});
+
+var callNetworkProtoHandlers = rpc.declare({
+       object: 'network',
+       method: 'get_proto_handlers',
+       expect: { '': {} }
+});
+
+var _init = null,
+    _state = null,
+    _protocols = {},
+    _protospecs = {};
+
+function getProtocolHandlers(cache) {
+       return callNetworkProtoHandlers().then(function(protos) {
+               /* Register "none" protocol */
+               if (!protos.hasOwnProperty('none'))
+                       Object.assign(protos, { none: { no_device: false } });
+
+               /* Hack: emulate relayd protocol */
+               if (!protos.hasOwnProperty('relay'))
+                       Object.assign(protos, { relay: { no_device: true } });
+
+               Object.assign(_protospecs, protos);
+
+               return Promise.all(Object.keys(protos).map(function(p) {
+                       return Promise.resolve(L.require('protocol.%s'.format(p))).catch(function(err) {
+                               if (L.isObject(err) &amp;&amp; err.name != 'NetworkError')
+                                       L.error(err);
+                       });
+               })).then(function() {
+                       return protos;
+               });
+       }).catch(function() {
+               return {};
+       });
+}
+
+function getWifiStateBySid(sid) {
+       var s = uci.get('wireless', sid);
+
+       if (s != null &amp;&amp; s['.type'] == 'wifi-iface') {
+               for (var radioname in _state.radios) {
+                       for (var i = 0; i &lt; _state.radios[radioname].interfaces.length; i++) {
+                               var netstate = _state.radios[radioname].interfaces[i];
+
+                               if (typeof(netstate.section) != 'string')
+                                       continue;
+
+                               var s2 = uci.get('wireless', netstate.section);
+
+                               if (s2 != null &amp;&amp; s['.type'] == s2['.type'] &amp;&amp; s['.name'] == s2['.name']) {
+                                       if (s2['.anonymous'] == false &amp;&amp; netstate.section.charAt(0) == '@')
+                                               return null;
+
+                                       return [ radioname, _state.radios[radioname], netstate ];
+                               }
+                       }
+               }
+       }
+
+       return null;
+}
+
+function getWifiStateByIfname(ifname) {
+       for (var radioname in _state.radios) {
+               for (var i = 0; i &lt; _state.radios[radioname].interfaces.length; i++) {
+                       var netstate = _state.radios[radioname].interfaces[i];
+
+                       if (typeof(netstate.ifname) != 'string')
+                               continue;
+
+                       if (netstate.ifname == ifname)
+                               return [ radioname, _state.radios[radioname], netstate ];
+               }
+       }
+
+       return null;
+}
+
+function isWifiIfname(ifname) {
+       for (var i = 0; i &lt; iface_patterns_wireless.length; i++)
+               if (iface_patterns_wireless[i].test(ifname))
+                       return true;
+
+       return false;
+}
+
+function getWifiSidByNetid(netid) {
+       var m = /^(\w+)\.network(\d+)$/.exec(netid);
+       if (m) {
+               var sections = uci.sections('wireless', 'wifi-iface');
+               for (var i = 0, n = 0; i &lt; sections.length; i++) {
+                       if (sections[i].device != m[1])
+                               continue;
+
+                       if (++n == +m[2])
+                               return sections[i]['.name'];
+               }
+       }
+
+       return null;
+}
+
+function getWifiSidByIfname(ifname) {
+       var sid = getWifiSidByNetid(ifname);
+
+       if (sid != null)
+               return sid;
+
+       var res = getWifiStateByIfname(ifname);
+
+       if (res != null &amp;&amp; L.isObject(res[2]) &amp;&amp; typeof(res[2].section) == 'string')
+               return res[2].section;
+
+       return null;
+}
+
+function getWifiNetidBySid(sid) {
+       var s = uci.get('wireless', sid);
+       if (s != null &amp;&amp; s['.type'] == 'wifi-iface') {
+               var radioname = s.device;
+               if (typeof(s.device) == 'string') {
+                       var i = 0, netid = null, sections = uci.sections('wireless', 'wifi-iface');
+                       for (var i = 0, n = 0; i &lt; sections.length; i++) {
+                               if (sections[i].device != s.device)
+                                       continue;
+
+                               n++;
+
+                               if (sections[i]['.name'] != s['.name'])
+                                       continue;
+
+                               return [ '%s.network%d'.format(s.device, n), s.device ];
+                       }
+
+               }
+       }
+
+       return null;
+}
+
+function getWifiNetidByNetname(name) {
+       var sections = uci.sections('wireless', 'wifi-iface');
+       for (var i = 0; i &lt; sections.length; i++) {
+               if (typeof(sections[i].network) != 'string')
+                       continue;
+
+               var nets = sections[i].network.split(/\s+/);
+               for (var j = 0; j &lt; nets.length; j++) {
+                       if (nets[j] != name)
+                               continue;
+
+                       return getWifiNetidBySid(sections[i]['.name']);
+               }
+       }
+
+       return null;
+}
+
+function isVirtualIfname(ifname) {
+       for (var i = 0; i &lt; iface_patterns_virtual.length; i++)
+               if (iface_patterns_virtual[i].test(ifname))
+                       return true;
+
+       return false;
+}
+
+function isIgnoredIfname(ifname) {
+       for (var i = 0; i &lt; iface_patterns_ignore.length; i++)
+               if (iface_patterns_ignore[i].test(ifname))
+                       return true;
+
+       return false;
+}
+
+function appendValue(config, section, option, value) {
+       var values = uci.get(config, section, option),
+           isArray = Array.isArray(values),
+           rv = false;
+
+       if (isArray == false)
+               values = L.toArray(values);
+
+       if (values.indexOf(value) == -1) {
+               values.push(value);
+               rv = true;
+       }
+
+       uci.set(config, section, option, isArray ? values : values.join(' '));
+
+       return rv;
+}
+
+function removeValue(config, section, option, value) {
+       var values = uci.get(config, section, option),
+           isArray = Array.isArray(values),
+           rv = false;
+
+       if (isArray == false)
+               values = L.toArray(values);
+
+       for (var i = values.length - 1; i >= 0; i--) {
+               if (values[i] == value) {
+                       values.splice(i, 1);
+                       rv = true;
+               }
+       }
+
+       if (values.length > 0)
+               uci.set(config, section, option, isArray ? values : values.join(' '));
+       else
+               uci.unset(config, section, option);
+
+       return rv;
+}
+
+function prefixToMask(bits, v6) {
+       var w = v6 ? 128 : 32,
+           m = [];
+
+       if (bits > w)
+               return null;
+
+       for (var i = 0; i &lt; w / 16; i++) {
+               var b = Math.min(16, bits);
+               m.push((0xffff &lt;&lt; (16 - b)) &amp; 0xffff);
+               bits -= b;
+       }
+
+       if (v6)
+               return String.prototype.format.apply('%x:%x:%x:%x:%x:%x:%x:%x', m).replace(/:0(?::0)+$/, '::');
+       else
+               return '%d.%d.%d.%d'.format(m[0] >>> 8, m[0] &amp; 0xff, m[1] >>> 8, m[1] &amp; 0xff);
+}
+
+function maskToPrefix(mask, v6) {
+       var m = v6 ? validation.parseIPv6(mask) : validation.parseIPv4(mask);
+
+       if (!m)
+               return null;
+
+       var bits = 0;
+
+       for (var i = 0, z = false; i &lt; m.length; i++) {
+               z = z || !m[i];
+
+               while (!z &amp;&amp; (m[i] &amp; (v6 ? 0x8000 : 0x80))) {
+                       m[i] = (m[i] &lt;&lt; 1) &amp; (v6 ? 0xffff : 0xff);
+                       bits++;
+               }
+
+               if (m[i])
+                       return null;
+       }
+
+       return bits;
+}
+
+function initNetworkState(refresh) {
+       if (_state == null || refresh) {
+               _init = _init || Promise.all([
+                       L.resolveDefault(callNetworkInterfaceDump(), []),
+                       L.resolveDefault(callLuciBoardJSON(), {}),
+                       L.resolveDefault(callLuciNetworkDevices(), {}),
+                       L.resolveDefault(callLuciWirelessDevices(), {}),
+                       L.resolveDefault(callLuciHostHints(), {}),
+                       getProtocolHandlers(),
+                       uci.load(['network', 'wireless', 'luci'])
+               ]).then(function(data) {
+                       var netifd_ifaces = data[0],
+                           board_json    = data[1],
+                           luci_devs     = data[2];
+
+                       var s = {
+                               isTunnel: {}, isBridge: {}, isSwitch: {}, isWifi: {},
+                               ifaces: netifd_ifaces, radios: data[3], hosts: data[4],
+                               netdevs: {}, bridges: {}, switches: {}
+                       };
+
+                       for (var name in luci_devs) {
+                               var dev = luci_devs[name];
+
+                               if (isVirtualIfname(name))
+                                       s.isTunnel[name] = true;
+
+                               if (!s.isTunnel[name] &amp;&amp; isIgnoredIfname(name))
+                                       continue;
+
+                               s.netdevs[name] = s.netdevs[name] || {
+                                       idx:      dev.ifindex,
+                                       name:     name,
+                                       rawname:  name,
+                                       flags:    dev.flags,
+                                       stats:    dev.stats,
+                                       macaddr:  dev.mac,
+                                       type:     dev.type,
+                                       mtu:      dev.mtu,
+                                       qlen:     dev.qlen,
+                                       ipaddrs:  [],
+                                       ip6addrs: []
+                               };
+
+                               if (Array.isArray(dev.ipaddrs))
+                                       for (var i = 0; i &lt; dev.ipaddrs.length; i++)
+                                               s.netdevs[name].ipaddrs.push(dev.ipaddrs[i].address + '/' + dev.ipaddrs[i].netmask);
+
+                               if (Array.isArray(dev.ip6addrs))
+                                       for (var i = 0; i &lt; dev.ip6addrs.length; i++)
+                                               s.netdevs[name].ip6addrs.push(dev.ip6addrs[i].address + '/' + dev.ip6addrs[i].netmask);
+                       }
+
+                       for (var name in luci_devs) {
+                               var dev = luci_devs[name];
+
+                               if (!dev.bridge)
+                                       continue;
+
+                               var b = {
+                                       name:    name,
+                                       id:      dev.id,
+                                       stp:     dev.stp,
+                                       ifnames: []
+                               };
+
+                               for (var i = 0; dev.ports &amp;&amp; i &lt; dev.ports.length; i++) {
+                                       var subdev = s.netdevs[dev.ports[i]];
+
+                                       if (subdev == null)
+                                               continue;
+
+                                       b.ifnames.push(subdev);
+                                       subdev.bridge = b;
+                               }
+
+                               s.bridges[name] = b;
+                               s.isBridge[name] = true;
+                       }
+
+                       if (L.isObject(board_json.switch)) {
+                               for (var switchname in board_json.switch) {
+                                       var layout = board_json.switch[switchname],
+                                           netdevs = {},
+                                           nports = {},
+                                           ports = [],
+                                           pnum = null,
+                                           role = null;
+
+                                       if (L.isObject(layout) &amp;&amp; Array.isArray(layout.ports)) {
+                                               for (var i = 0, port; (port = layout.ports[i]) != null; i++) {
+                                                       if (typeof(port) == 'object' &amp;&amp; typeof(port.num) == 'number' &amp;&amp;
+                                                               (typeof(port.role) == 'string' || typeof(port.device) == 'string')) {
+                                                               var spec = {
+                                                                       num:   port.num,
+                                                                       role:  port.role || 'cpu',
+                                                                       index: (port.index != null) ? port.index : port.num
+                                                               };
+
+                                                               if (port.device != null) {
+                                                                       spec.device = port.device;
+                                                                       spec.tagged = spec.need_tag;
+                                                                       netdevs[port.num] = port.device;
+                                                               }
+
+                                                               ports.push(spec);
+
+                                                               if (port.role != null)
+                                                                       nports[port.role] = (nports[port.role] || 0) + 1;
+                                                       }
+                                               }
+
+                                               ports.sort(function(a, b) {
+                                                       if (a.role != b.role)
+                                                               return (a.role &lt; b.role) ? -1 : 1;
+
+                                                       return (a.index - b.index);
+                                               });
+
+                                               for (var i = 0, port; (port = ports[i]) != null; i++) {
+                                                       if (port.role != role) {
+                                                               role = port.role;
+                                                               pnum = 1;
+                                                       }
+
+                                                       if (role == 'cpu')
+                                                               port.label = 'CPU (%s)'.format(port.device);
+                                                       else if (nports[role] > 1)
+                                                               port.label = '%s %d'.format(role.toUpperCase(), pnum++);
+                                                       else
+                                                               port.label = role.toUpperCase();
+
+                                                       delete port.role;
+                                                       delete port.index;
+                                               }
+
+                                               s.switches[switchname] = {
+                                                       ports: ports,
+                                                       netdevs: netdevs
+                                               };
+                                       }
+                               }
+                       }
+
+                       if (L.isObject(board_json.dsl) &amp;&amp; L.isObject(board_json.dsl.modem)) {
+                               s.hasDSLModem = board_json.dsl.modem;
+                       }
+
+                       _init = null;
+
+                       return (_state = s);
+               });
+       }
+
+       return (_state != null ? Promise.resolve(_state) : _init);
+}
+
+function ifnameOf(obj) {
+       if (obj instanceof Protocol)
+               return obj.getIfname();
+       else if (obj instanceof Device)
+               return obj.getName();
+       else if (obj instanceof WifiDevice)
+               return obj.getName();
+       else if (obj instanceof WifiNetwork)
+               return obj.getIfname();
+       else if (typeof(obj) == 'string')
+               return obj.replace(/:.+$/, '');
+
+       return null;
+}
+
+function networkSort(a, b) {
+       return a.getName() > b.getName();
+}
+
+function deviceSort(a, b) {
+       var typeWeigth = { wifi: 2, alias: 3 },
+        weightA = typeWeigth[a.getType()] || 1,
+        weightB = typeWeigth[b.getType()] || 1;
+
+    if (weightA != weightB)
+       return weightA - weightB;
+
+       return a.getName() > b.getName();
+}
+
+function formatWifiEncryption(enc) {
+       if (!L.isObject(enc))
+               return null;
+
+       if (!enc.enabled)
+               return 'None';
+
+       var ciphers = Array.isArray(enc.ciphers)
+               ? enc.ciphers.map(function(c) { return c.toUpperCase() }) : [ 'NONE' ];
+
+       if (Array.isArray(enc.wep)) {
+               var has_open = false,
+                   has_shared = false;
+
+               for (var i = 0; i &lt; enc.wep.length; i++)
+                       if (enc.wep[i] == 'open')
+                               has_open = true;
+                       else if (enc.wep[i] == 'shared')
+                               has_shared = true;
+
+               if (has_open &amp;&amp; has_shared)
+                       return 'WEP Open/Shared (%s)'.format(ciphers.join(', '));
+               else if (has_open)
+                       return 'WEP Open System (%s)'.format(ciphers.join(', '));
+               else if (has_shared)
+                       return 'WEP Shared Auth (%s)'.format(ciphers.join(', '));
+
+               return 'WEP';
+       }
+
+       if (Array.isArray(enc.wpa)) {
+               var versions = [],
+                   suites = Array.isArray(enc.authentication)
+                       ? enc.authentication.map(function(a) { return a.toUpperCase() }) : [ 'NONE' ];
+
+               for (var i = 0; i &lt; enc.wpa.length; i++)
+                       switch (enc.wpa[i]) {
+                       case 1:
+                               versions.push('WPA');
+                               break;
+
+                       default:
+                               versions.push('WPA%d'.format(enc.wpa[i]));
+                               break;
+                       }
+
+               if (versions.length > 1)
+                       return 'mixed %s %s (%s)'.format(versions.join('/'), suites.join(', '), ciphers.join(', '));
+
+               return '%s %s (%s)'.format(versions[0], suites.join(', '), ciphers.join(', '));
+       }
+
+       return 'Unknown';
+}
+
+function enumerateNetworks() {
+       var uciInterfaces = uci.sections('network', 'interface'),
+           networks = {};
+
+       for (var i = 0; i &lt; uciInterfaces.length; i++)
+               networks[uciInterfaces[i]['.name']] = this.instantiateNetwork(uciInterfaces[i]['.name']);
+
+       for (var i = 0; i &lt; _state.ifaces.length; i++)
+               if (networks[_state.ifaces[i].interface] == null)
+                       networks[_state.ifaces[i].interface] =
+                               this.instantiateNetwork(_state.ifaces[i].interface, _state.ifaces[i].proto);
+
+       var rv = [];
+
+       for (var network in networks)
+               if (networks.hasOwnProperty(network))
+                       rv.push(networks[network]);
+
+       rv.sort(networkSort);
+
+       return rv;
+}
+
+
+var Hosts, Network, Protocol, Device, WifiDevice, WifiNetwork;
+
+/**
+ * @class
+ * @memberof LuCI
+ * @hideconstructor
+ * @classdesc
+ *
+ * The `LuCI.Network` class combines data from multiple `ubus` apis to
+ * provide an abstraction of the current network configuration state.
+ *
+ * It provides methods to enumerate interfaces and devices, to query
+ * current configuration details and to manipulate settings.
+ */
+Network = L.Class.extend(/** @lends LuCI.Network.prototype */ {
+       /**
+        * Converts the given prefix size in bits to a netmask.
+        *
+        * @method
+        *
+        * @param {number} bits
+        * The prefix size in bits.
+        *
+        * @param {boolean} [v6=false]
+        * Whether to convert the bits value into an IPv4 netmask (`false`) or
+        * an IPv6 netmask (`true`).
+        *
+        * @returns {null|string}
+        * Returns a string containing the netmask corresponding to the bit count
+        * or `null` when the given amount of bits exceeds the maximum possible
+        * value of `32` for IPv4 or `128` for IPv6.
+        */
+       prefixToMask: prefixToMask,
+
+       /**
+        * Converts the given netmask to a prefix size in bits.
+        *
+        * @method
+        *
+        * @param {string} netmask
+        * The netmask to convert into a bit count.
+        *
+        * @param {boolean} [v6=false]
+        * Whether to parse the given netmask as IPv4 (`false`) or IPv6 (`true`)
+        * address.
+        *
+        * @returns {null|number}
+        * Returns the number of prefix bits contained in the netmask or `null`
+        * if the given netmask value was invalid.
+        */
+       maskToPrefix: maskToPrefix,
+
+       /**
+        * An encryption entry describes active wireless encryption settings
+        * such as the used key management protocols, active ciphers and
+        * protocol versions.
+        *
+        * @typedef {Object&lt;string, boolean|Array&lt;number|string>>} LuCI.Network.WifiEncryption
+        * @memberof LuCI.Network
+        *
+        * @property {boolean} enabled
+        * Specifies whether any kind of encryption, such as `WEP` or `WPA` is
+        * enabled. If set to `false`, then no encryption is active and the
+        * corresponding network is open.
+        *
+        * @property {string[]} [wep]
+        * When the `wep` property exists, the network uses WEP encryption.
+        * In this case, the property is set to an array of active WEP modes
+        * which might be either `open`, `shared` or both.
+        *
+        * @property {number[]} [wpa]
+        * When the `wpa` property exists, the network uses WPA security.
+        * In this case, the property is set to an array containing the WPA
+        * protocol versions used, e.g. `[ 1, 2 ]` for WPA/WPA2 mixed mode or
+        * `[ 3 ]` for WPA3-SAE.
+        *
+        * @property {string[]} [authentication]
+        * The `authentication` property only applies to WPA encryption and
+        * is defined when the `wpa` property is set as well. It points to
+        * an array of active authentication suites used by the network, e.g.
+        * `[ "psk" ]` for a WPA(2)-PSK network or `[ "psk", "sae" ]` for
+        * mixed WPA2-PSK/WPA3-SAE encryption.
+        *
+        * @property {string[]} [ciphers]
+        * If either WEP or WPA encryption is active, then the `ciphers`
+        * property will be set to an array describing the active encryption
+        * ciphers used by the network, e.g. `[ "tkip", "ccmp" ]` for a
+        * WPA/WPA2-PSK mixed network or `[ "wep-40", "wep-104" ]` for an
+        * WEP network.
+        */
+
+       /**
+        * Converts a given {@link LuCI.Network.WifiEncryption encryption entry}
+        * into a human readable string such as `mixed WPA/WPA2 PSK (TKIP, CCMP)`
+        * or `WPA3 SAE (CCMP)`.
+        *
+        * @method
+        *
+        * @param {LuCI.Network.WifiEncryption} encryption
+        * The wireless encryption entry to convert.
+        *
+        * @returns {null|string}
+        * Returns the description string for the given encryption entry or
+        * `null` if the given entry was invalid.
+        */
+       formatWifiEncryption: formatWifiEncryption,
+
+       /**
+        * Flushes the local network state cache and fetches updated information
+        * from the remote `ubus` apis.
+        *
+        * @returns {Promise&lt;Object>}
+        * Returns a promise resolving to the internal network state object.
+        */
+       flushCache: function() {
+               initNetworkState(true);
+               return _init;
+       },
+
+       /**
+        * Instantiates the given {@link LuCI.Network.Protocol Protocol} backend,
+        * optionally using the given network name.
+        *
+        * @param {string} protoname
+        * The protocol backend to use, e.g. `static` or `dhcp`.
+        *
+        * @param {string} [netname=__dummy__]
+        * The network name to use for the instantiated protocol. This should be
+        * usually set to one of the interfaces described in /etc/config/network
+        * but it is allowed to omit it, e.g. to query protocol capabilities
+        * without the need for an existing interface.
+        *
+        * @returns {null|LuCI.Network.Protocol}
+        * Returns the instantiated protocol backend class or `null` if the given
+        * protocol isn't known.
+        */
+       getProtocol: function(protoname, netname) {
+               var v = _protocols[protoname];
+               if (v != null)
+                       return new v(netname || '__dummy__');
+
+               return null;
+       },
+
+       /**
+        * Obtains instances of all known {@link LuCI.Network.Protocol Protocol}
+        * backend classes.
+        *
+        * @returns {Array&lt;LuCI.Network.Protocol>}
+        * Returns an array of protocol class instances.
+        */
+       getProtocols: function() {
+               var rv = [];
+
+               for (var protoname in _protocols)
+                       rv.push(new _protocols[protoname]('__dummy__'));
+
+               return rv;
+       },
+
+       /**
+        * Registers a new {@link LuCI.Network.Protocol Protocol} subclass
+        * with the given methods and returns the resulting subclass value.
+        *
+        * This functions internally calls
+        * {@link LuCI.Class.extend Class.extend()} on the `Network.Protocol`
+        * base class.
+        *
+        * @param {string} protoname
+        * The name of the new protocol to register.
+        *
+        * @param {Object&lt;string, *>} methods
+        * The member methods and values of the new `Protocol` subclass to
+        * be passed to {@link LuCI.Class.extend Class.extend()}.
+        *
+        * @returns {LuCI.Network.Protocol}
+        * Returns the new `Protocol` subclass.
+        */
+       registerProtocol: function(protoname, methods) {
+               var spec = L.isObject(_protospecs) ? _protospecs[protoname] : null;
+               var proto = Protocol.extend(Object.assign({
+                       getI18n: function() {
+                               return protoname;
+                       },
+
+                       isFloating: function() {
+                               return false;
+                       },
+
+                       isVirtual: function() {
+                               return (L.isObject(spec) &amp;&amp; spec.no_device == true);
+                       },
+
+                       renderFormOptions: function(section) {
+
+                       }
+               }, methods, {
+                       __init__: function(name) {
+                               this.sid = name;
+                       },
+
+                       getProtocol: function() {
+                               return protoname;
+                       }
+               }));
+
+               _protocols[protoname] = proto;
+
+               return proto;
+       },
+
+       /**
+        * Registers a new regular expression pattern to recognize
+        * virtual interfaces.
+        *
+        * @param {RegExp} pat
+        * A `RegExp` instance to match a virtual interface name
+        * such as `6in4-wan` or `tun0`.
+        */
+       registerPatternVirtual: function(pat) {
+               iface_patterns_virtual.push(pat);
+       },
+
+       /**
+        * Registers a new human readable translation string for a `Protocol`
+        * error code.
+        *
+        * @param {string} code
+        * The `ubus` protocol error code to register a translation for, e.g.
+        * `NO_DEVICE`.
+        *
+        * @param {string} message
+        * The message to use as translation for the given protocol error code.
+        *
+        * @returns {boolean}
+        * Returns `true` if the error code description has been added or `false`
+        * if either the arguments were invalid or if there already was a
+        * description for the given code.
+        */
+       registerErrorCode: function(code, message) {
+               if (typeof(code) == 'string' &amp;&amp;
+                   typeof(message) == 'string' &amp;&amp;
+                   !proto_errors.hasOwnProperty(code)) {
+                       proto_errors[code] = message;
+                       return true;
+               }
+
+               return false;
+       },
+
+       /**
+        * Adds a new network of the given name and update it with the given
+        * uci option values.
+        *
+        * If a network with the given name already exist but is empty, then
+        * this function will update its option, otherwise it will do nothing.
+        *
+        * @param {string} name
+        * The name of the network to add. Must be in the format `[a-zA-Z0-9_]+`.
+        *
+        * @param {Object&lt;string, string|string[]>} [options]
+        * An object of uci option values to set on the new network or to
+        * update in an existing, empty network.
+        *
+        * @returns {Promise&lt;null|LuCI.Network.Protocol>}
+        * Returns a promise resolving to the `Protocol` subclass instance
+        * describing the added network or resolving to `null` if the name
+        * was invalid or if a non-empty network of the given name already
+        * existed.
+        */
+       addNetwork: function(name, options) {
+               return this.getNetwork(name).then(L.bind(function(existingNetwork) {
+                       if (name != null &amp;&amp; /^[a-zA-Z0-9_]+$/.test(name) &amp;&amp; existingNetwork == null) {
+                               var sid = uci.add('network', 'interface', name);
+
+                               if (sid != null) {
+                                       if (L.isObject(options))
+                                               for (var key in options)
+                                                       if (options.hasOwnProperty(key))
+                                                               uci.set('network', sid, key, options[key]);
+
+                                       return this.instantiateNetwork(sid);
+                               }
+                       }
+                       else if (existingNetwork != null &amp;&amp; existingNetwork.isEmpty()) {
+                               if (L.isObject(options))
+                                       for (var key in options)
+                                               if (options.hasOwnProperty(key))
+                                                       existingNetwork.set(key, options[key]);
+
+                               return existingNetwork;
+                       }
+               }, this));
+       },
+
+       /**
+        * Get a {@link LuCI.Network.Protocol Protocol} instance describing
+        * the network with the given name.
+        *
+        * @param {string} name
+        * The logical interface name of the network get, e.g. `lan` or `wan`.
+        *
+        * @returns {Promise&lt;null|LuCI.Network.Protocol>}
+        * Returns a promise resolving to a
+        * {@link LuCI.Network.Protocol Protocol} subclass instance describing
+        * the network or `null` if the network did not exist.
+        */
+       getNetwork: function(name) {
+               return initNetworkState().then(L.bind(function() {
+                       var section = (name != null) ? uci.get('network', name) : null;
+
+                       if (section != null &amp;&amp; section['.type'] == 'interface') {
+                               return this.instantiateNetwork(name);
+                       }
+                       else if (name != null) {
+                               for (var i = 0; i &lt; _state.ifaces.length; i++)
+                                       if (_state.ifaces[i].interface == name)
+                                               return this.instantiateNetwork(name, _state.ifaces[i].proto);
+                       }
+
+                       return null;
+               }, this));
+       },
+
+       /**
+        * Gets an array containing all known networks.
+        *
+        * @returns {Promise&lt;Array&lt;LuCI.Network.Protocol>>}
+        * Returns a promise resolving to a name-sorted array of
+        * {@link LuCI.Network.Protocol Protocol} subclass instances
+        * describing all known networks.
+        */
+       getNetworks: function() {
+               return initNetworkState().then(L.bind(enumerateNetworks, this));
+       },
+
+       /**
+        * Deletes the given network and its references from the network and
+        * firewall configuration.
+        *
+        * @param {string} name
+        * The name of the network to delete.
+        *
+        * @returns {Promise&lt;boolean>}
+        * Returns a promise resolving to either `true` if the network and
+        * references to it were successfully deleted from the configuration or
+        * `false` if the given network could not be found.
+        */
+       deleteNetwork: function(name) {
+               var requireFirewall = Promise.resolve(L.require('firewall')).catch(function() {});
+
+               return Promise.all([ requireFirewall, initNetworkState() ]).then(function() {
+                       var uciInterface = uci.get('network', name);
+
+                       if (uciInterface != null &amp;&amp; uciInterface['.type'] == 'interface') {
+                               uci.remove('network', name);
+
+                               uci.sections('luci', 'ifstate', function(s) {
+                                       if (s.interface == name)
+                                               uci.remove('luci', s['.name']);
+                               });
+
+                               uci.sections('network', 'alias', function(s) {
+                                       if (s.interface == name)
+                                               uci.remove('network', s['.name']);
+                               });
+
+                               uci.sections('network', 'route', function(s) {
+                                       if (s.interface == name)
+                                               uci.remove('network', s['.name']);
+                               });
+
+                               uci.sections('network', 'route6', function(s) {
+                                       if (s.interface == name)
+                                               uci.remove('network', s['.name']);
+                               });
+
+                               uci.sections('wireless', 'wifi-iface', function(s) {
+                                       var networks = L.toArray(s.network).filter(function(network) { return network != name });
+
+                                       if (networks.length > 0)
+                                               uci.set('wireless', s['.name'], 'network', networks.join(' '));
+                                       else
+                                               uci.unset('wireless', s['.name'], 'network');
+                               });
+
+                               if (L.firewall)
+                                       return L.firewall.deleteNetwork(name).then(function() { return true });
+
+                               return true;
+                       }
+
+                       return false;
+               });
+       },
+
+       /**
+        * Rename the given network and its references to a new name.
+        *
+        * @param {string} oldName
+        * The current name of the network.
+        *
+        * @param {string} newName
+        * The name to rename the network to, must be in the format
+        * `[a-z-A-Z0-9_]+`.
+        *
+        * @returns {Promise&lt;boolean>}
+        * Returns a promise resolving to either `true` if the network was
+        * successfully renamed or `false` if the new name was invalid, if
+        * a network with the new name already exists or if the network to
+        * rename could not be found.
+        */
+       renameNetwork: function(oldName, newName) {
+               return initNetworkState().then(function() {
+                       if (newName == null || !/^[a-zA-Z0-9_]+$/.test(newName) || uci.get('network', newName) != null)
+                               return false;
+
+                       var oldNetwork = uci.get('network', oldName);
+
+                       if (oldNetwork == null || oldNetwork['.type'] != 'interface')
+                               return false;
+
+                       var sid = uci.add('network', 'interface', newName);
+
+                       for (var key in oldNetwork)
+                               if (oldNetwork.hasOwnProperty(key) &amp;&amp; key.charAt(0) != '.')
+                                       uci.set('network', sid, key, oldNetwork[key]);
+
+                       uci.sections('luci', 'ifstate', function(s) {
+                               if (s.interface == oldName)
+                                       uci.set('luci', s['.name'], 'interface', newName);
+                       });
+
+                       uci.sections('network', 'alias', function(s) {
+                               if (s.interface == oldName)
+                                       uci.set('network', s['.name'], 'interface', newName);
+                       });
+
+                       uci.sections('network', 'route', function(s) {
+                               if (s.interface == oldName)
+                                       uci.set('network', s['.name'], 'interface', newName);
+                       });
+
+                       uci.sections('network', 'route6', function(s) {
+                               if (s.interface == oldName)
+                                       uci.set('network', s['.name'], 'interface', newName);
+                       });
+
+                       uci.sections('wireless', 'wifi-iface', function(s) {
+                               var networks = L.toArray(s.network).map(function(network) { return (network == oldName ? newName : network) });
+
+                               if (networks.length > 0)
+                                       uci.set('wireless', s['.name'], 'network', networks.join(' '));
+                       });
+
+                       uci.remove('network', oldName);
+
+                       return true;
+               });
+       },
+
+       /**
+        * Get a {@link LuCI.Network.Device Device} instance describing the
+        * given network device.
+        *
+        * @param {string} name
+        * The name of the network device to get, e.g. `eth0` or `br-lan`.
+        *
+        * @returns {Promise&lt;null|LuCI.Network.Device>}
+        * Returns a promise resolving to the `Device` instance describing
+        * the network device or `null` if the given device name could not
+        * be found.
+        */
+       getDevice: function(name) {
+               return initNetworkState().then(L.bind(function() {
+                       if (name == null)
+                               return null;
+
+                       if (_state.netdevs.hasOwnProperty(name) || isWifiIfname(name))
+                               return this.instantiateDevice(name);
+
+                       var netid = getWifiNetidBySid(name);
+                       if (netid != null)
+                               return this.instantiateDevice(netid[0]);
+
+                       return null;
+               }, this));
+       },
+
+       /**
+        * Get a sorted list of all found network devices.
+        *
+        * @returns {Promise&lt;Array&lt;LuCI.Network.Device>>}
+        * Returns a promise resolving to a sorted array of `Device` class
+        * instances describing the network devices found on the system.
+        */
+       getDevices: function() {
+               return initNetworkState().then(L.bind(function() {
+                       var devices = {};
+
+                       /* find simple devices */
+                       var uciInterfaces = uci.sections('network', 'interface');
+                       for (var i = 0; i &lt; uciInterfaces.length; i++) {
+                               var ifnames = L.toArray(uciInterfaces[i].ifname);
+
+                               for (var j = 0; j &lt; ifnames.length; j++) {
+                                       if (ifnames[j].charAt(0) == '@')
+                                               continue;
+
+                                       if (isIgnoredIfname(ifnames[j]) || isVirtualIfname(ifnames[j]) || isWifiIfname(ifnames[j]))
+                                               continue;
+
+                                       devices[ifnames[j]] = this.instantiateDevice(ifnames[j]);
+                               }
+                       }
+
+                       for (var ifname in _state.netdevs) {
+                               if (devices.hasOwnProperty(ifname))
+                                       continue;
+
+                               if (isIgnoredIfname(ifname) || isVirtualIfname(ifname) || isWifiIfname(ifname))
+                                       continue;
+
+                               devices[ifname] = this.instantiateDevice(ifname);
+                       }
+
+                       /* find VLAN devices */
+                       var uciSwitchVLANs = uci.sections('network', 'switch_vlan');
+                       for (var i = 0; i &lt; uciSwitchVLANs.length; i++) {
+                               if (typeof(uciSwitchVLANs[i].ports) != 'string' ||
+                                   typeof(uciSwitchVLANs[i].device) != 'string' ||
+                                   !_state.switches.hasOwnProperty(uciSwitchVLANs[i].device))
+                                       continue;
+
+                               var ports = uciSwitchVLANs[i].ports.split(/\s+/);
+                               for (var j = 0; j &lt; ports.length; j++) {
+                                       var m = ports[j].match(/^(\d+)([tu]?)$/);
+                                       if (m == null)
+                                               continue;
+
+                                       var netdev = _state.switches[uciSwitchVLANs[i].device].netdevs[m[1]];
+                                       if (netdev == null)
+                                               continue;
+
+                                       if (!devices.hasOwnProperty(netdev))
+                                               devices[netdev] = this.instantiateDevice(netdev);
+
+                                       _state.isSwitch[netdev] = true;
+
+                                       if (m[2] != 't')
+                                               continue;
+
+                                       var vid = uciSwitchVLANs[i].vid || uciSwitchVLANs[i].vlan;
+                                           vid = (vid != null ? +vid : null);
+
+                                       if (vid == null || vid &lt; 0 || vid > 4095)
+                                               continue;
+
+                                       var vlandev = '%s.%d'.format(netdev, vid);
+
+                                       if (!devices.hasOwnProperty(vlandev))
+                                               devices[vlandev] = this.instantiateDevice(vlandev);
+
+                                       _state.isSwitch[vlandev] = true;
+                               }
+                       }
+
+                       /* find wireless interfaces */
+                       var uciWifiIfaces = uci.sections('wireless', 'wifi-iface'),
+                           networkCount = {};
+
+                       for (var i = 0; i &lt; uciWifiIfaces.length; i++) {
+                               if (typeof(uciWifiIfaces[i].device) != 'string')
+                                       continue;
+
+                               networkCount[uciWifiIfaces[i].device] = (networkCount[uciWifiIfaces[i].device] || 0) + 1;
+
+                               var netid = '%s.network%d'.format(uciWifiIfaces[i].device, networkCount[uciWifiIfaces[i].device]);
+
+                               devices[netid] = this.instantiateDevice(netid);
+                       }
+
+                       var rv = [];
+
+                       for (var netdev in devices)
+                               if (devices.hasOwnProperty(netdev))
+                                       rv.push(devices[netdev]);
+
+                       rv.sort(deviceSort);
+
+                       return rv;
+               }, this));
+       },
+
+       /**
+        * Test if a given network device name is in the list of patterns for
+        * device names to ignore.
+        *
+        * Ignored device names are usually Linux network devices which are
+        * spawned implicitly by kernel modules such as `tunl0` or `hwsim0`
+        * and which are unsuitable for use in network configuration.
+        *
+        * @param {string} name
+        * The device name to test.
+        *
+        * @returns {boolean}
+        * Returns `true` if the given name is in the ignore pattern list,
+        * else returns `false`.
+        */
+       isIgnoredDevice: function(name) {
+               return isIgnoredIfname(name);
+       },
+
+       /**
+        * Get a {@link LuCI.Network.WifiDevice WifiDevice} instance describing
+        * the given wireless radio.
+        *
+        * @param {string} devname
+        * The configuration name of the wireless radio to lookup, e.g. `radio0`
+        * for the first mac80211 phy on the system.
+        *
+        * @returns {Promise&lt;null|LuCI.Network.WifiDevice>}
+        * Returns a promise resolving to the `WifiDevice` instance describing
+        * the underlying radio device or `null` if the wireless radio could not
+        * be found.
+        */
+       getWifiDevice: function(devname) {
+               return initNetworkState().then(L.bind(function() {
+                       var existingDevice = uci.get('wireless', devname);
+
+                       if (existingDevice == null || existingDevice['.type'] != 'wifi-device')
+                               return null;
+
+                       return this.instantiateWifiDevice(devname, _state.radios[devname] || {});
+               }, this));
+       },
+
+       /**
+        * Obtain a list of all configured radio devices.
+        *
+        * @returns {Promise&lt;Array&lt;LuCI.Network.WifiDevice>>}
+        * Returns a promise resolving to an array of `WifiDevice` instances
+        * describing the wireless radios configured in the system.
+        * The order of the array corresponds to the order of the radios in
+        * the configuration.
+        */
+       getWifiDevices: function() {
+               return initNetworkState().then(L.bind(function() {
+                       var uciWifiDevices = uci.sections('wireless', 'wifi-device'),
+                           rv = [];
+
+                       for (var i = 0; i &lt; uciWifiDevices.length; i++) {
+                               var devname = uciWifiDevices[i]['.name'];
+                               rv.push(this.instantiateWifiDevice(devname, _state.radios[devname] || {}));
+                       }
+
+                       return rv;
+               }, this));
+       },
+
+       /**
+        * Get a {@link LuCI.Network.WifiNetwork WifiNetwork} instance describing
+        * the given wireless network.
+        *
+        * @param {string} netname
+        * The name of the wireless network to lookup. This may be either an uci
+        * configuration section ID, a network ID in the form `radio#.network#`
+        * or a Linux network device name like `wlan0` which is resolved to the
+        * corresponding configuration section through `ubus` runtime information.
+        *
+        * @returns {Promise&lt;null|LuCI.Network.WifiNetwork>}
+        * Returns a promise resolving to the `WifiNetwork` instance describing
+        * the wireless network or `null` if the corresponding network could not
+        * be found.
+        */
+       getWifiNetwork: function(netname) {
+               var sid, res, netid, radioname, radiostate, netstate;
+
+               return initNetworkState().then(L.bind(function() {
+                       sid = getWifiSidByNetid(netname);
+
+                       if (sid != null) {
+                               res        = getWifiStateBySid(sid);
+                               netid      = netname;
+                               radioname  = res ? res[0] : null;
+                               radiostate = res ? res[1] : null;
+                               netstate   = res ? res[2] : null;
+                       }
+                       else {
+                               res = getWifiStateByIfname(netname);
+
+                               if (res != null) {
+                                       radioname  = res[0];
+                                       radiostate = res[1];
+                                       netstate   = res[2];
+                                       sid        = netstate.section;
+                                       netid      = L.toArray(getWifiNetidBySid(sid))[0];
+                               }
+                               else {
+                                       res = getWifiStateBySid(netname);
+
+                                       if (res != null) {
+                                               radioname  = res[0];
+                                               radiostate = res[1];
+                                               netstate   = res[2];
+                                               sid        = netname;
+                                               netid      = L.toArray(getWifiNetidBySid(sid))[0];
+                                       }
+                                       else {
+                                               res = getWifiNetidBySid(netname);
+
+                                               if (res != null) {
+                                                       netid     = res[0];
+                                                       radioname = res[1];
+                                                       sid       = netname;
+                                               }
+                                       }
+                               }
+                       }
+
+                       return this.instantiateWifiNetwork(sid || netname, radioname, radiostate, netid, netstate);
+               }, this));
+       },
+
+       /**
+        * Adds a new wireless network to the configuration and sets its options
+        * to the provided values.
+        *
+        * @param {Object&lt;string, string|string[]>} options
+        * The options to set for the newly added wireless network. This object
+        * must at least contain a `device` property which is set to the radio
+        * name the new network belongs to.
+        *
+        * @returns {Promise&lt;null|LuCI.Network.WifiNetwork>}
+        * Returns a promise resolving to a `WifiNetwork` instance describing
+        * the newly added wireless network or `null` if the given options
+        * were invalid or if the associated radio device could not be found.
+        */
+       addWifiNetwork: function(options) {
+               return initNetworkState().then(L.bind(function() {
+                       if (options == null ||
+                           typeof(options) != 'object' ||
+                           typeof(options.device) != 'string')
+                           return null;
+
+                       var existingDevice = uci.get('wireless', options.device);
+                       if (existingDevice == null || existingDevice['.type'] != 'wifi-device')
+                               return null;
+
+                       /* XXX: need to add a named section (wifinet#) here */
+                       var sid = uci.add('wireless', 'wifi-iface');
+                       for (var key in options)
+                               if (options.hasOwnProperty(key))
+                                       uci.set('wireless', sid, key, options[key]);
+
+                       var radioname = existingDevice['.name'],
+                           netid = getWifiNetidBySid(sid) || [];
+
+                       return this.instantiateWifiNetwork(sid, radioname, _state.radios[radioname], netid[0], null);
+               }, this));
+       },
+
+       /**
+        * Deletes the given wireless network from the configuration.
+        *
+        * @param {string} netname
+        * The name of the network to remove. This may be either a
+        * network ID in the form `radio#.network#` or a Linux network device
+        * name like `wlan0` which is resolved to the corresponding configuration
+        * section through `ubus` runtime information.
+        *
+        * @returns {Promise&lt;boolean>}
+        * Returns a promise resolving to `true` if the wireless network has been
+        * successfully deleted from the configuration or `false` if it could not
+        * be found.
+        */
+       deleteWifiNetwork: function(netname) {
+               return initNetworkState().then(L.bind(function() {
+                       var sid = getWifiSidByIfname(netname);
+
+                       if (sid == null)
+                               return false;
+
+                       uci.remove('wireless', sid);
+                       return true;
+               }, this));
+       },
+
+       /* private */
+       getStatusByRoute: function(addr, mask) {
+               return initNetworkState().then(L.bind(function() {
+                       var rv = [];
+
+                       for (var i = 0; i &lt; _state.ifaces.length; i++) {
+                               if (!Array.isArray(_state.ifaces[i].route))
+                                       continue;
+
+                               for (var j = 0; j &lt; _state.ifaces[i].route.length; j++) {
+                                       if (typeof(_state.ifaces[i].route[j]) != 'object' ||
+                                           typeof(_state.ifaces[i].route[j].target) != 'string' ||
+                                           typeof(_state.ifaces[i].route[j].mask) != 'number')
+                                           continue;
+
+                                       if (_state.ifaces[i].route[j].table)
+                                               continue;
+
+                                       if (_state.ifaces[i].route[j].target != addr ||
+                                           _state.ifaces[i].route[j].mask != mask)
+                                           continue;
+
+                                       rv.push(_state.ifaces[i]);
+                               }
+                       }
+
+                       return rv;
+               }, this));
+       },
+
+       /* private */
+       getStatusByAddress: function(addr) {
+               return initNetworkState().then(L.bind(function() {
+                       var rv = [];
+
+                       for (var i = 0; i &lt; _state.ifaces.length; i++) {
+                               if (Array.isArray(_state.ifaces[i]['ipv4-address']))
+                                       for (var j = 0; j &lt; _state.ifaces[i]['ipv4-address'].length; j++)
+                                               if (typeof(_state.ifaces[i]['ipv4-address'][j]) == 'object' &amp;&amp;
+                                                   _state.ifaces[i]['ipv4-address'][j].address == addr)
+                                                       return _state.ifaces[i];
+
+                               if (Array.isArray(_state.ifaces[i]['ipv6-address']))
+                                       for (var j = 0; j &lt; _state.ifaces[i]['ipv6-address'].length; j++)
+                                               if (typeof(_state.ifaces[i]['ipv6-address'][j]) == 'object' &amp;&amp;
+                                                   _state.ifaces[i]['ipv6-address'][j].address == addr)
+                                                       return _state.ifaces[i];
+
+                               if (Array.isArray(_state.ifaces[i]['ipv6-prefix-assignment']))
+                                       for (var j = 0; j &lt; _state.ifaces[i]['ipv6-prefix-assignment'].length; j++)
+                                               if (typeof(_state.ifaces[i]['ipv6-prefix-assignment'][j]) == 'object' &amp;&amp;
+                                                       typeof(_state.ifaces[i]['ipv6-prefix-assignment'][j]['local-address']) == 'object' &amp;&amp;
+                                                   _state.ifaces[i]['ipv6-prefix-assignment'][j]['local-address'].address == addr)
+                                                       return _state.ifaces[i];
+                       }
+
+                       return null;
+               }, this));
+       },
+
+       /**
+        * Get IPv4 wan networks.
+        *
+        * This function looks up all networks having a default `0.0.0.0/0` route
+        * and returns them as array.
+        *
+        * @returns {Promise&lt;Array&lt;LuCI.Network.Protocol>>}
+        * Returns a promise resolving to an array of `Protocol` subclass
+        * instances describing the found default route interfaces.
+        */
+       getWANNetworks: function() {
+               return this.getStatusByRoute('0.0.0.0', 0).then(L.bind(function(statuses) {
+                       var rv = [];
+
+                       for (var i = 0; i &lt; statuses.length; i++)
+                               rv.push(this.instantiateNetwork(statuses[i].interface, statuses[i].proto));
+
+                       return rv;
+               }, this));
+       },
+
+       /**
+        * Get IPv6 wan networks.
+        *
+        * This function looks up all networks having a default `::/0` route
+        * and returns them as array.
+        *
+        * @returns {Promise&lt;Array&lt;LuCI.Network.Protocol>>}
+        * Returns a promise resolving to an array of `Protocol` subclass
+        * instances describing the found IPv6 default route interfaces.
+        */
+       getWAN6Networks: function() {
+               return this.getStatusByRoute('::', 0).then(L.bind(function(statuses) {
+                       var rv = [];
+
+                       for (var i = 0; i &lt; statuses.length; i++)
+                               rv.push(this.instantiateNetwork(statuses[i].interface, statuses[i].proto));
+
+                       return rv;
+               }, this));
+       },
+
+       /**
+        * Describes an swconfig switch topology by specifying the CPU
+        * connections and external port labels of a switch.
+        *
+        * @typedef {Object&lt;string, Object|Array>} SwitchTopology
+        * @memberof LuCI.Network
+        *
+        * @property {Object&lt;number, string>} netdevs
+        * The `netdevs` property points to an object describing the CPU port
+        * connections of the switch. The numeric key of the enclosed object is
+        * the port number, the value contains the Linux network device name the
+        * port is hardwired to.
+        *
+        * @property {Array&lt;Object&lt;string, boolean|number|string>>} ports
+        * The `ports` property points to an array describing the populated
+        * ports of the switch in the external label order. Each array item is
+        * an object containg the following keys:
+        *  - `num` - the internal switch port number
+        *  - `label` - the label of the port, e.g. `LAN 1` or `CPU (eth0)`
+        *  - `device` - the connected Linux network device name (CPU ports only)
+        *  - `tagged` - a boolean indicating whether the port must be tagged to
+        *     function (CPU ports only)
+        */
+
+       /**
+        * Returns the topologies of all swconfig switches found on the system.
+        *
+        * @returns {Promise&lt;Object&lt;string, LuCI.Network.SwitchTopology>>}
+        * Returns a promise resolving to an object containing the topologies
+        * of each switch. The object keys correspond to the name of the switches
+        * such as `switch0`, the values are
+        * {@link LuCI.Network.SwitchTopology SwitchTopology} objects describing
+        * the layout.
+        */
+       getSwitchTopologies: function() {
+               return initNetworkState().then(function() {
+                       return _state.switches;
+               });
+       },
+
+       /* private */
+       instantiateNetwork: function(name, proto) {
+               if (name == null)
+                       return null;
+
+               proto = (proto == null ? uci.get('network', name, 'proto') : proto);
+
+               var protoClass = _protocols[proto] || Protocol;
+               return new protoClass(name);
+       },
+
+       /* private */
+       instantiateDevice: function(name, network, extend) {
+               if (extend != null)
+                       return new (Device.extend(extend))(name, network);
+
+               return new Device(name, network);
+       },
+
+       /* private */
+       instantiateWifiDevice: function(radioname, radiostate) {
+               return new WifiDevice(radioname, radiostate);
+       },
+
+       /* private */
+       instantiateWifiNetwork: function(sid, radioname, radiostate, netid, netstate) {
+               return new WifiNetwork(sid, radioname, radiostate, netid, netstate);
+       },
+
+       /**
+        * Obtains the the network device name of the given object.
+        *
+        * @param {LuCI.Network.Protocol|LuCI.Network.Device|LuCI.Network.WifiDevice|LuCI.Network.WifiNetwork|string} obj
+        * The object to get the device name from.
+        *
+        * @returns {null|string}
+        * Returns a string containing the device name or `null` if the given
+        * object could not be converted to a name.
+        */
+       getIfnameOf: function(obj) {
+               return ifnameOf(obj);
+       },
+
+       /**
+        * Queries the internal DSL modem type from board information.
+        *
+        * @returns {Promise&lt;null|string>}
+        * Returns a promise resolving to the type of the internal modem
+        * (e.g. `vdsl`) or to `null` if no internal modem is present.
+        */
+       getDSLModemType: function() {
+               return initNetworkState().then(function() {
+                       return _state.hasDSLModem ? _state.hasDSLModem.type : null;
+               });
+       },
+
+       /**
+        * Queries aggregated information about known hosts.
+        *
+        * This function aggregates information from various sources such as
+        * DHCP lease databases, ARP and IPv6 neighbour entries, wireless
+        * association list etc. and returns a {@link LuCI.Network.Hosts Hosts}
+        * class instance describing the found hosts.
+        *
+        * @returns {Promise&lt;LuCI.Network.Hosts>}
+        * Returns a `Hosts` instance describing host known on the system.
+        */
+       getHostHints: function() {
+               return initNetworkState().then(function() {
+                       return new Hosts(_state.hosts);
+               });
+       }
+});
+
+/**
+ * @class
+ * @memberof LuCI.Network
+ * @hideconstructor
+ * @classdesc
+ *
+ * The `LuCI.Network.Hosts` class encapsulates host information aggregated
+ * from multiple sources and provides convenience functions to access the
+ * host information by different criteria.
+ */
+Hosts = L.Class.extend(/** @lends LuCI.Network.Hosts.prototype */ {
+       __init__: function(hosts) {
+               this.hosts = hosts;
+       },
+
+       /**
+        * Lookup the hostname associated with the given MAC address.
+        *
+        * @param {string} mac
+        * The MAC address to lookup.
+        *
+        * @returns {null|string}
+        * Returns the hostname associated with the given MAC or `null` if
+        * no matching host could be found or if no hostname is known for
+        * the corresponding host.
+        */
+       getHostnameByMACAddr: function(mac) {
+               return this.hosts[mac] ? this.hosts[mac].name : null;
+       },
+
+       /**
+        * Lookup the IPv4 address associated with the given MAC address.
+        *
+        * @param {string} mac
+        * The MAC address to lookup.
+        *
+        * @returns {null|string}
+        * Returns the IPv4 address associated with the given MAC or `null` if
+        * no matching host could be found or if no IPv4 address is known for
+        * the corresponding host.
+        */
+       getIPAddrByMACAddr: function(mac) {
+               return this.hosts[mac] ? this.hosts[mac].ipv4 : null;
+       },
+
+       /**
+        * Lookup the IPv6 address associated with the given MAC address.
+        *
+        * @param {string} mac
+        * The MAC address to lookup.
+        *
+        * @returns {null|string}
+        * Returns the IPv6 address associated with the given MAC or `null` if
+        * no matching host could be found or if no IPv6 address is known for
+        * the corresponding host.
+        */
+       getIP6AddrByMACAddr: function(mac) {
+               return this.hosts[mac] ? this.hosts[mac].ipv6 : null;
+       },
+
+       /**
+        * Lookup the hostname associated with the given IPv4 address.
+        *
+        * @param {string} ipaddr
+        * The IPv4 address to lookup.
+        *
+        * @returns {null|string}
+        * Returns the hostname associated with the given IPv4 or `null` if
+        * no matching host could be found or if no hostname is known for
+        * the corresponding host.
+        */
+       getHostnameByIPAddr: function(ipaddr) {
+               for (var mac in this.hosts)
+                       if (this.hosts[mac].ipv4 == ipaddr &amp;&amp; this.hosts[mac].name != null)
+                               return this.hosts[mac].name;
+               return null;
+       },
+
+       /**
+        * Lookup the MAC address associated with the given IPv4 address.
+        *
+        * @param {string} ipaddr
+        * The IPv4 address to lookup.
+        *
+        * @returns {null|string}
+        * Returns the MAC address associated with the given IPv4 or `null` if
+        * no matching host could be found or if no MAC address is known for
+        * the corresponding host.
+        */
+       getMACAddrByIPAddr: function(ipaddr) {
+               for (var mac in this.hosts)
+                       if (this.hosts[mac].ipv4 == ipaddr)
+                               return mac;
+               return null;
+       },
+
+       /**
+        * Lookup the hostname associated with the given IPv6 address.
+        *
+        * @param {string} ipaddr
+        * The IPv6 address to lookup.
+        *
+        * @returns {null|string}
+        * Returns the hostname associated with the given IPv6 or `null` if
+        * no matching host could be found or if no hostname is known for
+        * the corresponding host.
+        */
+       getHostnameByIP6Addr: function(ip6addr) {
+               for (var mac in this.hosts)
+                       if (this.hosts[mac].ipv6 == ip6addr &amp;&amp; this.hosts[mac].name != null)
+                               return this.hosts[mac].name;
+               return null;
+       },
+
+       /**
+        * Lookup the MAC address associated with the given IPv6 address.
+        *
+        * @param {string} ipaddr
+        * The IPv6 address to lookup.
+        *
+        * @returns {null|string}
+        * Returns the MAC address associated with the given IPv6 or `null` if
+        * no matching host could be found or if no MAC address is known for
+        * the corresponding host.
+        */
+       getMACAddrByIP6Addr: function(ip6addr) {
+               for (var mac in this.hosts)
+                       if (this.hosts[mac].ipv6 == ip6addr)
+                               return mac;
+               return null;
+       },
+
+       /**
+        * Return an array of (MAC address, name hint) tuples sorted by
+        * MAC address.
+        *
+        * @param {boolean} [preferIp6=false]
+        * Whether to prefer IPv6 addresses (`true`) or IPv4 addresses (`false`)
+        * as name hint when no hostname is known for a specific MAC address.
+        *
+        * @returns {Array&lt;Array&lt;string>>}
+        * Returns an array of arrays containing a name hint for each found
+        * MAC address on the system. The array is sorted ascending by MAC.
+        *
+        * Each item of the resulting array is a two element array with the
+        * MAC being the first element and the name hint being the second
+        * element. The name hint is either the hostname, an IPv4 or an IPv6
+        * address related to the MAC address.
+        *
+        * If no hostname but both IPv4 and IPv6 addresses are known, the
+        * `preferIP6` flag specifies whether the IPv6 or the IPv4 address
+        * is used as hint.
+        */
+       getMACHints: function(preferIp6) {
+               var rv = [];
+               for (var mac in this.hosts) {
+                       var hint = this.hosts[mac].name ||
+                               this.hosts[mac][preferIp6 ? 'ipv6' : 'ipv4'] ||
+                               this.hosts[mac][preferIp6 ? 'ipv4' : 'ipv6'];
+
+                       rv.push([mac, hint]);
+               }
+               return rv.sort(function(a, b) { return a[0] > b[0] });
+       }
+});
+
+/**
+ * @class
+ * @memberof LuCI.Network
+ * @hideconstructor
+ * @classdesc
+ *
+ * The `Network.Protocol` class serves as base for protocol specific
+ * subclasses which describe logical UCI networks defined by `config
+ * interface` sections in `/etc/config/network`.
+ */
+Protocol = L.Class.extend(/** @lends LuCI.Network.Protocol.prototype */ {
+       __init__: function(name) {
+               this.sid = name;
+       },
+
+       _get: function(opt) {
+               var val = uci.get('network', this.sid, opt);
+
+               if (Array.isArray(val))
+                       return val.join(' ');
+
+               return val || '';
+       },
+
+       _ubus: function(field) {
+               for (var i = 0; i &lt; _state.ifaces.length; i++) {
+                       if (_state.ifaces[i].interface != this.sid)
+                               continue;
+
+                       return (field != null ? _state.ifaces[i][field] : _state.ifaces[i]);
+               }
+       },
+
+       /**
+        * Read the given UCI option value of this network.
+        *
+        * @param {string} opt
+        * The UCI option name to read.
+        *
+        * @returns {null|string|string[]}
+        * Returns the UCI option value or `null` if the requested option is
+        * not found.
+        */
+       get: function(opt) {
+               return uci.get('network', this.sid, opt);
+       },
+
+       /**
+        * Set the given UCI option of this network to the given value.
+        *
+        * @param {string} opt
+        * The name of the UCI option to set.
+        *
+        * @param {null|string|string[]} val
+        * The value to set or `null` to remove the given option from the
+        * configuration.
+        */
+       set: function(opt, val) {
+               return uci.set('network', this.sid, opt, val);
+       },
+
+       /**
+        * Get the associared Linux network device of this network.
+        *
+        * @returns {null|string}
+        * Returns the name of the associated network device or `null` if
+        * it could not be determined.
+        */
+       getIfname: function() {
+               var ifname;
+
+               if (this.isFloating())
+                       ifname = this._ubus('l3_device');
+               else
+                       ifname = this._ubus('device') || this._ubus('l3_device');
+
+               if (ifname != null)
+                       return ifname;
+
+               var res = getWifiNetidByNetname(this.sid);
+               return (res != null ? res[0] : null);
+       },
+
+       /**
+        * Get the name of this network protocol class.
+        *
+        * This function will be overwritten by subclasses created by
+        * {@link LuCI.Network#registerProtocol Network.registerProtocol()}.
+        *
+        * @abstract
+        * @returns {string}
+        * Returns the name of the network protocol implementation, e.g.
+        * `static` or `dhcp`.
+        */
+       getProtocol: function() {
+               return null;
+       },
+
+       /**
+        * Return a human readable description for the protcol, such as
+        * `Static address` or `DHCP client`.
+        *
+        * This function should be overwritten by subclasses.
+        *
+        * @abstract
+        * @returns {string}
+        * Returns the description string.
+        */
+       getI18n: function() {
+               switch (this.getProtocol()) {
+               case 'none':   return _('Unmanaged');
+               case 'static': return _('Static address');
+               case 'dhcp':   return _('DHCP client');
+               default:       return _('Unknown');
+               }
+       },
+
+       /**
+        * Get the type of the underlying interface.
+        *
+        * This function actually is a convenience wrapper around
+        * `proto.get("type")` and is mainly used by other `LuCI.Network` code
+        * to check whether the interface is declared as bridge in UCI.
+        *
+        * @returns {null|string}
+        * Returns the value of the `type` option of the associated logical
+        * interface or `null` if no `type` option is set.
+        */
+       getType: function() {
+               return this._get('type');
+       },
+
+       /**
+        * Get the name of the associated logical interface.
+        *
+        * @returns {string}
+        * Returns the logical interface name, such as `lan` or `wan`.
+        */
+       getName: function() {
+               return this.sid;
+       },
+
+       /**
+        * Get the uptime of the logical interface.
+        *
+        * @returns {number}
+        * Returns the uptime of the associated interface in seconds.
+        */
+       getUptime: function() {
+               return this._ubus('uptime') || 0;
+       },
+
+       /**
+        * Get the logical interface expiry time in seconds.
+        *
+        * For protocols that have a concept of a lease, such as DHCP or
+        * DHCPv6, this function returns the remaining time in seconds
+        * until the lease expires.
+        *
+        * @returns {number}
+        * Returns the amount of seconds until the lease expires or `-1`
+        * if it isn't applicable to the associated protocol.
+        */
+       getExpiry: function() {
+               var u = this._ubus('uptime'),
+                   d = this._ubus('data');
+
+               if (typeof(u) == 'number' &amp;&amp; d != null &amp;&amp;
+                   typeof(d) == 'object' &amp;&amp; typeof(d.leasetime) == 'number') {
+                       var r = d.leasetime - (u % d.leasetime);
+                       return (r > 0 ? r : 0);
+               }
+
+               return -1;
+       },
+
+       /**
+        * Get the metric value of the logical interface.
+        *
+        * @returns {number}
+        * Returns the current metric value used for device and network
+        * routes spawned by the associated logical interface.
+        */
+       getMetric: function() {
+               return this._ubus('metric') || 0;
+       },
+
+       /**
+        * Get the requested firewall zone name of the logical interface.
+        *
+        * Some protocol implementations request a specific firewall zone
+        * to trigger inclusion of their resulting network devices into the
+        * firewall rule set.
+        *
+        * @returns {null|string}
+        * Returns the requested firewall zone name as published in the
+        * `ubus` runtime information or `null` if the remote protocol
+        * handler didn't request a zone.
+        */
+       getZoneName: function() {
+               var d = this._ubus('data');
+
+               if (L.isObject(d) &amp;&amp; typeof(d.zone) == 'string')
+                       return d.zone;
+
+               return null;
+       },
+
+       /**
+        * Query the first (primary) IPv4 address of the logical interface.
+        *
+        * @returns {null|string}
+        * Returns the primary IPv4 address registered by the protocol handler
+        * or `null` if no IPv4 addresses were set.
+        */
+       getIPAddr: function() {
+               var addrs = this._ubus('ipv4-address');
+               return ((Array.isArray(addrs) &amp;&amp; addrs.length) ? addrs[0].address : null);
+       },
+
+       /**
+        * Query all IPv4 addresses of the logical interface.
+        *
+        * @returns {string[]}
+        * Returns an array of IPv4 addresses in CIDR notation which have been
+        * registered by the protocol handler. The order of the resulting array
+        * follows the order of the addresses in `ubus` runtime information.
+        */
+       getIPAddrs: function() {
+               var addrs = this._ubus('ipv4-address'),
+                   rv = [];
+
+               if (Array.isArray(addrs))
+                       for (var i = 0; i &lt; addrs.length; i++)
+                               rv.push('%s/%d'.format(addrs[i].address, addrs[i].mask));
+
+               return rv;
+       },
+
+       /**
+        * Query the first (primary) IPv4 netmask of the logical interface.
+        *
+        * @returns {null|string}
+        * Returns the netmask of the primary IPv4 address registered by the
+        * protocol handler or `null` if no IPv4 addresses were set.
+        */
+       getNetmask: function() {
+               var addrs = this._ubus('ipv4-address');
+               if (Array.isArray(addrs) &amp;&amp; addrs.length)
+                       return prefixToMask(addrs[0].mask, false);
+       },
+
+       /**
+        * Query the gateway (nexthop) of the default route associated with
+        * this logical interface.
+        *
+        * @returns {string}
+        * Returns a string containing the IPv4 nexthop address of the associated
+        * default route or `null` if no default route was found.
+        */
+       getGatewayAddr: function() {
+               var routes = this._ubus('route');
+
+               if (Array.isArray(routes))
+                       for (var i = 0; i &lt; routes.length; i++)
+                               if (typeof(routes[i]) == 'object' &amp;&amp;
+                                   routes[i].target == '0.0.0.0' &amp;&amp;
+                                   routes[i].mask == 0)
+                                   return routes[i].nexthop;
+
+               return null;
+       },
+
+       /**
+        * Query the IPv4 DNS servers associated with the logical interface.
+        *
+        * @returns {string[]}
+        * Returns an array of IPv4 DNS servers registered by the remote
+        * protocol backend.
+        */
+       getDNSAddrs: function() {
+               var addrs = this._ubus('dns-server'),
+                   rv = [];
+
+               if (Array.isArray(addrs))
+                       for (var i = 0; i &lt; addrs.length; i++)
+                               if (!/:/.test(addrs[i]))
+                                       rv.push(addrs[i]);
+
+               return rv;
+       },
+
+       /**
+        * Query the first (primary) IPv6 address of the logical interface.
+        *
+        * @returns {null|string}
+        * Returns the primary IPv6 address registered by the protocol handler
+        * in CIDR notation or `null` if no IPv6 addresses were set.
+        */
+       getIP6Addr: function() {
+               var addrs = this._ubus('ipv6-address');
+
+               if (Array.isArray(addrs) &amp;&amp; L.isObject(addrs[0]))
+                       return '%s/%d'.format(addrs[0].address, addrs[0].mask);
+
+               addrs = this._ubus('ipv6-prefix-assignment');
+
+               if (Array.isArray(addrs) &amp;&amp; L.isObject(addrs[0]) &amp;&amp; L.isObject(addrs[0]['local-address']))
+                       return '%s/%d'.format(addrs[0]['local-address'].address, addrs[0]['local-address'].mask);
+
+               return null;
+       },
+
+       /**
+        * Query all IPv6 addresses of the logical interface.
+        *
+        * @returns {string[]}
+        * Returns an array of IPv6 addresses in CIDR notation which have been
+        * registered by the protocol handler. The order of the resulting array
+        * follows the order of the addresses in `ubus` runtime information.
+        */
+       getIP6Addrs: function() {
+               var addrs = this._ubus('ipv6-address'),
+                   rv = [];
+
+               if (Array.isArray(addrs))
+                       for (var i = 0; i &lt; addrs.length; i++)
+                               if (L.isObject(addrs[i]))
+                                       rv.push('%s/%d'.format(addrs[i].address, addrs[i].mask));
+
+               addrs = this._ubus('ipv6-prefix-assignment');
+
+               if (Array.isArray(addrs))
+                       for (var i = 0; i &lt; addrs.length; i++)
+                               if (L.isObject(addrs[i]) &amp;&amp; L.isObject(addrs[i]['local-address']))
+                                       rv.push('%s/%d'.format(addrs[i]['local-address'].address, addrs[i]['local-address'].mask));
+
+               return rv;
+       },
+
+       /**
+        * Query the gateway (nexthop) of the IPv6 default route associated with
+        * this logical interface.
+        *
+        * @returns {string}
+        * Returns a string containing the IPv6 nexthop address of the associated
+        * default route or `null` if no default route was found.
+        */
+       getGateway6Addr: function() {
+               var routes = this._ubus('route');
+
+               if (Array.isArray(routes))
+                       for (var i = 0; i &lt; routes.length; i++)
+                               if (typeof(routes[i]) == 'object' &amp;&amp;
+                                   routes[i].target == '::' &amp;&amp;
+                                   routes[i].mask == 0)
+                                   return routes[i].nexthop;
+
+               return null;
+       },
+
+       /**
+        * Query the IPv6 DNS servers associated with the logical interface.
+        *
+        * @returns {string[]}
+        * Returns an array of IPv6 DNS servers registered by the remote
+        * protocol backend.
+        */
+       getDNS6Addrs: function() {
+               var addrs = this._ubus('dns-server'),
+                   rv = [];
+
+               if (Array.isArray(addrs))
+                       for (var i = 0; i &lt; addrs.length; i++)
+                               if (/:/.test(addrs[i]))
+                                       rv.push(addrs[i]);
+
+               return rv;
+       },
+
+       /**
+        * Query the routed IPv6 prefix associated with the logical interface.
+        *
+        * @returns {null|string}
+        * Returns the routed IPv6 prefix registered by the remote protocol
+        * handler or `null` if no prefix is present.
+        */
+       getIP6Prefix: function() {
+               var prefixes = this._ubus('ipv6-prefix');
+
+               if (Array.isArray(prefixes) &amp;&amp; L.isObject(prefixes[0]))
+                       return '%s/%d'.format(prefixes[0].address, prefixes[0].mask);
+
+               return null;
+       },
+
+       /**
+        * Query interface error messages published in `ubus` runtime state.
+        *
+        * Interface errors are emitted by remote protocol handlers if the setup
+        * of the underlying logical interface failed, e.g. due to bad
+        * configuration or network connectivity issues.
+        *
+        * This function will translate the found error codes to human readable
+        * messages using the descriptions registered by
+        * {@link LuCI.Network#registerErrorCode Network.registerErrorCode()}
+        * and fall back to `"Unknown error (%s)"` where `%s` is replaced by the
+        * error code in case no translation can be found.
+        *
+        * @returns {string[]}
+        * Returns an array of translated interface error messages.
+        */
+       getErrors: function() {
+               var errors = this._ubus('errors'),
+                   rv = null;
+
+               if (Array.isArray(errors)) {
+                       for (var i = 0; i &lt; errors.length; i++) {
+                               if (!L.isObject(errors[i]) || typeof(errors[i].code) != 'string')
+                                       continue;
+
+                               rv = rv || [];
+                               rv.push(proto_errors[errors[i].code] || _('Unknown error (%s)').format(errors[i].code));
+                       }
+               }
+
+               return rv;
+       },
+
+       /**
+        * Checks whether the underlying logical interface is declared as bridge.
+        *
+        * @returns {boolean}
+        * Returns `true` when the interface is declared with `option type bridge`
+        * and when the associated protocol implementation is not marked virtual
+        * or `false` when the logical interface is no bridge.
+        */
+       isBridge: function() {
+               return (!this.isVirtual() &amp;&amp; this.getType() == 'bridge');
+       },
+
+       /**
+        * Get the name of the opkg package providing the protocol functionality.
+        *
+        * This function should be overwritten by protocol specific subclasses.
+        *
+        * @abstract
+        *
+        * @returns {string}
+        * Returns the name of the opkg package required for the protocol to
+        * function, e.g. `odhcp6c` for the `dhcpv6` prototocol.
+        */
+       getOpkgPackage: function() {
+               return null;
+       },
+
+       /**
+        * Checks whether the protocol functionality is installed.
+        *
+        * This function exists for compatibility with old code, it always
+        * returns `true`.
+        *
+        * @deprecated
+        * @abstract
+        *
+        * @returns {boolean}
+        * Returns `true` if the protocol support is installed, else `false`.
+        */
+       isInstalled: function() {
+               return true;
+       },
+
+       /**
+        * Checks whether this protocol is "virtual".
+        *
+        * A "virtual" protocol is a protocol which spawns its own interfaces
+        * on demand instead of using existing physical interfaces.
+        *
+        * Examples for virtual protocols are `6in4` which `gre` spawn tunnel
+        * network device on startup, examples for non-virtual protcols are
+        * `dhcp` or `static` which apply IP configuration to existing interfaces.
+        *
+        * This function should be overwritten by subclasses.
+        *
+        * @returns {boolean}
+        * Returns a boolean indicating whether the underlying protocol spawns
+        * dynamic interfaces (`true`) or not (`false`).
+        */
+       isVirtual: function() {
+               return false;
+       },
+
+       /**
+        * Checks whether this protocol is "floating".
+        *
+        * A "floating" protocol is a protocol which spawns its own interfaces
+        * on demand, like a virtual one but which relies on an existinf lower
+        * level interface to initiate the connection.
+        *
+        * An example for such a protocol is "pppoe".
+        *
+        * This function exists for backwards compatibility with older code
+        * but should not be used anymore.
+        *
+        * @deprecated
+        * @returns {boolean}
+        * Returns a boolean indicating whether this protocol is floating (`true`)
+        * or not (`false`).
+        */
+       isFloating: function() {
+               return false;
+       },
+
+       /**
+        * Checks whether this logical interface is dynamic.
+        *
+        * A dynamic interface is an interface which has been created at runtime,
+        * e.g. as sub-interface of another interface, but which is not backed by
+        * any user configuration. Such dynamic interfaces cannot be edited but
+        * only brought down or restarted.
+        *
+        * @returns {boolean}
+        * Returns a boolean indicating whether this interface is dynamic (`true`)
+        * or not (`false`).
+        */
+       isDynamic: function() {
+               return (this._ubus('dynamic') == true);
+       },
+
+       /**
+        * Checks whether this interface is an alias interface.
+        *
+        * Alias interfaces are interfaces layering on top of another interface
+        * and are denoted by a special `@interfacename` notation in the
+        * underlying `ifname` option.
+        *
+        * @returns {null|string}
+        * Returns the name of the parent interface if this logical interface
+        * is an alias or `null` if it is not an alias interface.
+        */
+       isAlias: function() {
+               var ifnames = L.toArray(uci.get('network', this.sid, 'ifname')),
+                   parent = null;
+
+               for (var i = 0; i &lt; ifnames.length; i++)
+                       if (ifnames[i].charAt(0) == '@')
+                               parent = ifnames[i].substr(1);
+                       else if (parent != null)
+                               parent = null;
+
+               return parent;
+       },
+
+       /**
+        * Checks whether this logical interface is "empty", meaning that ut
+        * has no network devices attached.
+        *
+        * @returns {boolean}
+        * Returns `true` if this logical interface is empty, else `false`.
+        */
+       isEmpty: function() {
+               if (this.isFloating())
+                       return false;
+
+               var empty = true,
+                   ifname = this._get('ifname');
+
+               if (ifname != null &amp;&amp; ifname.match(/\S+/))
+                       empty = false;
+
+               if (empty == true &amp;&amp; getWifiNetidBySid(this.sid) != null)
+                       empty = false;
+
+               return empty;
+       },
+
+       /**
+        * Checks whether this logical interface is configured and running.
+        *
+        * @returns {boolean}
+        * Returns `true` when the interface is active or `false` when it is not.
+        */
+       isUp: function() {
+               return (this._ubus('up') == true);
+       },
+
+       /**
+        * Add the given network device to the logical interface.
+        *
+        * @param {LuCI.Network.Protocol|LuCI.Network.Device|LuCI.Network.WifiDevice|LuCI.Network.WifiNetwork|string} device
+        * The object or device name to add to the logical interface. In case the
+        * given argument is not a string, it is resolved though the
+        * {@link LuCI.Network#getIfnameOf Network.getIfnameOf()} function.
+        *
+        * @returns {boolean}
+        * Returns `true` if the device name has been added or `false` if any
+        * argument was invalid, if the device was already part of the logical
+        * interface or if the logical interface is virtual.
+        */
+       addDevice: function(ifname) {
+               ifname = ifnameOf(ifname);
+
+               if (ifname == null || this.isFloating())
+                       return false;
+
+               var wif = getWifiSidByIfname(ifname);
+
+               if (wif != null)
+                       return appendValue('wireless', wif, 'network', this.sid);
+
+               return appendValue('network', this.sid, 'ifname', ifname);
+       },
+
+       /**
+        * Remove the given network device from the logical interface.
+        *
+        * @param {LuCI.Network.Protocol|LuCI.Network.Device|LuCI.Network.WifiDevice|LuCI.Network.WifiNetwork|string} device
+        * The object or device name to remove from the logical interface. In case
+        * the given argument is not a string, it is resolved though the
+        * {@link LuCI.Network#getIfnameOf Network.getIfnameOf()} function.
+        *
+        * @returns {boolean}
+        * Returns `true` if the device name has been added or `false` if any
+        * argument was invalid, if the device was already part of the logical
+        * interface or if the logical interface is virtual.
+        */
+       deleteDevice: function(ifname) {
+               var rv = false;
+
+               ifname = ifnameOf(ifname);
+
+               if (ifname == null || this.isFloating())
+                       return false;
+
+               var wif = getWifiSidByIfname(ifname);
+
+               if (wif != null)
+                       rv = removeValue('wireless', wif, 'network', this.sid);
+
+               if (removeValue('network', this.sid, 'ifname', ifname))
+                       rv = true;
+
+               return rv;
+       },
+
+       /**
+        * Returns the Linux network device associated with this logical
+        * interface.
+        *
+        * @returns {LuCI.Network.Device}
+        * Returns a `Network.Device` class instance representing the
+        * expected Linux network device according to the configuration.
+        */
+       getDevice: function() {
+               if (this.isVirtual()) {
+                       var ifname = '%s-%s'.format(this.getProtocol(), this.sid);
+                       _state.isTunnel[this.getProtocol() + '-' + this.sid] = true;
+                       return L.network.instantiateDevice(ifname, this);
+               }
+               else if (this.isBridge()) {
+                       var ifname = 'br-%s'.format(this.sid);
+                       _state.isBridge[ifname] = true;
+                       return new Device(ifname, this);
+               }
+               else {
+                       var ifnames = L.toArray(uci.get('network', this.sid, 'ifname'));
+
+                       for (var i = 0; i &lt; ifnames.length; i++) {
+                               var m = ifnames[i].match(/^([^:/]+)/);
+                               return ((m &amp;&amp; m[1]) ? L.network.instantiateDevice(m[1], this) : null);
+                       }
+
+                       ifname = getWifiNetidByNetname(this.sid);
+
+                       return (ifname != null ? L.network.instantiateDevice(ifname[0], this) : null);
+               }
+       },
+
+       /**
+        * Returns the layer 2 linux network device currently associated
+        * with this logical interface.
+        *
+        * @returns {LuCI.Network.Device}
+        * Returns a `Network.Device` class instance representing the Linux
+        * network device currently associated with the logical interface.
+        */
+       getL2Device: function() {
+               var ifname = this._ubus('device');
+               return (ifname != null ? L.network.instantiateDevice(ifname, this) : null);
+       },
+
+       /**
+        * Returns the layer 3 linux network device currently associated
+        * with this logical interface.
+        *
+        * @returns {LuCI.Network.Device}
+        * Returns a `Network.Device` class instance representing the Linux
+        * network device currently associated with the logical interface.
+        */
+       getL3Device: function() {
+               var ifname = this._ubus('l3_device');
+               return (ifname != null ? L.network.instantiateDevice(ifname, this) : null);
+       },
+
+       /**
+        * Returns a list of network sub-devices associated with this logical
+        * interface.
+        *
+        * @returns {null|Array&lt;LuCI.Network.Device>}
+        * Returns an array of of `Network.Device` class instances representing
+        * the sub-devices attached to this logical interface or `null` if the
+        * logical interface does not support sub-devices, e.g. because it is
+        * virtual and not a bridge.
+        */
+       getDevices: function() {
+               var rv = [];
+
+               if (!this.isBridge() &amp;&amp; !(this.isVirtual() &amp;&amp; !this.isFloating()))
+                       return null;
+
+               var ifnames = L.toArray(uci.get('network', this.sid, 'ifname'));
+
+               for (var i = 0; i &lt; ifnames.length; i++) {
+                       if (ifnames[i].charAt(0) == '@')
+                               continue;
+
+                       var m = ifnames[i].match(/^([^:/]+)/);
+                       if (m != null)
+                               rv.push(L.network.instantiateDevice(m[1], this));
+               }
+
+               var uciWifiIfaces = uci.sections('wireless', 'wifi-iface');
+
+               for (var i = 0; i &lt; uciWifiIfaces.length; i++) {
+                       if (typeof(uciWifiIfaces[i].device) != 'string')
+                               continue;
+
+                       var networks = L.toArray(uciWifiIfaces[i].network);
+
+                       for (var j = 0; j &lt; networks.length; j++) {
+                               if (networks[j] != this.sid)
+                                       continue;
+
+                               var netid = getWifiNetidBySid(uciWifiIfaces[i]['.name']);
+
+                               if (netid != null)
+                                       rv.push(L.network.instantiateDevice(netid[0], this));
+                       }
+               }
+
+               rv.sort(deviceSort);
+
+               return rv;
+       },
+
+       /**
+        * Checks whether this logical interface contains the given device
+        * object.
+        *
+        * @param {LuCI.Network.Protocol|LuCI.Network.Device|LuCI.Network.WifiDevice|LuCI.Network.WifiNetwork|string} device
+        * The object or device name to check. In case the given argument is not
+        * a string, it is resolved though the
+        * {@link LuCI.Network#getIfnameOf Network.getIfnameOf()} function.
+        *
+        * @returns {boolean}
+        * Returns `true` when this logical interface contains the given network
+        * device or `false` if not.
+        */
+       containsDevice: function(ifname) {
+               ifname = ifnameOf(ifname);
+
+               if (ifname == null)
+                       return false;
+               else if (this.isVirtual() &amp;&amp; '%s-%s'.format(this.getProtocol(), this.sid) == ifname)
+                       return true;
+               else if (this.isBridge() &amp;&amp; 'br-%s'.format(this.sid) == ifname)
+                       return true;
+
+               var ifnames = L.toArray(uci.get('network', this.sid, 'ifname'));
+
+               for (var i = 0; i &lt; ifnames.length; i++) {
+                       var m = ifnames[i].match(/^([^:/]+)/);
+                       if (m != null &amp;&amp; m[1] == ifname)
+                               return true;
+               }
+
+               var wif = getWifiSidByIfname(ifname);
+
+               if (wif != null) {
+                       var networks = L.toArray(uci.get('wireless', wif, 'network'));
+
+                       for (var i = 0; i &lt; networks.length; i++)
+                               if (networks[i] == this.sid)
+                                       return true;
+               }
+
+               return false;
+       }
+});
+
+/**
+ * @class
+ * @memberof LuCI.Network
+ * @hideconstructor
+ * @classdesc
+ *
+ * A `Network.Device` class instance represents an underlying Linux network
+ * device and allows querying device details such as packet statistics or MTU.
+ */
+Device = L.Class.extend(/** @lends LuCI.Network.Device.prototype */ {
+       __init__: function(ifname, network) {
+               var wif = getWifiSidByIfname(ifname);
+
+               if (wif != null) {
+                       var res = getWifiStateBySid(wif) || [],
+                           netid = getWifiNetidBySid(wif) || [];
+
+                       this.wif    = new WifiNetwork(wif, res[0], res[1], netid[0], res[2], { ifname: ifname });
+                       this.ifname = this.wif.getIfname();
+               }
+
+               this.ifname  = this.ifname || ifname;
+               this.dev     = _state.netdevs[this.ifname];
+               this.network = network;
+       },
+
+       _devstate: function(/* ... */) {
+               var rv = this.dev;
+
+               for (var i = 0; i &lt; arguments.length; i++)
+                       if (L.isObject(rv))
+                               rv = rv[arguments[i]];
+                       else
+                               return null;
+
+               return rv;
+       },
+
+       /**
+        * Get the name of the network device.
+        *
+        * @returns {string}
+        * Returns the name of the device, e.g. `eth0` or `wlan0`.
+        */
+       getName: function() {
+               return (this.wif != null ? this.wif.getIfname() : this.ifname);
+       },
+
+       /**
+        * Get the MAC address of the device.
+        *
+        * @returns {null|string}
+        * Returns the MAC address of the device or `null` if not applicable,
+        * e.g. for non-ethernet tunnel devices.
+        */
+       getMAC: function() {
+               var mac = this._devstate('macaddr');
+               return mac ? mac.toUpperCase() : null;
+       },
+
+       /**
+        * Get the MTU of the device.
+        *
+        * @returns {number}
+        * Returns the MTU of the device.
+        */
+       getMTU: function() {
+               return this._devstate('mtu');
+       },
+
+       /**
+        * Get the IPv4 addresses configured on the device.
+        *
+        * @returns {string[]}
+        * Returns an array of IPv4 address strings.
+        */
+       getIPAddrs: function() {
+               var addrs = this._devstate('ipaddrs');
+               return (Array.isArray(addrs) ? addrs : []);
+       },
+
+       /**
+        * Get the IPv6 addresses configured on the device.
+        *
+        * @returns {string[]}
+        * Returns an array of IPv6 address strings.
+        */
+       getIP6Addrs: function() {
+               var addrs = this._devstate('ip6addrs');
+               return (Array.isArray(addrs) ? addrs : []);
+       },
+
+       /**
+        * Get the type of the device..
+        *
+        * @returns {string}
+        * Returns a string describing the type of the network device:
+        *  - `alias` if it is an abstract alias device (`@` notation)
+        *  - `wifi` if it is a wireless interface (e.g. `wlan0`)
+        *  - `bridge` if it is a bridge device (e.g. `br-lan`)
+        *  - `tunnel` if it is a tun or tap device (e.g. `tun0`)
+        *  - `vlan` if it is a vlan device (e.g. `eth0.1`)
+        *  - `switch` if it is a switch device (e.g.`eth1` connected to switch0)
+        *  - `ethernet` for all other device types
+        */
+       getType: function() {
+               if (this.ifname != null &amp;&amp; this.ifname.charAt(0) == '@')
+                       return 'alias';
+               else if (this.wif != null || isWifiIfname(this.ifname))
+                       return 'wifi';
+               else if (_state.isBridge[this.ifname])
+                       return 'bridge';
+               else if (_state.isTunnel[this.ifname])
+                       return 'tunnel';
+               else if (this.ifname.indexOf('.') > -1)
+                       return 'vlan';
+               else if (_state.isSwitch[this.ifname])
+                       return 'switch';
+               else
+                       return 'ethernet';
+       },
+
+       /**
+        * Get a short description string for the device.
+        *
+        * @returns {string}
+        * Returns the device name for non-wifi devices or a string containing
+        * the operation mode and SSID for wifi devices.
+        */
+       getShortName: function() {
+               if (this.wif != null)
+                       return this.wif.getShortName();
+
+               return this.ifname;
+       },
+
+       /**
+        * Get a long description string for the device.
+        *
+        * @returns {string}
+        * Returns a string containing the type description and device name
+        * for non-wifi devices or operation mode and ssid for wifi ones.
+        */
+       getI18n: function() {
+               if (this.wif != null) {
+                       return '%s: %s "%s"'.format(
+                               _('Wireless Network'),
+                               this.wif.getActiveMode(),
+                               this.wif.getActiveSSID() || this.wif.getActiveBSSID() || this.wif.getID() || '?');
+               }
+
+               return '%s: "%s"'.format(this.getTypeI18n(), this.getName());
+       },
+
+       /**
+        * Get a string describing the device type.
+        *
+        * @returns {string}
+        * Returns a string describing the type, e.g. "Wireless Adapter" or
+        * "Bridge".
+        */
+       getTypeI18n: function() {
+               switch (this.getType()) {
+               case 'alias':
+                       return _('Alias Interface');
+
+               case 'wifi':
+                       return _('Wireless Adapter');
+
+               case 'bridge':
+                       return _('Bridge');
+
+               case 'switch':
+                       return _('Ethernet Switch');
+
+               case 'vlan':
+                       return (_state.isSwitch[this.ifname] ? _('Switch VLAN') : _('Software VLAN'));
+
+               case 'tunnel':
+                       return _('Tunnel Interface');
+
+               default:
+                       return _('Ethernet Adapter');
+               }
+       },
+
+       /**
+        * Get the associated bridge ports of the device.
+        *
+        * @returns {null|Array&lt;LuCI.Network.Device>}
+        * Returns an array of `Network.Device` instances representing the ports
+        * (slave interfaces) of the bridge or `null` when this device isn't
+        * a Linux bridge.
+        */
+       getPorts: function() {
+               var br = _state.bridges[this.ifname],
+                   rv = [];
+
+               if (br == null || !Array.isArray(br.ifnames))
+                       return null;
+
+               for (var i = 0; i &lt; br.ifnames.length; i++)
+                       rv.push(L.network.instantiateDevice(br.ifnames[i].name));
+
+               rv.sort(deviceSort);
+
+               return rv;
+       },
+
+       /**
+        * Get the bridge ID
+        *
+        * @returns {null|string}
+        * Returns the ID of this network bridge or `null` if this network
+        * device is not a Linux bridge.
+        */
+       getBridgeID: function() {
+               var br = _state.bridges[this.ifname];
+               return (br != null ? br.id : null);
+       },
+
+       /**
+        * Get the bridge STP setting
+        *
+        * @returns {boolean}
+        * Returns `true` when this device is a Linux bridge and has `stp`
+        * enabled, else `false`.
+        */
+       getBridgeSTP: function() {
+               var br = _state.bridges[this.ifname];
+               return (br != null ? !!br.stp : false);
+       },
+
+       /**
+        * Checks whether this device is up.
+        *
+        * @returns {boolean}
+        * Returns `true` when the associated device is running pr `false`
+        * when it is down or absent.
+        */
+       isUp: function() {
+               var up = this._devstate('flags', 'up');
+
+               if (up == null)
+                       up = (this.getType() == 'alias');
+
+               return up;
+       },
+
+       /**
+        * Checks whether this device is a Linux bridge.
+        *
+        * @returns {boolean}
+        * Returns `true` when the network device is present and a Linux bridge,
+        * else `false`.
+        */
+       isBridge: function() {
+               return (this.getType() == 'bridge');
+       },
+
+       /**
+        * Checks whether this device is part of a Linux bridge.
+        *
+        * @returns {boolean}
+        * Returns `true` when this network device is part of a bridge,
+        * else `false`.
+        */
+       isBridgePort: function() {
+               return (this._devstate('bridge') != null);
+       },
+
+       /**
+        * Get the amount of transmitted bytes.
+        *
+        * @returns {number}
+        * Returns the amount of bytes transmitted by the network device.
+        */
+       getTXBytes: function() {
+               var stat = this._devstate('stats');
+               return (stat != null ? stat.tx_bytes || 0 : 0);
+       },
+
+       /**
+        * Get the amount of received bytes.
+        *
+        * @returns {number}
+        * Returns the amount of bytes received by the network device.
+        */
+       getRXBytes: function() {
+               var stat = this._devstate('stats');
+               return (stat != null ? stat.rx_bytes || 0 : 0);
+       },
+
+       /**
+        * Get the amount of transmitted packets.
+        *
+        * @returns {number}
+        * Returns the amount of packets transmitted by the network device.
+        */
+       getTXPackets: function() {
+               var stat = this._devstate('stats');
+               return (stat != null ? stat.tx_packets || 0 : 0);
+       },
+
+       /**
+        * Get the amount of received packets.
+        *
+        * @returns {number}
+        * Returns the amount of packets received by the network device.
+        */
+       getRXPackets: function() {
+               var stat = this._devstate('stats');
+               return (stat != null ? stat.rx_packets || 0 : 0);
+       },
+
+       /**
+        * Get the primary logical interface this device is assigned to.
+        *
+        * @returns {null|LuCI.Network.Protocol}
+        * Returns a `Network.Protocol` instance representing the logical
+        * interface this device is attached to or `null` if it is not
+        * assigned to any logical interface.
+        */
+       getNetwork: function() {
+               return this.getNetworks()[0];
+       },
+
+       /**
+        * Get the logical interfaces this device is assigned to.
+        *
+        * @returns {Array&lt;LuCI.Network.Protocol>}
+        * Returns an array of `Network.Protocol` instances representing the
+        * logical interfaces this device is assigned to.
+        */
+       getNetworks: function() {
+               if (this.networks == null) {
+                       this.networks = [];
+
+                       var networks = enumerateNetworks.apply(L.network);
+
+                       for (var i = 0; i &lt; networks.length; i++)
+                               if (networks[i].containsDevice(this.ifname) || networks[i].getIfname() == this.ifname)
+                                       this.networks.push(networks[i]);
+
+                       this.networks.sort(networkSort);
+               }
+
+               return this.networks;
+       },
+
+       /**
+        * Get the related wireless network this device is related to.
+        *
+        * @returns {null|LuCI.Network.WifiNetwork}
+        * Returns a `Network.WifiNetwork` instance representing the wireless
+        * network corresponding to this network device or `null` if this device
+        * is not a wireless device.
+        */
+       getWifiNetwork: function() {
+               return (this.wif != null ? this.wif : null);
+       }
+});
+
+/**
+ * @class
+ * @memberof LuCI.Network
+ * @hideconstructor
+ * @classdesc
+ *
+ * A `Network.WifiDevice` class instance represents a wireless radio device
+ * present on the system and provides wireless capability information as
+ * well as methods for enumerating related wireless networks.
+ */
+WifiDevice = L.Class.extend(/** @lends LuCI.Network.WifiDevice.prototype */ {
+       __init__: function(name, radiostate) {
+               var uciWifiDevice = uci.get('wireless', name);
+
+               if (uciWifiDevice != null &amp;&amp;
+                   uciWifiDevice['.type'] == 'wifi-device' &amp;&amp;
+                   uciWifiDevice['.name'] != null) {
+                       this.sid    = uciWifiDevice['.name'];
+               }
+
+               this.sid    = this.sid || name;
+               this._ubusdata = {
+                       radio: name,
+                       dev:   radiostate
+               };
+       },
+
+       /* private */
+       ubus: function(/* ... */) {
+               var v = this._ubusdata;
+
+               for (var i = 0; i &lt; arguments.length; i++)
+                       if (L.isObject(v))
+                               v = v[arguments[i]];
+                       else
+                               return null;
+
+               return v;
+       },
+
+       /**
+        * Read the given UCI option value of this wireless device.
+        *
+        * @param {string} opt
+        * The UCI option name to read.
+        *
+        * @returns {null|string|string[]}
+        * Returns the UCI option value or `null` if the requested option is
+        * not found.
+        */
+       get: function(opt) {
+               return uci.get('wireless', this.sid, opt);
+       },
+
+       /**
+        * Set the given UCI option of this network to the given value.
+        *
+        * @param {string} opt
+        * The name of the UCI option to set.
+        *
+        * @param {null|string|string[]} val
+        * The value to set or `null` to remove the given option from the
+        * configuration.
+        */
+       set: function(opt, value) {
+               return uci.set('wireless', this.sid, opt, value);
+       },
+
+       /**
+        * Checks whether this wireless radio is disabled.
+        *
+        * @returns {boolean}
+        * Returns `true` when the wireless radio is marked as disabled in `ubus`
+        * runtime state or when the `disabled` option is set in the corresponding
+        * UCI configuration.
+        */
+       isDisabled: function() {
+               return this.ubus('dev', 'disabled') || this.get('disabled') == '1';
+       },
+
+       /**
+        * Get the configuration name of this wireless radio.
+        *
+        * @returns {string}
+        * Returns the UCI section name (e.g. `radio0`) of the corresponding
+        * radio configuration which also serves as unique logical identifier
+        * for the wireless phy.
+        */
+       getName: function() {
+               return this.sid;
+       },
+
+       /**
+        * Gets a list of supported hwmodes.
+        *
+        * The hwmode values describe the frequency band and wireless standard
+        * versions supported by the wireless phy.
+        *
+        * @returns {string[]}
+        * Returns an array of valid hwmode values for this radio. Currently
+        * known mode values are:
+        *  - `a` - Legacy 802.11a mode, 5 GHz, up to 54 Mbit/s
+        *  - `b` - Legacy 802.11b mode, 2.4 GHz, up to 11 Mbit/s
+        *  - `g` - Legacy 802.11g mode, 2.4 GHz, up to 54 Mbit/s
+        *  - `n` - IEEE 802.11n mode, 2.4 or 5 GHz, up to 600 Mbit/s
+        *  - `ac` - IEEE 802.11ac mode, 5 GHz, up to 6770 Mbit/s
+        */
+       getHWModes: function() {
+               var hwmodes = this.ubus('dev', 'iwinfo', 'hwmodes');
+               return Array.isArray(hwmodes) ? hwmodes : [ 'b', 'g' ];
+       },
+
+       /**
+        * Gets a list of supported htmodes.
+        *
+        * The htmode values describe the wide-frequency options supported by
+        * the wireless phy.
+        *
+        * @returns {string[]}
+        * Returns an array of valid htmode values for this radio. Currently
+        * known mode values are:
+        *  - `HT20` - applicable to IEEE 802.11n, 20 MHz wide channels
+        *  - `HT40` - applicable to IEEE 802.11n, 40 MHz wide channels
+        *  - `VHT20` - applicable to IEEE 802.11ac, 20 MHz wide channels
+        *  - `VHT40` - applicable to IEEE 802.11ac, 40 MHz wide channels
+        *  - `VHT80` - applicable to IEEE 802.11ac, 80 MHz wide channels
+        *  - `VHT160` - applicable to IEEE 802.11ac, 160 MHz wide channels
+        */
+       getHTModes: function() {
+               var htmodes = this.ubus('dev', 'iwinfo', 'htmodes');
+               return (Array.isArray(htmodes) &amp;&amp; htmodes.length) ? htmodes : null;
+       },
+
+       /**
+        * Get a string describing the wireless radio hardware.
+        *
+        * @returns {string}
+        * Returns the description string.
+        */
+       getI18n: function() {
+               var hw = this.ubus('dev', 'iwinfo', 'hardware'),
+                   type = L.isObject(hw) ? hw.name : null;
+
+               if (this.ubus('dev', 'iwinfo', 'type') == 'wl')
+                       type = 'Broadcom';
+
+               var hwmodes = this.getHWModes(),
+                   modestr = '';
+
+               hwmodes.sort(function(a, b) {
+                       return (a.length != b.length ? a.length > b.length : a > b);
+               });
+
+               modestr = hwmodes.join('');
+
+               return '%s 802.11%s Wireless Controller (%s)'.format(type || 'Generic', modestr, this.getName());
+       },
+
+       /**
+        * A wireless scan result object describes a neighbouring wireless
+        * network found in the vincinity.
+        *
+        * @typedef {Object&lt;string, number|string|LuCI.Network.WifiEncryption>} WifiScanResult
+        * @memberof LuCI.Network
+        *
+        * @property {string} ssid
+        * The SSID / Mesh ID of the network.
+        *
+        * @property {string} bssid
+        * The BSSID if the network.
+        *
+        * @property {string} mode
+        * The operation mode of the network (`Master`, `Ad-Hoc`, `Mesh Point`).
+        *
+        * @property {number} channel
+        * The wireless channel of the network.
+        *
+        * @property {number} signal
+        * The received signal strength of the network in dBm.
+        *
+        * @property {number} quality
+        * The numeric quality level of the signal, can be used in conjunction
+        * with `quality_max` to calculate a quality percentage.
+        *
+        * @property {number} quality_max
+        * The maximum possible quality level of the signal, can be used in
+        * conjunction with `quality` to calculate a quality percentage.
+        *
+        * @property {LuCI.Network.WifiEncryption} encryption
+        * The encryption used by the wireless network.
+        */
+
+       /**
+        * Trigger a wireless scan on this radio device and obtain a list of
+        * nearby networks.
+        *
+        * @returns {Promise&lt;Array&lt;LuCI.Network.WifiScanResult>>}
+        * Returns a promise resolving to an array of scan result objects
+        * describing the networks found in the vincinity.
+        */
+       getScanList: function() {
+               return callIwinfoScan(this.sid);
+       },
+
+       /**
+        * Check whether the wireless radio is marked as up in the `ubus`
+        * runtime state.
+        *
+        * @returns {boolean}
+        * Returns `true` when the radio device is up, else `false`.
+        */
+       isUp: function() {
+               if (L.isObject(_state.radios[this.sid]))
+                       return (_state.radios[this.sid].up == true);
+
+               return false;
+       },
+
+       /**
+        * Get the wifi network of the given name belonging to this radio device
+        *
+        * @param {string} network
+        * The name of the wireless network to lookup. This may be either an uci
+        * configuration section ID, a network ID in the form `radio#.network#`
+        * or a Linux network device name like `wlan0` which is resolved to the
+        * corresponding configuration section through `ubus` runtime information.
+        *
+        * @returns {Promise&lt;LuCI.Network.WifiNetwork>}
+        * Returns a promise resolving to a `Network.WifiNetwork` instance
+        * representing the wireless network and rejecting with `null` if
+        * the given network could not be found or is not associated with
+        * this radio device.
+        */
+       getWifiNetwork: function(network) {
+               return L.network.getWifiNetwork(network).then(L.bind(function(networkInstance) {
+                       var uciWifiIface = (networkInstance.sid ? uci.get('wireless', networkInstance.sid) : null);
+
+                       if (uciWifiIface == null || uciWifiIface['.type'] != 'wifi-iface' || uciWifiIface.device != this.sid)
+                               return Promise.reject();
+
+                       return networkInstance;
+               }, this));
+       },
+
+       /**
+        * Get all wireless networks associated with this wireless radio device.
+        *
+        * @returns {Promise&lt;Array&lt;LuCI.Network.WifiNetwork>>}
+        * Returns a promise resolving to an array of `Network.WifiNetwork`
+        * instances respresenting the wireless networks associated with this
+        * radio device.
+        */
+       getWifiNetworks: function() {
+               var uciWifiIfaces = uci.sections('wireless', 'wifi-iface'),
+                   tasks = [];
+
+               for (var i = 0; i &lt; uciWifiIfaces.length; i++)
+                       if (uciWifiIfaces[i].device == this.sid)
+                               tasks.push(L.network.getWifiNetwork(uciWifiIfaces[i]['.name']));
+
+               return Promise.all(tasks);
+       },
+
+       /**
+        * Adds a new wireless network associated with this radio device to the
+        * configuration and sets its options to the provided values.
+        *
+        * @param {Object&lt;string, string|string[]>} [options]
+        * The options to set for the newly added wireless network.
+        *
+        * @returns {Promise&lt;null|LuCI.Network.WifiNetwork>}
+        * Returns a promise resolving to a `WifiNetwork` instance describing
+        * the newly added wireless network or `null` if the given options
+        * were invalid.
+        */
+       addWifiNetwork: function(options) {
+               if (!L.isObject(options))
+                       options = {};
+
+               options.device = this.sid;
+
+               return L.network.addWifiNetwork(options);
+       },
+
+       /**
+        * Deletes the wireless network with the given name associated with this
+        * radio device.
+        *
+        * @param {string} network
+        * The name of the wireless network to lookup. This may be either an uci
+        * configuration section ID, a network ID in the form `radio#.network#`
+        * or a Linux network device name like `wlan0` which is resolved to the
+        * corresponding configuration section through `ubus` runtime information.
+        *
+        * @returns {Promise&lt;boolean>}
+        * Returns a promise resolving to `true` when the wireless network was
+        * successfully deleted from the configuration or `false` when the given
+        * network could not be found or if the found network was not associated
+        * with this wireless radio device.
+        */
+       deleteWifiNetwork: function(network) {
+               var sid = null;
+
+               if (network instanceof WifiNetwork) {
+                       sid = network.sid;
+               }
+               else {
+                       var uciWifiIface = uci.get('wireless', network);
+
+                       if (uciWifiIface == null || uciWifiIface['.type'] != 'wifi-iface')
+                               sid = getWifiSidByIfname(network);
+               }
+
+               if (sid == null || uci.get('wireless', sid, 'device') != this.sid)
+                       return Promise.resolve(false);
+
+               uci.delete('wireless', network);
+
+               return Promise.resolve(true);
+       }
+});
+
+/**
+ * @class
+ * @memberof LuCI.Network
+ * @hideconstructor
+ * @classdesc
+ *
+ * A `Network.WifiNetwork` instance represents a wireless network (vif)
+ * configured on top of a radio device and provides functions for querying
+ * the runtime state of the network. Most radio devices support multiple
+ * such networks in parallel.
+ */
+WifiNetwork = L.Class.extend(/** @lends LuCI.Network.WifiNetwork.prototype */ {
+       __init__: function(sid, radioname, radiostate, netid, netstate) {
+               this.sid    = sid;
+               this.netid  = netid;
+               this._ubusdata = {
+                       radio: radioname,
+                       dev:   radiostate,
+                       net:   netstate
+               };
+       },
+
+       ubus: function(/* ... */) {
+               var v = this._ubusdata;
+
+               for (var i = 0; i &lt; arguments.length; i++)
+                       if (L.isObject(v))
+                               v = v[arguments[i]];
+                       else
+                               return null;
+
+               return v;
+       },
+
+       /**
+        * Read the given UCI option value of this wireless network.
+        *
+        * @param {string} opt
+        * The UCI option name to read.
+        *
+        * @returns {null|string|string[]}
+        * Returns the UCI option value or `null` if the requested option is
+        * not found.
+        */
+       get: function(opt) {
+               return uci.get('wireless', this.sid, opt);
+       },
+
+       /**
+        * Set the given UCI option of this network to the given value.
+        *
+        * @param {string} opt
+        * The name of the UCI option to set.
+        *
+        * @param {null|string|string[]} val
+        * The value to set or `null` to remove the given option from the
+        * configuration.
+        */
+       set: function(opt, value) {
+               return uci.set('wireless', this.sid, opt, value);
+       },
+
+       /**
+        * Checks whether this wireless network is disabled.
+        *
+        * @returns {boolean}
+        * Returns `true` when the wireless radio is marked as disabled in `ubus`
+        * runtime state or when the `disabled` option is set in the corresponding
+        * UCI configuration.
+        */
+       isDisabled: function() {
+               return this.ubus('dev', 'disabled') || this.get('disabled') == '1';
+       },
+
+       /**
+        * Get the configured operation mode of the wireless network.
+        *
+        * @returns {string}
+        * Returns the configured operation mode. Possible values are:
+        *  - `ap` - Master (Access Point) mode
+        *  - `sta` - Station (client) mode
+        *  - `adhoc` - Ad-Hoc (IBSS) mode
+        *  - `mesh` - Mesh (IEEE 802.11s) mode
+        *  - `monitor` - Monitor mode
+        */
+       getMode: function() {
+               return this.ubus('net', 'config', 'mode') || this.get('mode') || 'ap';
+       },
+
+       /**
+        * Get the configured SSID of the wireless network.
+        *
+        * @returns {null|string}
+        * Returns the configured SSID value or `null` when this network is
+        * in mesh mode.
+        */
+       getSSID: function() {
+               if (this.getMode() == 'mesh')
+                       return null;
+
+               return this.ubus('net', 'config', 'ssid') || this.get('ssid');
+       },
+
+       /**
+        * Get the configured Mesh ID of the wireless network.
+        *
+        * @returns {null|string}
+        * Returns the configured mesh ID value or `null` when this network
+        * is not in mesh mode.
+        */
+       getMeshID: function() {
+               if (this.getMode() != 'mesh')
+                       return null;
+
+               return this.ubus('net', 'config', 'mesh_id') || this.get('mesh_id');
+       },
+
+       /**
+        * Get the configured BSSID of the wireless network.
+        *
+        * @returns {null|string}
+        * Returns the BSSID value or `null` if none has been specified.
+        */
+       getBSSID: function() {
+               return this.ubus('net', 'config', 'bssid') || this.get('bssid');
+       },
+
+       /**
+        * Get the names of the logical interfaces this wireless network is
+        * attached to.
+        *
+        * @returns {string[]}
+        * Returns an array of logical interface names.
+        */
+       getNetworkNames: function() {
+               return L.toArray(this.ubus('net', 'config', 'network') || this.get('network'));
+       },
+
+       /**
+        * Get the internal network ID of this wireless network.
+        *
+        * The network ID is a LuCI specific identifer in the form
+        * `radio#.network#` to identify wireless networks by their corresponding
+        * radio and network index numbers.
+        *
+        * @returns {string}
+        * Returns the LuCI specific network ID.
+        */
+       getID: function() {
+               return this.netid;
+       },
+
+       /**
+        * Get the configuration ID of this wireless network.
+        *
+        * @returns {string}
+        * Returns the corresponding UCI section ID of the network.
+        */
+       getName: function() {
+               return this.sid;
+       },
+
+       /**
+        * Get the Linux network device name.
+        *
+        * @returns {null|string}
+        * Returns the current Linux network device name as resolved from
+        * `ubus` runtime information or `null` if this network has no
+        * associated network device, e.g. when not configured or up.
+        */
+       getIfname: function() {
+               var ifname = this.ubus('net', 'ifname') || this.ubus('net', 'iwinfo', 'ifname');
+
+               if (ifname == null || ifname.match(/^(wifi|radio)\d/))
+                       ifname = this.netid;
+
+               return ifname;
+       },
+
+       /**
+        * Get the name of the corresponding wifi radio device.
+        *
+        * @returns {null|string}
+        * Returns the name of the radio device this network is configured on
+        * or `null` if it cannot be determined.
+        */
+       getWifiDeviceName: function() {
+               return this.ubus('radio') || this.get('device');
+       },
+
+       /**
+        * Get the corresponding wifi radio device.
+        *
+        * @returns {null|LuCI.Network.WifiDevice}
+        * Returns a `Network.WifiDevice` instance representing the corresponding
+        * wifi radio device or `null` if the related radio device could not be
+        * found.
+        */
+       getWifiDevice: function() {
+               var radioname = this.getWifiDeviceName();
+
+               if (radioname == null)
+                       return Promise.reject();
+
+               return L.network.getWifiDevice(radioname);
+       },
+
+       /**
+        * Check whether the radio network is up.
+        *
+        * This function actually queries the up state of the related radio
+        * device and assumes this network to be up as well when the parent
+        * radio is up. This is due to the fact that OpenWrt does not control
+        * virtual interfaces individually but within one common hostapd
+        * instance.
+        *
+        * @returns {boolean}
+        * Returns `true` when the network is up, else `false`.
+        */
+       isUp: function() {
+               var device = this.getDevice();
+
+               if (device == null)
+                       return false;
+
+               return device.isUp();
+       },
+
+       /**
+        * Query the current operation mode from runtime information.
+        *
+        * @returns {string}
+        * Returns the human readable mode name as reported by `ubus` runtime
+        * state. Possible returned values are:
+        *  - `Master`
+        *  - `Ad-Hoc`
+        *  - `Client`
+        *  - `Monitor`
+        *  - `Master (VLAN)`
+        *  - `WDS`
+        *  - `Mesh Point`
+        *  - `P2P Client`
+        *  - `P2P Go`
+        *  - `Unknown`
+        */
+       getActiveMode: function() {
+               var mode = this.ubus('net', 'iwinfo', 'mode') || this.ubus('net', 'config', 'mode') || this.get('mode') || 'ap';
+
+               switch (mode) {
+               case 'ap':      return 'Master';
+               case 'sta':     return 'Client';
+               case 'adhoc':   return 'Ad-Hoc';
+               case 'mesh':    return 'Mesh';
+               case 'monitor': return 'Monitor';
+               default:        return mode;
+               }
+       },
+
+       /**
+        * Query the current operation mode from runtime information as
+        * translated string.
+        *
+        * @returns {string}
+        * Returns the translated, human readable mode name as reported by
+        *`ubus` runtime state.
+        */
+       getActiveModeI18n: function() {
+               var mode = this.getActiveMode();
+
+               switch (mode) {
+               case 'Master':  return _('Master');
+               case 'Client':  return _('Client');
+               case 'Ad-Hoc':  return _('Ad-Hoc');
+               case 'Mash':    return _('Mesh');
+               case 'Monitor': return _('Monitor');
+               default:        return mode;
+               }
+       },
+
+       /**
+        * Query the current SSID from runtime information.
+        *
+        * @returns {string}
+        * Returns the current SSID or Mesh ID as reported by `ubus` runtime
+        * information.
+        */
+       getActiveSSID: function() {
+               return this.ubus('net', 'iwinfo', 'ssid') || this.ubus('net', 'config', 'ssid') || this.get('ssid');
+       },
+
+       /**
+        * Query the current BSSID from runtime information.
+        *
+        * @returns {string}
+        * Returns the current BSSID or Mesh ID as reported by `ubus` runtime
+        * information.
+        */
+       getActiveBSSID: function() {
+               return this.ubus('net', 'iwinfo', 'bssid') || this.ubus('net', 'config', 'bssid') || this.get('bssid');
+       },
+
+       /**
+        * Query the current encryption settings from runtime information.
+        *
+        * @returns {string}
+        * Returns a string describing the current encryption or `-` if the the
+        * encryption state could not be found in `ubus` runtime information.
+        */
+       getActiveEncryption: function() {
+               return formatWifiEncryption(this.ubus('net', 'iwinfo', 'encryption')) || '-';
+       },
+
+       /**
+        * A wireless peer entry describes the properties of a remote wireless
+        * peer associated with a local network.
+        *
+        * @typedef {Object&lt;string, boolean|number|string|LuCI.Network.WifiRateEntry>} WifiPeerEntry
+        * @memberof LuCI.Network
+        *
+        * @property {string} mac
+        * The MAC address (BSSID).
+        *
+        * @property {number} signal
+        * The received signal strength.
+        *
+        * @property {number} [signal_avg]
+        * The average signal strength if supported by the driver.
+        *
+        * @property {number} [noise]
+        * The current noise floor of the radio. May be `0` or absent if not
+        * supported by the driver.
+        *
+        * @property {number} inactive
+        * The amount of milliseconds the peer has been inactive, e.g. due
+        * to powersave.
+        *
+        * @property {number} connected_time
+        * The amount of milliseconds the peer is associated to this network.
+        *
+        * @property {number} [thr]
+        * The estimated throughput of the peer, May be `0` or absent if not
+        * supported by the driver.
+        *
+        * @property {boolean} authorized
+        * Specifies whether the peer is authorized to associate to this network.
+        *
+        * @property {boolean} authenticated
+        * Specifies whether the peer completed authentication to this network.
+        *
+        * @property {string} preamble
+        * The preamble mode used by the peer. May be `long` or `short`.
+        *
+        * @property {boolean} wme
+        * Specifies whether the peer supports WME/WMM capabilities.
+        *
+        * @property {boolean} mfp
+        * Specifies whether management frame protection is active.
+        *
+        * @property {boolean} tdls
+        * Specifies whether TDLS is active.
+        *
+        * @property {number} [mesh llid]
+        * The mesh LLID, may be `0` or absent if not applicable or supported
+        * by the driver.
+        *
+        * @property {number} [mesh plid]
+        * The mesh PLID, may be `0` or absent if not applicable or supported
+        * by the driver.
+        *
+        * @property {string} [mesh plink]
+        * The mesh peer link state description, may be an empty string (`''`)
+        * or absent if not applicable or supported by the driver.
+        *
+        * The following states are known:
+        *  - `LISTEN`
+        *  - `OPN_SNT`
+        *  - `OPN_RCVD`
+        *  - `CNF_RCVD`
+        *  - `ESTAB`
+        *  - `HOLDING`
+        *  - `BLOCKED`
+        *  - `UNKNOWN`
+        *
+        * @property {number} [mesh local PS]
+        * The local powersafe mode for the peer link, may be an empty
+        * string (`''`) or absent if not applicable or supported by
+        * the driver.
+        *
+        * The following modes are known:
+        *  - `ACTIVE` (no power save)
+        *  - `LIGHT SLEEP`
+        *  - `DEEP SLEEP`
+        *  - `UNKNOWN`
+        *
+        * @property {number} [mesh peer PS]
+        * The remote powersafe mode for the peer link, may be an empty
+        * string (`''`) or absent if not applicable or supported by
+        * the driver.
+        *
+        * The following modes are known:
+        *  - `ACTIVE` (no power save)
+        *  - `LIGHT SLEEP`
+        *  - `DEEP SLEEP`
+        *  - `UNKNOWN`
+        *
+        * @property {number} [mesh non-peer PS]
+        * The powersafe mode for all non-peer neigbours, may be an empty
+        * string (`''`) or absent if not applicable or supported by the driver.
+        *
+        * The following modes are known:
+        *  - `ACTIVE` (no power save)
+        *  - `LIGHT SLEEP`
+        *  - `DEEP SLEEP`
+        *  - `UNKNOWN`
+        *
+        * @property {LuCI.Network.WifiRateEntry} rx
+        * Describes the receiving wireless rate from the peer.
+        *
+        * @property {LuCI.Network.WifiRateEntry} tx
+        * Describes the transmitting wireless rate to the peer.
+        */
+
+       /**
+        * A wireless rate entry describes the properties of a wireless
+        * transmission rate to or from a peer.
+        *
+        * @typedef {Object&lt;string, boolean|number>} WifiRateEntry
+        * @memberof LuCI.Network
+        *
+        * @property {number} [drop_misc]
+        * The amount of received misc. packages that have been dropped, e.g.
+        * due to corruption or missing authentication. Only applicable to
+        * receiving rates.
+        *
+        * @property {number} packets
+        * The amount of packets that have been received or sent.
+        *
+        * @property {number} bytes
+        * The amount of bytes that have been received or sent.
+        *
+        * @property {number} [failed]
+        * The amount of failed tranmission attempts. Only applicable to
+        * transmit rates.
+        *
+        * @property {number} [retries]
+        * The amount of retried transmissions. Only applicable to transmit
+        * rates.
+        *
+        * @property {boolean} is_ht
+        * Specifies whether this rate is an HT (IEEE 802.11n) rate.
+        *
+        * @property {boolean} is_vht
+        * Specifies whether this rate is an VHT (IEEE 802.11ac) rate.
+        *
+        * @property {number} mhz
+        * The channel width in MHz used for the transmission.
+        *
+        * @property {number} rate
+        * The bitrate in bit/s of the transmission.
+        *
+        * @property {number} [mcs]
+        * The MCS index of the used transmission rate. Only applicable to
+        * HT or VHT rates.
+        *
+        * @property {number} [40mhz]
+        * Specifies whether the tranmission rate used 40MHz wide channel.
+        * Only applicable to HT or VHT rates.
+        *
+        * Note: this option exists for backwards compatibility only and its
+        * use is discouraged. The `mhz` field should be used instead to
+        * determine the channel width.
+        *
+        * @property {boolean} [short_gi]
+        * Specifies whether a short guard interval is used for the transmission.
+        * Only applicable to HT or VHT rates.
+        *
+        * @property {number} [nss]
+        * Specifies the number of spatial streams used by the transmission.
+        * Only applicable to VHT rates.
+        */
+
+       /**
+        * Fetch the list of associated peers.
+        *
+        * @returns {Promise&lt;Array&lt;LuCI.Network.WifiPeerEntry>>}
+        * Returns a promise resolving to an array of wireless peers associated
+        * with this network.
+        */
+       getAssocList: function() {
+               return callIwinfoAssoclist(this.getIfname());
+       },
+
+       /**
+        * Query the current operating frequency of the wireless network.
+        *
+        * @returns {null|string}
+        * Returns the current operating frequency of the network from `ubus`
+        * runtime information in GHz or `null` if the information is not
+        * available.
+        */
+       getFrequency: function() {
+               var freq = this.ubus('net', 'iwinfo', 'frequency');
+
+               if (freq != null &amp;&amp; freq > 0)
+                       return '%.03f'.format(freq / 1000);
+
+               return null;
+       },
+
+       /**
+        * Query the current average bitrate of all peers associated to this
+        * wireless network.
+        *
+        * @returns {null|number}
+        * Returns the average bit rate among all peers associated to the network
+        * as reported by `ubus` runtime information or `null` if the information
+        * is not available.
+        */
+       getBitRate: function() {
+               var rate = this.ubus('net', 'iwinfo', 'bitrate');
+
+               if (rate != null &amp;&amp; rate > 0)
+                       return (rate / 1000);
+
+               return null;
+       },
+
+       /**
+        * Query the current wireless channel.
+        *
+        * @returns {null|number}
+        * Returns the wireless channel as reported by `ubus` runtime information
+        * or `null` if it cannot be determined.
+        */
+       getChannel: function() {
+               return this.ubus('net', 'iwinfo', 'channel') || this.ubus('dev', 'config', 'channel') || this.get('channel');
+       },
+
+       /**
+        * Query the current wireless signal.
+        *
+        * @returns {null|number}
+        * Returns the wireless signal in dBm as reported by `ubus` runtime
+        * information or `null` if it cannot be determined.
+        */
+       getSignal: function() {
+               return this.ubus('net', 'iwinfo', 'signal') || 0;
+       },
+
+       /**
+        * Query the current radio noise floor.
+        *
+        * @returns {number}
+        * Returns the radio noise floor in dBm as reported by `ubus` runtime
+        * information or `0` if it cannot be determined.
+        */
+       getNoise: function() {
+               return this.ubus('net', 'iwinfo', 'noise') || 0;
+       },
+
+       /**
+        * Query the current country code.
+        *
+        * @returns {string}
+        * Returns the wireless country code as reported by `ubus` runtime
+        * information or `00` if it cannot be determined.
+        */
+       getCountryCode: function() {
+               return this.ubus('net', 'iwinfo', 'country') || this.ubus('dev', 'config', 'country') || '00';
+       },
+
+       /**
+        * Query the current radio TX power.
+        *
+        * @returns {null|number}
+        * Returns the wireless network transmit power in dBm as reported by
+        * `ubus` runtime information or `null` if it cannot be determined.
+        */
+       getTXPower: function() {
+               return this.ubus('net', 'iwinfo', 'txpower');
+       },
+
+       /**
+        * Query the radio TX power offset.
+        *
+        * Some wireless radios have a fixed power offset, e.g. due to the
+        * use of external amplifiers.
+        *
+        * @returns {number}
+        * Returns the wireless network transmit power offset in dBm as reported
+        * by `ubus` runtime information or `0` if there is no offset, or if it
+        * cannot be determined.
+        */
+       getTXPowerOffset: function() {
+               return this.ubus('net', 'iwinfo', 'txpower_offset') || 0;
+       },
+
+       /**
+        * Calculate the current signal.
+        *
+        * @deprecated
+        * @returns {number}
+        * Returns the calculated signal level, which is the difference between
+        * noise and signal (SNR), divided by 5.
+        */
+       getSignalLevel: function(signal, noise) {
+               if (this.getActiveBSSID() == '00:00:00:00:00:00')
+                       return -1;
+
+               signal = signal || this.getSignal();
+               noise  = noise  || this.getNoise();
+
+               if (signal &lt; 0 &amp;&amp; noise &lt; 0) {
+                       var snr = -1 * (noise - signal);
+                       return Math.floor(snr / 5);
+               }
+
+               return 0;
+       },
+
+       /**
+        * Calculate the current signal quality percentage.
+        *
+        * @returns {number}
+        * Returns the calculated signal quality in percent. The value is
+        * calculated from the `quality` and `quality_max` indicators reported
+        * by `ubus` runtime state.
+        */
+       getSignalPercent: function() {
+               var qc = this.ubus('net', 'iwinfo', 'quality') || 0,
+                   qm = this.ubus('net', 'iwinfo', 'quality_max') || 0;
+
+               if (qc > 0 &amp;&amp; qm > 0)
+                       return Math.floor((100 / qm) * qc);
+
+               return 0;
+       },
+
+       /**
+        * Get a short description string for this wireless network.
+        *
+        * @returns {string}
+        * Returns a string describing this network, consisting of the
+        * active operation mode, followed by either the SSID, BSSID or
+        * internal network ID, depending on which information is available.
+        */
+       getShortName: function() {
+               return '%s "%s"'.format(
+                       this.getActiveModeI18n(),
+                       this.getActiveSSID() || this.getActiveBSSID() || this.getID());
+       },
+
+       /**
+        * Get a description string for this wireless network.
+        *
+        * @returns {string}
+        * Returns a string describing this network, consisting of the
+        * term `Wireless Network`, followed by the active operation mode,
+        * the SSID, BSSID or internal network ID and the Linux network device
+        * name, depending on which information is available.
+        */
+       getI18n: function() {
+               return '%s: %s "%s" (%s)'.format(
+                       _('Wireless Network'),
+                       this.getActiveModeI18n(),
+                       this.getActiveSSID() || this.getActiveBSSID() || this.getID(),
+                       this.getIfname());
+       },
+
+       /**
+        * Get the primary logical interface this wireless network is attached to.
+        *
+        * @returns {null|LuCI.Network.Protocol}
+        * Returns a `Network.Protocol` instance representing the logical
+        * interface or `null` if this network is not attached to any logical
+        * interface.
+        */
+       getNetwork: function() {
+               return this.getNetworks()[0];
+       },
+
+       /**
+        * Get the logical interfaces this wireless network is attached to.
+        *
+        * @returns {Array&lt;LuCI.Network.Protocol>}
+        * Returns an array of `Network.Protocol` instances representing the
+        * logical interfaces this wireless network is attached to.
+        */
+       getNetworks: function() {
+               var networkNames = this.getNetworkNames(),
+                   networks = [];
+
+               for (var i = 0; i &lt; networkNames.length; i++) {
+                       var uciInterface = uci.get('network', networkNames[i]);
+
+                       if (uciInterface == null || uciInterface['.type'] != 'interface')
+                               continue;
+
+                       networks.push(L.network.instantiateNetwork(networkNames[i]));
+               }
+
+               networks.sort(networkSort);
+
+               return networks;
+       },
+
+       /**
+        * Get the associated Linux network device.
+        *
+        * @returns {LuCI.Network.Device}
+        * Returns a `Network.Device` instance representing the Linux network
+        * device associted with this wireless network.
+        */
+       getDevice: function() {
+               return L.network.instantiateDevice(this.getIfname());
+       }
+});
+
+return Network;
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="LuCI.html">LuCI</a></li><li><a href="LuCI.Class.html">Class</a></li><li><a href="LuCI.dom.html">dom</a></li><li><a href="LuCI.fs.html">fs</a></li><li><a href="LuCI.Headers.html">Headers</a></li><li><a href="LuCI.Network.html">Network</a></li><li><a href="LuCI.Network.Device.html">Device</a></li><li><a href="LuCI.Network.Hosts.html">Hosts</a></li><li><a href="LuCI.Network.Protocol.html">Protocol</a></li><li><a href="LuCI.Network.WifiDevice.html">WifiDevice</a></li><li><a href="LuCI.Network.WifiNetwork.html">WifiNetwork</a></li><li><a href="LuCI.Poll.html">Poll</a></li><li><a href="LuCI.Request.html">Request</a></li><li><a href="LuCI.Request.poll.html">poll</a></li><li><a href="LuCI.Response.html">Response</a></li><li><a href="LuCI.rpc.html">rpc</a></li><li><a href="LuCI.uci.html">uci</a></li><li><a href="LuCI.view.html">view</a></li><li><a href="LuCI.XHR.html">XHR</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 09:33:05 GMT+0100 (Central European Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/docs/jsapi/rpc.js.html b/docs/jsapi/rpc.js.html
new file mode 100644 (file)
index 0000000..ca068f3
--- /dev/null
@@ -0,0 +1,528 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: rpc.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: rpc.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>'use strict';
+
+var rpcRequestID = 1,
+    rpcSessionID = L.env.sessionid || '00000000000000000000000000000000',
+    rpcBaseURL = L.url('admin/ubus'),
+    rpcInterceptorFns = [];
+
+/**
+ * @class rpc
+ * @memberof LuCI
+ * @hideconstructor
+ * @classdesc
+ *
+ * The `LuCI.rpc` class provides high level ubus JSON-RPC abstractions
+ * and means for listing and invoking remove RPC methods.
+ */
+return L.Class.extend(/** @lends LuCI.rpc.prototype */ {
+       /* privates */
+       call: function(req, cb, nobatch) {
+               var q = '';
+
+               if (Array.isArray(req)) {
+                       if (req.length == 0)
+                               return Promise.resolve([]);
+
+                       for (var i = 0; i &lt; req.length; i++)
+                               if (req[i].params)
+                                       q += '%s%s.%s'.format(
+                                               q ? ';' : '/',
+                                               req[i].params[1],
+                                               req[i].params[2]
+                                       );
+               }
+               else if (req.params) {
+                       q += '/%s.%s'.format(req.params[1], req.params[2]);
+               }
+
+               return L.Request.post(rpcBaseURL + q, req, {
+                       timeout: (L.env.rpctimeout || 20) * 1000,
+                       nobatch: nobatch,
+                       credentials: true
+               }).then(cb, cb);
+       },
+
+       parseCallReply: function(req, res) {
+               var msg = null;
+
+               if (res instanceof Error)
+                       return req.reject(res);
+
+               try {
+                       if (!res.ok)
+                               L.raise('RPCError', 'RPC call to %s/%s failed with HTTP error %d: %s',
+                                       req.object, req.method, res.status, res.statusText || '?');
+
+                       msg = res.json();
+               }
+               catch (e) {
+                       return req.reject(e);
+               }
+
+               /*
+                * The interceptor args are intentionally swapped.
+                * Response is passed as first arg to align with Request class interceptors
+                */
+               Promise.all(rpcInterceptorFns.map(function(fn) { return fn(msg, req) }))
+                       .then(this.handleCallReply.bind(this, req, msg))
+                       .catch(req.reject);
+       },
+
+       handleCallReply: function(req, msg) {
+               var type = Object.prototype.toString,
+                   ret = null;
+
+               try {
+                       /* verify message frame */
+                       if (!L.isObject(msg) || msg.jsonrpc != '2.0')
+                               L.raise('RPCError', 'RPC call to %s/%s returned invalid message frame',
+                                       req.object, req.method);
+
+                       /* check error condition */
+                       if (L.isObject(msg.error) &amp;&amp; msg.error.code &amp;&amp; msg.error.message)
+                               L.raise('RPCError', 'RPC call to %s/%s failed with error %d: %s',
+                                       req.object, req.method, msg.error.code, msg.error.message || '?');
+               }
+               catch (e) {
+                       return req.reject(e);
+               }
+
+               if (!req.object &amp;&amp; !req.method) {
+                       ret = msg.result;
+               }
+               else if (Array.isArray(msg.result)) {
+                       ret = (msg.result.length > 1) ? msg.result[1] : msg.result[0];
+               }
+
+               if (req.expect) {
+                       for (var key in req.expect) {
+                               if (ret != null &amp;&amp; key != '')
+                                       ret = ret[key];
+
+                               if (ret == null || type.call(ret) != type.call(req.expect[key]))
+                                       ret = req.expect[key];
+
+                               break;
+                       }
+               }
+
+               /* apply filter */
+               if (typeof(req.filter) == 'function') {
+                       req.priv[0] = ret;
+                       req.priv[1] = req.params;
+                       ret = req.filter.apply(this, req.priv);
+               }
+
+               req.resolve(ret);
+       },
+
+       /**
+        * Lists available remote ubus objects or the method signatures of
+        * specific objects.
+        *
+        * This function has two signatures and is sensitive to the number of
+        * arguments passed to it:
+        *  - `list()` -
+        *    Returns an array containing the names of all remote `ubus` objects
+        *  - `list("objname", ...)`
+        *    Returns method signatures for each given `ubus` object name.
+        *
+        * @param {...string} [objectNames]
+        * If any object names are given, this function will return the method
+        * signatures of each given object.
+        *
+        * @returns {Promise&lt;Array&lt;string>|Object&lt;string, Object&lt;string, Object&lt;string, string>>>>}
+        * When invoked without arguments, this function will return a promise
+        * resolving to an array of `ubus` object names. When invoked with one or
+        * more arguments, a promise resolving to an object describing the method
+        * signatures of each requested `ubus` object name will be returned.
+        */
+       list: function() {
+               var msg = {
+                       jsonrpc: '2.0',
+                       id:      rpcRequestID++,
+                       method:  'list',
+                       params:  arguments.length ? this.varargs(arguments) : undefined
+               };
+
+               return new Promise(L.bind(function(resolveFn, rejectFn) {
+                       /* store request info */
+                       var req = {
+                               resolve: resolveFn,
+                               reject:  rejectFn
+                       };
+
+                       /* call rpc */
+                       this.call(msg, this.parseCallReply.bind(this, req));
+               }, this));
+       },
+
+       /**
+        * @typedef {Object} DeclareOptions
+        * @memberof LuCI.rpc
+        *
+        * @property {string} object
+        * The name of the remote `ubus` object to invoke.
+        *
+        * @property {string} method
+        * The name of the remote `ubus` method to invoke.
+        *
+        * @property {string[]} [params]
+        * Lists the named parameters expected by the remote `ubus` RPC method.
+        * The arguments passed to the resulting generated method call function
+        * will be mapped to named parameters in the order they appear in this
+        * array.
+        *
+        * Extraneous parameters passed to the generated function will not be
+        * sent to the remote procedure but are passed to the
+        * {@link LuCI.rpc~filterFn filter function} if one is specified.
+        *
+        * Examples:
+        *  - `params: [ "foo", "bar" ]` -
+        *    When the resulting call function is invoked with `fn(true, false)`,
+        *    the corresponding args object sent to the remote procedure will be
+        *    `{ foo: true, bar: false }`.
+        *  - `params: [ "test" ], filter: function(reply, args, extra) { ... }` -
+        *    When the resultung generated function is invoked with
+        *    `fn("foo", "bar", "baz")` then `{ "test": "foo" }` will be sent as
+        *    argument to the remote procedure and the filter function will be
+        *    invoked with `filterFn(reply, [ "foo" ], "bar", "baz")`
+        *
+        * @property {Object&lt;string,*>} [expect]
+        * Describes the expected return data structure. The given object is
+        * supposed to contain a single key selecting the value to use from
+        * the returned `ubus` reply object. The value of the sole key within
+        * the `expect` object is used to infer the expected type of the received
+        * `ubus` reply data.
+        *
+        * If the received data does not contain `expect`'s key, or if the
+        * type of the data differs from the type of the value in the expect
+        * object, the expect object's value is returned as default instead.
+        *
+        * The key in the `expect` object may be an empty string (`''`) in which
+        * case the entire reply object is selected instead of one of its subkeys.
+        *
+        * If the `expect` option is omitted, the received reply will be returned
+        * as-is, regardless of its format or type.
+        *
+        * Examples:
+        *  - `expect: { '': { error: 'Invalid response' } }` -
+        *    This requires the entire `ubus` reply to be a plain JavaScript
+        *    object. If the reply isn't an object but e.g. an array or a numeric
+        *    error code instead, it will get replaced with
+        *    `{ error: 'Invalid response' }` instead.
+        *  - `expect: { results: [] }` -
+        *    This requires the received `ubus` reply to be an object containing
+        *    a key `results` with an array as value. If the received reply does
+        *    not contain such a key, or if `reply.results` points to a non-array
+        *    value, the empty array (`[]`) will be used instead.
+        *  - `expect: { success: false }` -
+        *    This requires the received `ubus` reply to be an object containing
+        *    a key `success` with a boolean value. If the reply does not contain
+        *    `success` or if `reply.success` is not a boolean value, `false` will
+        *    be returned as default instead.
+        *
+        * @property {LuCI.rpc~filterFn} [filter]
+        * Specfies an optional filter function which is invoked to transform the
+        * received reply data before it is returned to the caller.
+        *
+        */
+
+       /**
+        * The filter function is invoked to transform a received `ubus` RPC call
+        * reply before returning it to the caller.
+        *
+        * @callback LuCI.rpc~filterFn
+        *
+        * @param {*} data
+        * The received `ubus` reply data or a subset of it as described in the
+        * `expect` option of the RPC call declaration. In case of remote call
+        * errors, `data` is numeric `ubus` error code instead.
+        *
+        * @param {Array&lt;*>} args
+        * The arguments the RPC method has been invoked with.
+        *
+        * @param {...*} extraArgs
+        * All extraneous arguments passed to the RPC method exceeding the number
+        * of arguments describes in the RPC call declaration.
+        *
+        * @return {*}
+        * The return value of the filter function will be returned to the caller
+        * of the RPC method as-is.
+        */
+
+       /**
+        * The generated invocation function is returned by
+        * {@link LuCI.rpc#declare rpc.declare()} and encapsulates a single
+        * RPC method call.
+        *
+        * Calling this function will execute a remote `ubus` HTTP call request
+        * using the arguments passed to it as arguments and return a promise
+        * resolving to the received reply values.
+        *
+        * @callback LuCI.rpc~invokeFn
+        *
+        * @param {...*} params
+        * The parameters to pass to the remote procedure call. The given
+        * positional arguments will be named to named RPC parameters according
+        * to the names specified in the `params` array of the method declaration.
+        *
+        * Any additional parameters exceeding the amount of arguments in the
+        * `params` declaration are passed as private extra arguments to the
+        * declared filter function.
+        *
+        * @return {Promise&lt;*>}
+        * Returns a promise resolving to the result data of the remote `ubus`
+        * RPC method invocation, optionally substituted and filtered according
+        * to the `expect` and `filter` declarations.
+        */
+
+       /**
+        * Describes a remote RPC call procedure and returns a function
+        * implementing it.
+        *
+        * @param {LuCI.rpc.DeclareOptions} options
+        * If any object names are given, this function will return the method
+        * signatures of each given object.
+        *
+        * @returns {LuCI.rpc~invokeFn}
+        * Returns a new function implementing the method call described in
+        * `options`.
+        */
+       declare: function(options) {
+               return Function.prototype.bind.call(function(rpc, options) {
+                       var args = this.varargs(arguments, 2);
+                       return new Promise(function(resolveFn, rejectFn) {
+                               /* build parameter object */
+                               var p_off = 0;
+                               var params = { };
+                               if (Array.isArray(options.params))
+                                       for (p_off = 0; p_off &lt; options.params.length; p_off++)
+                                               params[options.params[p_off]] = args[p_off];
+
+                               /* all remaining arguments are private args */
+                               var priv = [ undefined, undefined ];
+                               for (; p_off &lt; args.length; p_off++)
+                                       priv.push(args[p_off]);
+
+                               /* store request info */
+                               var req = {
+                                       expect:  options.expect,
+                                       filter:  options.filter,
+                                       resolve: resolveFn,
+                                       reject:  rejectFn,
+                                       params:  params,
+                                       priv:    priv,
+                                       object:  options.object,
+                                       method:  options.method
+                               };
+
+                               /* build message object */
+                               var msg = {
+                                       jsonrpc: '2.0',
+                                       id:      rpcRequestID++,
+                                       method:  'call',
+                                       params:  [
+                                               rpcSessionID,
+                                               options.object,
+                                               options.method,
+                                               params
+                                       ]
+                               };
+
+                               /* call rpc */
+                               rpc.call(msg, rpc.parseCallReply.bind(rpc, req), options.nobatch);
+                       });
+               }, this, this, options);
+       },
+
+       /**
+        * Returns the current RPC session id.
+        *
+        * @returns {string}
+        * Returns the 32 byte session ID string used for authenticating remote
+        * requests.
+        */
+       getSessionID: function() {
+               return rpcSessionID;
+       },
+
+       /**
+        * Set the RPC session id to use.
+        *
+        * @param {string} sid
+        * Sets the 32 byte session ID string used for authenticating remote
+        * requests.
+        */
+       setSessionID: function(sid) {
+               rpcSessionID = sid;
+       },
+
+       /**
+        * Returns the current RPC base URL.
+        *
+        * @returns {string}
+        * Returns the RPC URL endpoint to issue requests against.
+        */
+       getBaseURL: function() {
+               return rpcBaseURL;
+       },
+
+       /**
+        * Set the RPC base URL to use.
+        *
+        * @param {string} sid
+        * Sets the RPC URL endpoint to issue requests against.
+        */
+       setBaseURL: function(url) {
+               rpcBaseURL = url;
+       },
+
+       /**
+        * Translates a numeric `ubus` error code into a human readable
+        * description.
+        *
+        * @param {number} statusCode
+        * The numeric status code.
+        *
+        * @returns {string}
+        * Returns the textual description of the code.
+        */
+       getStatusText: function(statusCode) {
+               switch (statusCode) {
+               case 0: return _('Command OK');
+               case 1: return _('Invalid command');
+               case 2: return _('Invalid argument');
+               case 3: return _('Method not found');
+               case 4: return _('Resource not found');
+               case 5: return _('No data received');
+               case 6: return _('Permission denied');
+               case 7: return _('Request timeout');
+               case 8: return _('Not supported');
+               case 9: return _('Unspecified error');
+               case 10: return _('Connection lost');
+               default: return _('Unknown error code');
+               }
+       },
+
+       /**
+        * Registered interceptor functions are invoked before the standard reply
+        * parsing and handling logic.
+        *
+        * By returning rejected promises, interceptor functions can cause the
+        * invocation function to fail, regardless of the received reply.
+        *
+        * Interceptors may also modify their message argument in-place to
+        * rewrite received replies before they're processed by the standard
+        * response handling code.
+        *
+        * A common use case for such functions is to detect failing RPC replies
+        * due to expired authentication in order to trigger a new login.
+        *
+        * @callback LuCI.rpc~interceptorFn
+        *
+        * @param {*} msg
+        * The unprocessed, JSON decoded remote RPC method call reply.
+        *
+        * Since interceptors run before the standard parsing logic, the reply
+        * data is not verified for correctness or filtered according to
+        * `expect` and `filter` specifications in the declarations.
+        *
+        * @param {Object} req
+        * The related request object which is an extended variant of the
+        * declaration object, allowing access to internals of the invocation
+        * function such as `filter`, `expect` or `params` values.
+        *
+        * @return {Promise&lt;*>|*}
+        * Interceptor functions may return a promise to defer response
+        * processing until some delayed work completed. Any values the returned
+        * promise resolves to are ignored.
+        *
+        * When the returned promise rejects with an error, the invocation
+        * function will fail too, forwarding the error to the caller.
+        */
+
+       /**
+        * Registers a new interceptor function.
+        *
+        * @param {LuCI.rpc~interceptorFn} interceptorFn
+        * The inteceptor function to register.
+        *
+        * @returns {LuCI.rpc~interceptorFn}
+        * Returns the given function value.
+        */
+       addInterceptor: function(interceptorFn) {
+               if (typeof(interceptorFn) == 'function')
+                       rpcInterceptorFns.push(interceptorFn);
+               return interceptorFn;
+       },
+
+       /**
+        * Removes a registered interceptor function.
+        *
+        * @param {LuCI.rpc~interceptorFn} interceptorFn
+        * The inteceptor function to remove.
+        *
+        * @returns {boolean}
+        * Returns `true` if the given function has been removed or `false`
+        * if it has not been found.
+        */
+       removeInterceptor: function(interceptorFn) {
+               var oldlen = rpcInterceptorFns.length, i = oldlen;
+               while (i--)
+                       if (rpcInterceptorFns[i] === interceptorFn)
+                               rpcInterceptorFns.splice(i, 1);
+               return (rpcInterceptorFns.length &lt; oldlen);
+       }
+});
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="LuCI.html">LuCI</a></li><li><a href="LuCI.Class.html">Class</a></li><li><a href="LuCI.dom.html">dom</a></li><li><a href="LuCI.fs.html">fs</a></li><li><a href="LuCI.Headers.html">Headers</a></li><li><a href="LuCI.Network.html">Network</a></li><li><a href="LuCI.Network.Device.html">Device</a></li><li><a href="LuCI.Network.Hosts.html">Hosts</a></li><li><a href="LuCI.Network.Protocol.html">Protocol</a></li><li><a href="LuCI.Network.WifiDevice.html">WifiDevice</a></li><li><a href="LuCI.Network.WifiNetwork.html">WifiNetwork</a></li><li><a href="LuCI.Poll.html">Poll</a></li><li><a href="LuCI.Request.html">Request</a></li><li><a href="LuCI.Request.poll.html">poll</a></li><li><a href="LuCI.Response.html">Response</a></li><li><a href="LuCI.rpc.html">rpc</a></li><li><a href="LuCI.uci.html">uci</a></li><li><a href="LuCI.view.html">view</a></li><li><a href="LuCI.XHR.html">XHR</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 09:33:05 GMT+0100 (Central European Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/docs/jsapi/scripts/linenumber.js b/docs/jsapi/scripts/linenumber.js
new file mode 100644 (file)
index 0000000..4354785
--- /dev/null
@@ -0,0 +1,25 @@
+/*global document */
+(() => {
+    const source = document.getElementsByClassName('prettyprint source linenums');
+    let i = 0;
+    let lineNumber = 0;
+    let lineId;
+    let lines;
+    let totalLines;
+    let 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/docs/jsapi/scripts/prettify/Apache-License-2.0.txt b/docs/jsapi/scripts/prettify/Apache-License-2.0.txt
new file mode 100644 (file)
index 0000000..d645695
--- /dev/null
@@ -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/docs/jsapi/scripts/prettify/lang-css.js b/docs/jsapi/scripts/prettify/lang-css.js
new file mode 100644 (file)
index 0000000..041e1f5
--- /dev/null
@@ -0,0 +1,2 @@
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\f\r ]+/,null," \t\r\n\f"]],[["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/docs/jsapi/scripts/prettify/prettify.js b/docs/jsapi/scripts/prettify/prettify.js
new file mode 100644 (file)
index 0000000..eef5ad7
--- /dev/null
@@ -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/docs/jsapi/styles/jsdoc-default.css b/docs/jsapi/styles/jsdoc-default.css
new file mode 100644 (file)
index 0000000..7d1729d
--- /dev/null
@@ -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;
+}
+
+.source
+{
+    border: 1px solid #ddd;
+    width: 80%;
+    overflow: auto;
+}
+
+.prettyprint.source {
+    width: inherit;
+}
+
+.source 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/docs/jsapi/styles/prettify-jsdoc.css b/docs/jsapi/styles/prettify-jsdoc.css
new file mode 100644 (file)
index 0000000..5a2526e
--- /dev/null
@@ -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/docs/jsapi/styles/prettify-tomorrow.css b/docs/jsapi/styles/prettify-tomorrow.css
new file mode 100644 (file)
index 0000000..aa2908c
--- /dev/null
@@ -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: Menlo, Monaco, Consolas, 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/docs/jsapi/uci.js.html b/docs/jsapi/uci.js.html
new file mode 100644 (file)
index 0000000..d61010f
--- /dev/null
@@ -0,0 +1,994 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: uci.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: uci.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>'use strict';
+'require rpc';
+
+/**
+ * @class uci
+ * @memberof LuCI
+ * @hideconstructor
+ * @classdesc
+ *
+ * The `LuCI.uci` class utilizes {@link LuCI.rpc} to declare low level
+ * remote UCI `ubus` procedures and implements a local caching and data
+ * manipulation layer on top to allow for synchroneous operations on
+ * UCI configuration data.
+ */
+return L.Class.extend(/** @lends LuCI.uci.prototype */ {
+       __init__: function() {
+               this.state = {
+                       newidx:  0,
+                       values:  { },
+                       creates: { },
+                       changes: { },
+                       deletes: { },
+                       reorder: { }
+               };
+
+               this.loaded = {};
+       },
+
+       callLoad: rpc.declare({
+               object: 'uci',
+               method: 'get',
+               params: [ 'config' ],
+               expect: { values: { } }
+       }),
+
+
+       callOrder: rpc.declare({
+               object: 'uci',
+               method: 'order',
+               params: [ 'config', 'sections' ]
+       }),
+
+       callAdd: rpc.declare({
+               object: 'uci',
+               method: 'add',
+               params: [ 'config', 'type', 'name', 'values' ],
+               expect: { section: '' }
+       }),
+
+       callSet: rpc.declare({
+               object: 'uci',
+               method: 'set',
+               params: [ 'config', 'section', 'values' ]
+       }),
+
+       callDelete: rpc.declare({
+               object: 'uci',
+               method: 'delete',
+               params: [ 'config', 'section', 'options' ]
+       }),
+
+       callApply: rpc.declare({
+               object: 'uci',
+               method: 'apply',
+               params: [ 'timeout', 'rollback' ]
+       }),
+
+       callConfirm: rpc.declare({
+               object: 'uci',
+               method: 'confirm'
+       }),
+
+
+       /**
+        * Generates a new, unique section ID for the given configuration.
+        *
+        * Note that the generated ID is temporary, it will get replaced by an
+        * identifier in the form `cfgXXXXXX` once the configuration is saved
+        * by the remote `ubus` UCI api.
+        *
+        * @param {string} config
+        * The configuration to generate the new section ID for.
+        *
+        * @returns {string}
+        * A newly generated, unique section ID in the form `newXXXXXX`
+        * where `X` denotes a hexadecimal digit.
+        */
+       createSID: function(conf) {
+               var v = this.state.values,
+                   n = this.state.creates,
+                   sid;
+
+               do {
+                       sid = "new%06x".format(Math.random() * 0xFFFFFF);
+               } while ((n[conf] &amp;&amp; n[conf][sid]) || (v[conf] &amp;&amp; v[conf][sid]));
+
+               return sid;
+       },
+
+       /**
+        * Resolves a given section ID in extended notation to the internal
+        * section ID value.
+        *
+        * @param {string} config
+        * The configuration to resolve the section ID for.
+        *
+        * @param {string} sid
+        * The section ID to resolve. If the ID is in the form `@typename[#]`,
+        * it will get resolved to an internal anonymous ID in the forms
+        * `cfgXXXXXX`/`newXXXXXX` or to the name of a section in case it points
+        * to a named section. When the given ID is not in extended notation,
+        * it will be returned as-is.
+        *
+        * @returns {string|null}
+        * Returns the resolved section ID or the original given ID if it was
+        * not in extended notation. Returns `null` when an extended ID could
+        * not be resolved to existing section ID.
+        */
+       resolveSID: function(conf, sid) {
+               if (typeof(sid) != 'string')
+                       return sid;
+
+               var m = /^@([a-zA-Z0-9_-]+)\[(-?[0-9]+)\]$/.exec(sid);
+
+               if (m) {
+                       var type = m[1],
+                           pos = +m[2],
+                           sections = this.sections(conf, type),
+                           section = sections[pos >= 0 ? pos : sections.length + pos];
+
+                       return section ? section['.name'] : null;
+               }
+
+               return sid;
+       },
+
+       /* private */
+       reorderSections: function() {
+               var v = this.state.values,
+                   n = this.state.creates,
+                   r = this.state.reorder,
+                   tasks = [];
+
+               if (Object.keys(r).length === 0)
+                       return Promise.resolve();
+
+               /*
+                gather all created and existing sections, sort them according
+                to their index value and issue an uci order call
+               */
+               for (var c in r) {
+                       var o = [ ];
+
+                       if (n[c])
+                               for (var s in n[c])
+                                       o.push(n[c][s]);
+
+                       for (var s in v[c])
+                               o.push(v[c][s]);
+
+                       if (o.length > 0) {
+                               o.sort(function(a, b) {
+                                       return (a['.index'] - b['.index']);
+                               });
+
+                               var sids = [ ];
+
+                               for (var i = 0; i &lt; o.length; i++)
+                                       sids.push(o[i]['.name']);
+
+                               tasks.push(this.callOrder(c, sids));
+                       }
+               }
+
+               this.state.reorder = { };
+               return Promise.all(tasks);
+       },
+
+       /* private */
+       loadPackage: function(packageName) {
+               if (this.loaded[packageName] == null)
+                       return (this.loaded[packageName] = this.callLoad(packageName));
+
+               return Promise.resolve(this.loaded[packageName]);
+       },
+
+       /**
+        * Loads the given UCI configurations from the remote `ubus` api.
+        *
+        * Loaded configurations are cached and only loaded once. Subsequent
+        * load operations of the same configurations will return the cached
+        * data.
+        *
+        * To force reloading a configuration, it has to be unloaded with
+        * {@link LuCI.uci#unload uci.unload()} first.
+        *
+        * @param {string|string[]} config
+        * The name of the configuration or an array of configuration
+        * names to load.
+        *
+        * @returns {Promise&lt;string[]>}
+        * Returns a promise resolving to the names of the configurations
+        * that have been successfully loaded.
+        */
+       load: function(packages) {
+               var self = this,
+                   pkgs = [ ],
+                   tasks = [];
+
+               if (!Array.isArray(packages))
+                       packages = [ packages ];
+
+               for (var i = 0; i &lt; packages.length; i++)
+                       if (!self.state.values[packages[i]]) {
+                               pkgs.push(packages[i]);
+                               tasks.push(self.loadPackage(packages[i]));
+                       }
+
+               return Promise.all(tasks).then(function(responses) {
+                       for (var i = 0; i &lt; responses.length; i++)
+                               self.state.values[pkgs[i]] = responses[i];
+
+                       if (responses.length)
+                               document.dispatchEvent(new CustomEvent('uci-loaded'));
+
+                       return pkgs;
+               });
+       },
+
+       /**
+        * Unloads the given UCI configurations from the local cache.
+        *
+        * @param {string|string[]} config
+        * The name of the configuration or an array of configuration
+        * names to unload.
+        */
+       unload: function(packages) {
+               if (!Array.isArray(packages))
+                       packages = [ packages ];
+
+               for (var i = 0; i &lt; packages.length; i++) {
+                       delete this.state.values[packages[i]];
+                       delete this.state.creates[packages[i]];
+                       delete this.state.changes[packages[i]];
+                       delete this.state.deletes[packages[i]];
+
+                       delete this.loaded[packages[i]];
+               }
+       },
+
+       /**
+        * Adds a new section of the given type to the given configuration,
+        * optionally named according to the given name.
+        *
+        * @param {string} config
+        * The name of the configuration to add the section to.
+        *
+        * @param {string} type
+        * The type of the section to add.
+        *
+        * @param {string} [name]
+        * The name of the section to add. If the name is omitted, an anonymous
+        * section will be added instead.
+        *
+        * @returns {string}
+        * Returns the section ID of the newly added section which is equivalent
+        * to the given name for non-anonymous sections.
+        */
+       add: function(conf, type, name) {
+               var n = this.state.creates,
+                   sid = name || this.createSID(conf);
+
+               if (!n[conf])
+                       n[conf] = { };
+
+               n[conf][sid] = {
+                       '.type':      type,
+                       '.name':      sid,
+                       '.create':    name,
+                       '.anonymous': !name,
+                       '.index':     1000 + this.state.newidx++
+               };
+
+               return sid;
+       },
+
+       /**
+        * Removes the section with the given ID from the given configuration.
+        *
+        * @param {string} config
+        * The name of the configuration to remove the section from.
+        *
+        * @param {string} sid
+        * The ID of the section to remove.
+        */
+       remove: function(conf, sid) {
+               var n = this.state.creates,
+                   c = this.state.changes,
+                   d = this.state.deletes;
+
+               /* requested deletion of a just created section */
+               if (n[conf] &amp;&amp; n[conf][sid]) {
+                       delete n[conf][sid];
+               }
+               else {
+                       if (c[conf])
+                               delete c[conf][sid];
+
+                       if (!d[conf])
+                               d[conf] = { };
+
+                       d[conf][sid] = true;
+               }
+       },
+
+       /**
+        * A section object represents the options and their corresponding values
+        * enclosed within a configuration section, as well as some additional
+        * meta data such as sort indexes and internal ID.
+        *
+        * Any internal metadata fields are prefixed with a dot which is isn't
+        * an allowed character for normal option names.
+        *
+        * @typedef {Object&lt;string, boolean|number|string|string[]>} SectionObject
+        * @memberof LuCI.uci
+        *
+        * @property {boolean} .anonymous
+        * The `.anonymous` property specifies whether the configuration is
+        * anonymous (`true`) or named (`false`).
+        *
+        * @property {number} .index
+        * The `.index` property specifes the sort order of the section.
+        *
+        * @property {string} .name
+        * The `.name` property holds the name of the section object. It may be
+        * either an anonymous ID in the form `cfgXXXXXX` or `newXXXXXX` with `X`
+        * being a hexadecimal digit or a string holding the name of the section.
+        *
+        * @property {string} .type
+        * The `.type` property contains the type of the corresponding uci
+        * section.
+        *
+        * @property {string|string[]} *
+        * A section object may contain an arbitrary number of further properties
+        * representing the uci option enclosed in the section.
+        *
+        * All option property names will be in the form `[A-Za-z0-9_]+` and
+        * either contain a string value or an array of strings, in case the
+        * underlying option is an UCI list.
+        */
+
+       /**
+        * The sections callback is invoked for each section found within
+        * the given configuration and receives the section object and its
+        * associated name as arguments.
+        *
+        * @callback LuCI.uci~sectionsFn
+        *
+        * @param {LuCI.uci.SectionObject} section
+        * The section object.
+        *
+        * @param {string} sid
+        * The name or ID of the section.
+        */
+
+       /**
+        * Enumerates the sections of the given configuration, optionally
+        * filtered by type.
+        *
+        * @param {string} config
+        * The name of the configuration to enumerate the sections for.
+        *
+        * @param {string} [type]
+        * Enumerate only sections of the given type. If omitted, enumerate
+        * all sections.
+        *
+        * @param {LuCI.uci~sectionsFn} [cb]
+        * An optional callback to invoke for each enumerated section.
+        *
+        * @returns {Array&lt;LuCI.uci.SectionObject>}
+        * Returns a sorted array of the section objects within the given
+        * configuration, filtered by type of a type has been specified.
+        */
+       sections: function(conf, type, cb) {
+               var sa = [ ],
+                   v = this.state.values[conf],
+                   n = this.state.creates[conf],
+                   c = this.state.changes[conf],
+                   d = this.state.deletes[conf];
+
+               if (!v)
+                       return sa;
+
+               for (var s in v)
+                       if (!d || d[s] !== true)
+                               if (!type || v[s]['.type'] == type)
+                                       sa.push(Object.assign({ }, v[s], c ? c[s] : undefined));
+
+               if (n)
+                       for (var s in n)
+                               if (!type || n[s]['.type'] == type)
+                                       sa.push(Object.assign({ }, n[s]));
+
+               sa.sort(function(a, b) {
+                       return a['.index'] - b['.index'];
+               });
+
+               for (var i = 0; i &lt; sa.length; i++)
+                       sa[i]['.index'] = i;
+
+               if (typeof(cb) == 'function')
+                       for (var i = 0; i &lt; sa.length; i++)
+                               cb.call(this, sa[i], sa[i]['.name']);
+
+               return sa;
+       },
+
+       /**
+        * Gets the value of the given option within the specified section
+        * of the given configuration or the entire section object if the
+        * option name is omitted.
+        *
+        * @param {string} config
+        * The name of the configuration to read the value from.
+        *
+        * @param {string} sid
+        * The name or ID of the section to read.
+        *
+        * @param {string} [option]
+        * The option name to read the value from. If the option name is
+        * omitted or `null`, the entire section is returned instead.
+        *
+        * @returns {null|string|string[]|LuCI.uci.SectionObject}
+        * - Returns a string containing the option value in case of a
+        *   plain UCI option.
+        * - Returns an array of strings containing the option values in
+        *   case of `option` pointing to an UCI list.
+        * - Returns a {@link LuCI.uci.SectionObject section object} if
+        *   the `option` argument has been omitted or is `null`.
+        * - Returns `null` if the config, section or option has not been
+        *   found or if the corresponding configuration is not loaded.
+        */
+       get: function(conf, sid, opt) {
+               var v = this.state.values,
+                   n = this.state.creates,
+                   c = this.state.changes,
+                   d = this.state.deletes;
+
+               sid = this.resolveSID(conf, sid);
+
+               if (sid == null)
+                       return null;
+
+               /* requested option in a just created section */
+               if (n[conf] &amp;&amp; n[conf][sid]) {
+                       if (!n[conf])
+                               return undefined;
+
+                       if (opt == null)
+                               return n[conf][sid];
+
+                       return n[conf][sid][opt];
+               }
+
+               /* requested an option value */
+               if (opt != null) {
+                       /* check whether option was deleted */
+                       if (d[conf] &amp;&amp; d[conf][sid]) {
+                               if (d[conf][sid] === true)
+                                       return undefined;
+
+                               for (var i = 0; i &lt; d[conf][sid].length; i++)
+                                       if (d[conf][sid][i] == opt)
+                                               return undefined;
+                       }
+
+                       /* check whether option was changed */
+                       if (c[conf] &amp;&amp; c[conf][sid] &amp;&amp; c[conf][sid][opt] != null)
+                               return c[conf][sid][opt];
+
+                       /* return base value */
+                       if (v[conf] &amp;&amp; v[conf][sid])
+                               return v[conf][sid][opt];
+
+                       return undefined;
+               }
+
+               /* requested an entire section */
+               if (v[conf])
+                       return v[conf][sid];
+
+               return undefined;
+       },
+
+       /**
+        * Sets the value of the given option within the specified section
+        * of the given configuration.
+        *
+        * If either config, section or option is null, or if `option` begins
+        * with a dot, the function will do nothing.
+        *
+        * @param {string} config
+        * The name of the configuration to set the option value in.
+        *
+        * @param {string} sid
+        * The name or ID of the section to set the option value in.
+        *
+        * @param {string} option
+        * The option name to set the value for.
+        *
+        * @param {null|string|string[]} value
+        * The option value to set. If the value is `null` or an empty string,
+        * the option will be removed, otherwise it will be set or overwritten
+        * with the given value.
+        */
+       set: function(conf, sid, opt, val) {
+               var v = this.state.values,
+                   n = this.state.creates,
+                   c = this.state.changes,
+                   d = this.state.deletes;
+
+               sid = this.resolveSID(conf, sid);
+
+               if (sid == null || opt == null || opt.charAt(0) == '.')
+                       return;
+
+               if (n[conf] &amp;&amp; n[conf][sid]) {
+                       if (val != null)
+                               n[conf][sid][opt] = val;
+                       else
+                               delete n[conf][sid][opt];
+               }
+               else if (val != null &amp;&amp; val !== '') {
+                       /* do not set within deleted section */
+                       if (d[conf] &amp;&amp; d[conf][sid] === true)
+                               return;
+
+                       /* only set in existing sections */
+                       if (!v[conf] || !v[conf][sid])
+                               return;
+
+                       if (!c[conf])
+                               c[conf] = {};
+
+                       if (!c[conf][sid])
+                               c[conf][sid] = {};
+
+                       /* undelete option */
+                       if (d[conf] &amp;&amp; d[conf][sid])
+                               d[conf][sid] = d[conf][sid].filter(function(o) { return o !== opt });
+
+                       c[conf][sid][opt] = val;
+               }
+               else {
+                       /* only delete in existing sections */
+                       if (!(v[conf] &amp;&amp; v[conf][sid] &amp;&amp; v[conf][sid].hasOwnProperty(opt)) &amp;&amp;
+                           !(c[conf] &amp;&amp; c[conf][sid] &amp;&amp; c[conf][sid].hasOwnProperty(opt)))
+                           return;
+
+                       if (!d[conf])
+                               d[conf] = { };
+
+                       if (!d[conf][sid])
+                               d[conf][sid] = [ ];
+
+                       if (d[conf][sid] !== true)
+                               d[conf][sid].push(opt);
+               }
+       },
+
+       /**
+        * Remove the given option within the specified section of the given
+        * configuration.
+        *
+        * This function is a convenience wrapper around
+        * `uci.set(config, section, option, null)`.
+        *
+        * @param {string} config
+        * The name of the configuration to remove the option from.
+        *
+        * @param {string} sid
+        * The name or ID of the section to remove the option from.
+        *
+        * @param {string} option
+        * The name of the option to remove.
+        */
+       unset: function(conf, sid, opt) {
+               return this.set(conf, sid, opt, null);
+       },
+
+       /**
+        * Gets the value of the given option or the entire section object of
+        * the first found section of the specified type or the first found
+        * section of the entire configuration if no type is specfied.
+        *
+        * @param {string} config
+        * The name of the configuration to read the value from.
+        *
+        * @param {string} [type]
+        * The type of the first section to find. If it is `null`, the first
+        * section of the entire config is read, otherwise the first section
+        * matching the given type.
+        *
+        * @param {string} [option]
+        * The option name to read the value from. If the option name is
+        * omitted or `null`, the entire section is returned instead.
+        *
+        * @returns {null|string|string[]|LuCI.uci.SectionObject}
+        * - Returns a string containing the option value in case of a
+        *   plain UCI option.
+        * - Returns an array of strings containing the option values in
+        *   case of `option` pointing to an UCI list.
+        * - Returns a {@link LuCI.uci.SectionObject section object} if
+        *   the `option` argument has been omitted or is `null`.
+        * - Returns `null` if the config, section or option has not been
+        *   found or if the corresponding configuration is not loaded.
+        */
+       get_first: function(conf, type, opt) {
+               var sid = null;
+
+               this.sections(conf, type, function(s) {
+                       if (sid == null)
+                               sid = s['.name'];
+               });
+
+               return this.get(conf, sid, opt);
+       },
+
+       /**
+        * Sets the value of the given option within the first found section
+        * of the given configuration matching the specified type or within
+        * the first section of the entire config when no type has is specified.
+        *
+        * If either config, type or option is null, or if `option` begins
+        * with a dot, the function will do nothing.
+        *
+        * @param {string} config
+        * The name of the configuration to set the option value in.
+        *
+        * @param {string} [type]
+        * The type of the first section to find. If it is `null`, the first
+        * section of the entire config is written to, otherwise the first
+        * section matching the given type is used.
+        *
+        * @param {string} option
+        * The option name to set the value for.
+        *
+        * @param {null|string|string[]} value
+        * The option value to set. If the value is `null` or an empty string,
+        * the option will be removed, otherwise it will be set or overwritten
+        * with the given value.
+        */
+       set_first: function(conf, type, opt, val) {
+               var sid = null;
+
+               this.sections(conf, type, function(s) {
+                       if (sid == null)
+                               sid = s['.name'];
+               });
+
+               return this.set(conf, sid, opt, val);
+       },
+
+       /**
+        * Removes the given option within the first found section of the given
+        * configuration matching the specified type or within the first section
+        * of the entire config when no type has is specified.
+        *
+        * This function is a convenience wrapper around
+        * `uci.set_first(config, type, option, null)`.
+        *
+        * @param {string} config
+        * The name of the configuration to set the option value in.
+        *
+        * @param {string} [type]
+        * The type of the first section to find. If it is `null`, the first
+        * section of the entire config is written to, otherwise the first
+        * section matching the given type is used.
+        *
+        * @param {string} option
+        * The option name to set the value for.
+        */
+       unset_first: function(conf, type, opt) {
+               return this.set_first(conf, type, opt, null);
+       },
+
+       /**
+        * Move the first specified section within the given configuration
+        * before or after the second specified section.
+        *
+        * @param {string} config
+        * The configuration to move the section within.
+        *
+        * @param {string} sid1
+        * The ID of the section to move within the configuration.
+        *
+        * @param {string} [sid2]
+        * The ID of the target section for the move operation. If the
+        * `after` argument is `false` or not specified, the section named by
+        * `sid1` will be moved before this target section, if the `after`
+        * argument is `true`, the `sid1` section will be moved after this
+        * section.
+        *
+        * When the `sid2` argument is `null`, the section specified by `sid1`
+        * is moved to the end of the configuration.
+        *
+        * @param {boolean} [after=false]
+        * When `true`, the section `sid1` is moved after the section `sid2`,
+        * when `false`, the section `sid1` is moved before `sid2`.
+        *
+        * If `sid2` is null, then this parameter has no effect and the section
+        * `sid1` is moved to the end of the configuration instead.
+        *
+        * @returns {boolean}
+        * Returns `true` when the section was successfully moved, or `false`
+        * when either the section specified by `sid1` or by `sid2` is not found.
+        */
+       move: function(conf, sid1, sid2, after) {
+               var sa = this.sections(conf),
+                   s1 = null, s2 = null;
+
+               sid1 = this.resolveSID(conf, sid1);
+               sid2 = this.resolveSID(conf, sid2);
+
+               for (var i = 0; i &lt; sa.length; i++) {
+                       if (sa[i]['.name'] != sid1)
+                               continue;
+
+                       s1 = sa[i];
+                       sa.splice(i, 1);
+                       break;
+               }
+
+               if (s1 == null)
+                       return false;
+
+               if (sid2 == null) {
+                       sa.push(s1);
+               }
+               else {
+                       for (var i = 0; i &lt; sa.length; i++) {
+                               if (sa[i]['.name'] != sid2)
+                                       continue;
+
+                               s2 = sa[i];
+                               sa.splice(i + !!after, 0, s1);
+                               break;
+                       }
+
+                       if (s2 == null)
+                               return false;
+               }
+
+               for (var i = 0; i &lt; sa.length; i++)
+                       this.get(conf, sa[i]['.name'])['.index'] = i;
+
+               this.state.reorder[conf] = true;
+
+               return true;
+       },
+
+       /**
+        * Submits all local configuration changes to the remove `ubus` api,
+        * adds, removes and reorders remote sections as needed and reloads
+        * all loaded configurations to resynchronize the local state with
+        * the remote configuration values.
+        *
+        * @returns {string[]}
+        * Returns a promise resolving to an array of configuration names which
+        * have been reloaded by the save operation.
+        */
+       save: function() {
+               var v = this.state.values,
+                   n = this.state.creates,
+                   c = this.state.changes,
+                   d = this.state.deletes,
+                   r = this.state.reorder,
+                   self = this,
+                   snew = [ ],
+                   pkgs = { },
+                   tasks = [];
+
+               if (n)
+                       for (var conf in n) {
+                               for (var sid in n[conf]) {
+                                       var r = {
+                                               config: conf,
+                                               values: { }
+                                       };
+
+                                       for (var k in n[conf][sid]) {
+                                               if (k == '.type')
+                                                       r.type = n[conf][sid][k];
+                                               else if (k == '.create')
+                                                       r.name = n[conf][sid][k];
+                                               else if (k.charAt(0) != '.')
+                                                       r.values[k] = n[conf][sid][k];
+                                       }
+
+                                       snew.push(n[conf][sid]);
+                                       tasks.push(self.callAdd(r.config, r.type, r.name, r.values));
+                               }
+
+                               pkgs[conf] = true;
+                       }
+
+               if (c)
+                       for (var conf in c) {
+                               for (var sid in c[conf])
+                                       tasks.push(self.callSet(conf, sid, c[conf][sid]));
+
+                               pkgs[conf] = true;
+                       }
+
+               if (d)
+                       for (var conf in d) {
+                               for (var sid in d[conf]) {
+                                       var o = d[conf][sid];
+                                       tasks.push(self.callDelete(conf, sid, (o === true) ? null : o));
+                               }
+
+                               pkgs[conf] = true;
+                       }
+
+               if (r)
+                       for (var conf in r)
+                               pkgs[conf] = true;
+
+               return Promise.all(tasks).then(function(responses) {
+                       /*
+                        array "snew" holds references to the created uci sections,
+                        use it to assign the returned names of the new sections
+                       */
+                       for (var i = 0; i &lt; snew.length; i++)
+                               snew[i]['.name'] = responses[i];
+
+                       return self.reorderSections();
+               }).then(function() {
+                       pkgs = Object.keys(pkgs);
+
+                       self.unload(pkgs);
+
+                       return self.load(pkgs);
+               });
+       },
+
+       /**
+        * Instructs the remote `ubus` UCI api to commit all saved changes with
+        * rollback protection and attempts to confirm the pending commit
+        * operation to cancel the rollback timer.
+        *
+        * @param {number} [timeout=10]
+        * Override the confirmation timeout after which a rollback is triggered.
+        *
+        * @returns {Promise&lt;number>}
+        * Returns a promise resolving/rejecting with the `ubus` RPC status code.
+        */
+       apply: function(timeout) {
+               var self = this,
+                   date = new Date();
+
+               if (typeof(timeout) != 'number' || timeout &lt; 1)
+                       timeout = 10;
+
+               return self.callApply(timeout, true).then(function(rv) {
+                       if (rv != 0)
+                               return Promise.reject(rv);
+
+                       var try_deadline = date.getTime() + 1000 * timeout;
+                       var try_confirm = function() {
+                               return self.callConfirm().then(function(rv) {
+                                       if (rv != 0) {
+                                               if (date.getTime() &lt; try_deadline)
+                                                       window.setTimeout(try_confirm, 250);
+                                               else
+                                                       return Promise.reject(rv);
+                                       }
+
+                                       return rv;
+                               });
+                       };
+
+                       window.setTimeout(try_confirm, 1000);
+               });
+       },
+
+       /**
+        * An UCI change record is a plain array containing the change operation
+        * name as first element, the affected section ID as second argument
+        * and an optional third and fourth argument whose meanings depend on
+        * the operation.
+        *
+        * @typedef {string[]} ChangeRecord
+        * @memberof LuCI.uci
+        *
+        * @property {string} 0
+        * The operation name - may be one of `add`, `set`, `remove`, `order`,
+        * `list-add`, `list-del` or `rename`.
+        *
+        * @property {string} 1
+        * The section ID targeted by the operation.
+        *
+        * @property {string} 2
+        * The meaning of the third element depends on the operation.
+        * - For `add` it is type of the section that has been added
+        * - For `set` it either is the option name if a fourth element exists,
+        *   or the type of a named section which has been added when the change
+        *   entry only contains three elements.
+        * - For `remove` it contains the name of the option that has been
+        *   removed.
+        * - For `order` it specifies the new sort index of the section.
+        * - For `list-add` it contains the name of the list option a new value
+        *   has been added to.
+        * - For `list-del` it contains the name of the list option a value has
+        *   been removed from.
+        * - For `rename` it contains the name of the option that has been
+        *   renamed if a fourth element exists, else it contains the new name
+        *   a section has been renamed to if the change entry only contains
+        *   three elements.
+        *
+        * @property {string} 4
+        * The meaning of the fourth element depends on the operation.
+        * - For `set` it is the value an option has been set to.
+        * - For `list-add` it is the new value that has been added to a
+        *   list option.
+        * - For `rename` it is the new name of an option that has been
+        *   renamed.
+        */
+
+       /**
+        * Fetches uncommitted UCI changes from the remote `ubus` RPC api.
+        *
+        * @method
+        * @returns {Promise&lt;Object&lt;string, Array&lt;LuCI.uci.ChangeRecord>>>}
+        * Returns a promise resolving to an object containing the configuration
+        * names as keys and arrays of related change records as values.
+        */
+       changes: rpc.declare({
+               object: 'uci',
+               method: 'changes',
+               expect: { changes: { } }
+       })
+});
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="LuCI.html">LuCI</a></li><li><a href="LuCI.Class.html">Class</a></li><li><a href="LuCI.dom.html">dom</a></li><li><a href="LuCI.fs.html">fs</a></li><li><a href="LuCI.Headers.html">Headers</a></li><li><a href="LuCI.Network.html">Network</a></li><li><a href="LuCI.Network.Device.html">Device</a></li><li><a href="LuCI.Network.Hosts.html">Hosts</a></li><li><a href="LuCI.Network.Protocol.html">Protocol</a></li><li><a href="LuCI.Network.WifiDevice.html">WifiDevice</a></li><li><a href="LuCI.Network.WifiNetwork.html">WifiNetwork</a></li><li><a href="LuCI.Poll.html">Poll</a></li><li><a href="LuCI.Request.html">Request</a></li><li><a href="LuCI.Request.poll.html">poll</a></li><li><a href="LuCI.Response.html">Response</a></li><li><a href="LuCI.rpc.html">rpc</a></li><li><a href="LuCI.uci.html">uci</a></li><li><a href="LuCI.view.html">view</a></li><li><a href="LuCI.XHR.html">XHR</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 09:33:05 GMT+0100 (Central European Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/documentation/CBI.md b/documentation/CBI.md
deleted file mode 100644 (file)
index 933380d..0000000
+++ /dev/null
@@ -1,246 +0,0 @@
-
-# CBI models
-are Lua files describing the structure of an UCI config file and the resulting HTML form to be evaluated by the CBI parser.<br />
-All CBI model files must return an object of type **luci.cbi.Map**.<br />
-For a commented example of a CBI model, see the [Writing Modules tutorial](ModulesHowTo.md#cbimodels).
-
-The scope of a CBI model file is automatically extended by the contents of the module **luci.cbi** and the _translate_ function from **luci.i18n**
-
-This Reference covers **the basics** of the CBI system.
-
-
-## class Map (_config, title, description_)
-This is the root object of the model.
-
-* **config:** configuration filename to be mapped, see [UCI documentation](https://openwrt.org/docs/guide-user/base-system/uci) and the files in /etc/config
-* **title:** title shown in the UI
-* **description:** description shown in the UI
-
-#### function :section (_sectionclass_, ...)
-Creates a new section
-* **sectionclass**: a class object of the section
-* _additional parameters passed to the constructor of the section class_
-
-----
-
-## class NamedSection (_name, type, title, description_)
-An object describing an UCI section selected by the name.<br />
-To instantiate use: `Map:section(NamedSection, "name", "type", "title", "description")`
-
-* **name:** UCI section name
-* **type:** UCI section type
-* **title:** The title shown in the UI
-* **description:** description shown in the UI
-
-#### function :option(_optionclass_, ...)
-Creates a new option
-* **optionclass:** a class object of the section
-* _additional parameters passed to the constructor of the option class_
-
-#### property .addremove = false
-Allows the user to remove and recreate the configuration section.
-
-#### property .dynamic = false
-Marks this section as dynamic. Dynamic sections can contain an undefinded number of completely userdefined options.
-
-#### property .optional = true
-Parse optional options
-
-----
-
-## class TypedSection (_type, title, description_)
-An object describing a group of UCI sections selected by their type.<br />
-To instantiate use: `Map:section(TypedSection, "type", "title", "description")`
-* **type:** UCI section type
-* **title:** The title shown in the UI
-* **description:** description shown in the UI
-
-#### function :option(_optionclass_, ...)
-Creates a new option
- **optionclass:** a class object of the section
- _additional parameters passed to the constructor of the option class_
-
-#### function :depends(_key, value_)
-Only select those sections where _key == value_ <br />
-If you call this function several times the dependencies will be linked with **"or"**
-
-#### function .filter(_self, section_) -abstract-
-You can override this function to filter certain sections that will not be parsed.
-The filter function will be called for every section that should be parsed and returns **nil** for sections that should be filtered. For all other sections it should return the section name as given in the second parameter.
-
-#### property .addremove = false
-Allows the user to remove and recreate the configuration section
-
-#### property .dynamic = false
-Marks this section as dynamic. Dynamic sections can contain an undefinded number of completely userdefined options.
-
-#### property .optional = true
-Parse optional options
-
-#### property .anonymous = false
-Do not show UCI section names
-
-----
-
-## class Value (_option, title, description_)
-An object describing an option in a section of a UCI File. Creates a standard text field in the formular.<br />
-To instantiate use: `NamedSection:option(Value, "option", "title", "description")`<br />
- or `TypedSection:option(Value, "option", "title", "description")`
-* **option:** UCI option name
-* **title:** The title shown in the UI
-* **description:** description shown in the UI
-
-#### function :depends(key, value)
-Only show this option field if another option _key_ is set to _value_ in the same section.<br />
-If you call this function several times the dependencies will be linked with **"or"**
-
-#### function :value(key, value)
-Convert this text field into a combobox if possible and add a selection option.
-
-#### property .default = nil
-The default value
-
-#### property .maxlength = nil
-The maximum inputlength (of chars) of the value
-
-#### property .optional = false
-Marks this option as optional, implies .rmempty = true
-
-#### property .rmempty = true
-Removes this option from the configuration file when the user enters an empty value
-
-#### property .size = nil
-The maximum number of chars displayed by form field
-
-----
-
-## class ListValue (_option, title, description_)
-An object describing an option in a section of a UCI File.<br />
-Creates a list box or list of radio (for selecting one of many choices) in the formular.<br />
-To instantiate use: `NamedSection:option(ListValue, "option", "title", "description")`<br />
-or `TypedSection:option(ListValue, "option", "title", "description")`
-* **option:** UCI option name
-* **title:** The title shown in the UI
-* **description:** description shown in the UI
-
-#### function :depends(key, value)
-Only show this option field if another option _key_ is set to _value_ in the same section.<br />
-If you call this function several times the dependencies will be linked with **"or"**
-
-#### function :value(_key, value_)
-Adds an entry to the selection list
-
-#### property .widget = "select"
-**"select"** shows a selection list, **"radio"** shows a list of radio buttons inside form
-
-#### property .default = nil
-The default value
-
-#### property .optional = false
-Marks this option as optional, implies .rmempty = true
-
-#### property .rmempty = true
-Removes this option from the configuration file when the user enters an empty value
-
-#### property .size = nil
-The size of the form field
-
-----
-
-## class Flag (_option, title, description_)
-An object describing an option with two possible values in a section of a UCI File.<br />
-Creates a checkbox field in the formular.<br />
-To instantiate use: `NamedSection:option(Flag, "option", ""title", "description")`<br />
- or `TypedSection:option(Flag, "option", "title", "description")`
-* **option:** UCI option name
-* **title:** The title shown in the UI
-* **description:** description shown in the UI
-
-#### function :depends (_key, value_)
-Only show this option field if another option _key_ is set to _value_ in the same section.<br />
-If you call this function several times the dependencies will be linked with **"or"**
-
-#### property .default = nil
-The default value
-
-#### property .disabled = 0
-the value that should be set if the checkbox is unchecked
-
-#### property .enabled = 1
-the value that should be set if the checkbox is checked
-
-#### property .optional = false
-Marks this option as optional, implies .rmempty = true
-
-#### property .rmempty = true
-Removes this option from the configuration file when the user enters an empty value
-
-----
-
-## class MultiValue (_option'', ''title'', ''description_)
-An object describing an option in a section of a UCI File.<br />
-Creates a list of checkboxed or a multiselectable list as form fields.<br />
-To instantiate use: `NamedSection:option(MultiValue, "option", ""title", "description")`<br />
- or `TypedSection:option(MultiValue, "option", "title", "description")`
-* **option:** UCI option name
-* **title:** The title shown in the UI
-* **description:** description shown in the UI
-
-#### function :depends (_key, value_)
-Only show this option field if another option _key_ is set to _value_ in the same section.<br />
-If you call this function several times the dependencies will be linked with **"or"**
-
-#### function :value(_key, value_)
-Adds an entry to the list
-
-#### property .widget = "checkbox"
-**"select"** shows a selection list, **"checkbox"** shows a list of checkboxes inside form
-
-#### property .delimiter = " "
-The string which will be used to delimit the values inside stored option
-
-#### property .default = nil
-The default value
-
-#### property .optional = false
-Marks this option as optional, implies .rmempty = true
-
-#### property .rmempty = true
-Removes this option from the configuration file when the user enters an empty value
-
-#### property .size = nil
-The size of the form field (only used if property _.widget = "select"_)
-
-----
-
-## class StaticList (_option, title, description_)
-Similar to the MultiValue, but stores selected Values into a UCI list instead of a character-separated option.
-
-----
-
-## class DynamicList (_option, title, description_)
-A extensible list of user-defined values. Stores Values into a UCI list
-
-----
-
-## class DummyValue (_option, title, description_)
-Creates a readonly text in the form. !It writes no data to UCI!<br />
-To instantiate use: `NamedSection:option(DummyValue, "option", ""title", "description")`<br />
- or `TypedSection:option(DummyValue, "option", "title", "description")`
-* **option:** UCI option name
-* **title:** The title shown in the UI
-* **description:** description shown in the UI
-
-#### property :depends (_key, value_)
-Only show this option field if another option _key_ is set to _value_ in the same section.<br />
-If you call this function several times the dependencies will be linked with **"or"**
-
-----
-
-## class TextValue (_option, title, description_)
-An object describing a multi-line textbox in a section in a non-UCI form.
-
-----
-
-## class Button (_option, title, description_)
-An object describing a Button in a section in a non-UCI form.
diff --git a/documentation/JsonRpcHowTo.md b/documentation/JsonRpcHowTo.md
deleted file mode 100644 (file)
index 76d61f8..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-LuCI provides some of its libraries to external applications through a JSON-RPC API.
-This Howto shows how to use it and provides information about available functions.
-
-
-# Basics
-LuCI comes with an efficient JSON De-/Encoder together with a JSON-RPC-Server which implements the *JSON-RPC 1.0_' and 2.0 (partly) specifications. The LuCI JSON-RPC server offers several independent APIs. Therefore you have to use '_different URLs for every exported library*.
-Assuming your LuCI-Installation can be reached through */cgi-bin/luci_' any exported library can be reached via '''/cgi-bin/luci/rpc/''LIBRARY_*.
-
-
-# Authentication
-Most exported libraries will require a valid authentication to be called with. If you get an *HTTP 403 Forbidden_' status code you are probably missing a valid authentication token. To get such a token you have to call the function '''login''' of the RPC-Library '''auth'''. Following our example from above this login function would be provided at '_/cgi-bin/luci/rpc/auth*. The function accepts 2 parameters: username and password (of a valid user account on the host system) and returns an authentication token.
-
-If you want to call any exported library which requires an authentication token you have to *append it as an URL parameter _auth''''' to the RPC-Server URL. So instead of calling '''/cgi-bin/luci/rpc/''LIBRARY''''' you have to call '''/cgi-bin/luci/rpc/''LIBRARY''?auth=''TOKEN_*.
-
-If your JSON-RPC client is Cookie-aware (like most browsers are) you will receive the authentication token also with a session cookie and probably don't have to append it to the RPC-Server URL.
-
-
-# Exported Libraries
-## uci
-The UCI-Library */rpc/uci* offers functionality to interact with the Universal Configuration Interface.
-*Exported Functions:*
-* [(string) add(config, type)](http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.add)
-* [(integer) apply(config)](http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.apply)
-* [http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.changes (object) changes([config])]
-* [(boolean) commit(config)](http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.commit)
-* [http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.delete (boolean) delete(config, section[, option])]
-* [http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.delete_all (boolean) delete_all(config[, type])]
-* [http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.foreach (array) foreach(config[, type])]
-* [http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.get (mixed) get(config, section[, option])]
-* [http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.get_all (object) get_all(config[, section])]
-* [http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.get (mixed) get_state(config, section[, option])]
-* [(boolean) revert(config)](http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.revert)
-* [(name) section(config, type, name, values)](http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.section)
-* [(boolean) set(config, section, option, value)](http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.set)
-* [(boolean) tset(config, section, values)](http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.tset)
-
-## uvl
-The UVL-Library */rpc/uvl* offers functionality to validate UCI files and get schemes describing UCI files.
-*Exported Functions:*
-* [(array) get_scheme(scheme)](http://luci.subsignal.org/api/luci/modules/luci.uvl.html#UVL.get_scheme)
-* [(array) validate(config, section, option)](http://luci.subsignal.org/api/luci/modules/luci.uvl.html#UVL.validate)
-* [(array) validate_config(config)](http://luci.subsignal.org/api/luci/modules/luci.uvl.html#UVL.validate_config)
-* [(array) validate_section(config, section)](http://luci.subsignal.org/api/luci/modules/luci.uvl.html#UVL.validate_section)
-* [(array) validate(config, section, option)](http://luci.subsignal.org/api/luci/modules/luci.uvl.html#UVL.validate_option)
-
-## fs
-The Filesystem library */rpc/fs* offers functionality to interact with the filesystem on the host machine.
-*Exported Functions:*
-
-* [Complete luci.fs library](http://luci.subsignal.org/api/luci/modules/luci.fs.html)
-*Note:* All functions are exported as they are except for _readfile'' which encodes its return value in base64 and ''writefile'' which only accepts base64 encoded data as second argument. Note that both functions will only be available when the ''luasocket_ packet is installed on the hostsystem.
-
-## sys
-The System library */rpc/sys* offers functionality to interact with the operating system on the host machine.
-*Exported Functions:*
-* [Complete luci.sys library](http://luci.subsignal.org/api/luci/modules/luci.sys.html)
-* [Complete luci.sys.group library](http://luci.subsignal.org/api/luci/modules/luci.sys.group.html) with prefix *group.*
-* [Complete luci.sys.net library](http://luci.subsignal.org/api/luci/modules/luci.sys.net.html) with prefix *net.*
-* [Complete luci.sys.process library](http://luci.subsignal.org/api/luci/modules/luci.sys.process.html) with prefix *process.*
-* [Complete luci.sys.user library](http://luci.subsignal.org/api/luci/modules/luci.sys.user.html) with prefix *user.*
-* [Complete luci.sys.wifi library](http://luci.subsignal.org/api/luci/modules/luci.sys.wifi.html) with prefix *wifi.*
-
-## ipkg
-The IPKG library */rpc/ipkg* offers functionality to interact with the package manager (IPKG or OPKG) on the host machine.
-*Exported Functions:*
-* [Complete luci.model.ipkg library](http://luci.subsignal.org/api/luci/modules/luci.model.ipkg.html)
diff --git a/documentation/LAR.md b/documentation/LAR.md
deleted file mode 100644 (file)
index 457b076..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-LAR is a simple archive format to pack multiple lua source files and arbitrary other resources into a single file.
-
-
-# Format Specification
-
-A LAR archive file is divided into two parts: the payload and the index lookup table.
-All segments of the archive are 4 Byte aligned to ease reading and processing of the format.
-All integers are stored in network byte order, so an implementation has to use htonl() and htons() to properly read them.
-
-Schema:
-       
-       <payload:
-         <member:
-           <N*4 bytes: path of file #1>
-           <N*4 bytes: data of file #1>
-         >
-         
-         <member:
-           <N*4 bytes: path of file #2>
-           <N*4 bytes: data of file #2>
-         >
-       
-         ...
-       
-         <member:
-           <N*4 bytes: path of file #N>
-           <N*4 bytes: data of file #N>
-         >
-       >
-       
-       <index table:
-         <entry:
-           <uint32: offset for path of file #1> <uint32: length for path of file #1>
-           <uint32: offset for data of file #1> <uint32: length for data of file #1>
-           <uint16: type of file #1> <uint16: flags of file #1>
-         >
-       
-         <entry:
-           <uint32: offset for path of file #2> <uint32: length for path of file #2>
-           <uint32: offset for data of file #2> <uint32: length for data of file #2>
-           <uint16: type of file #2> <uint16: flags of file #2>
-         >
-       
-         ...
-       
-         <entry:
-           <uint32: offset for path of file #N> <uint32: length for path of file #N>
-           <uint32: offset for data of file #N> <uint32: length for data of file #N>
-           <uint16: type of file #N> <uint16: flags of file #N>
-         >
-       >
-       
-       <uint32: offset for begin of index table>
-       
-
-
-# Processing
-
-In order to process an LAR archive, an implementation would have to do the following steps:
-
-## Read Index
-
-1. Locate and open the archive file
-1. Seek to end of file - 4 bytes
-1. Read 32bit index offset and swap from network to native byte order
-1. Seek to index offset, calculate index length: filesize - index offset - 4
-1. Initialize a linked list for index table entries
-1. Read each index entry until the index length is reached, read and byteswap 4 * 32bit int and 2 * 16bit int
-1. Seek to begin of file
-
-## Read Member
-
-1. Read the archive index
-1. Iterate through the linked index list, perform the following steps for each entry
-1. Seek to the specified file path offset
-1. Read as much bytes as specified in the file path length into a buffer
-1. Compare the contents of the buffer against the path of the searched member
-1. If buffer and searched path are equal, seek to the specified file data offset
-1. Read data until the file data length is reached, return
-1. Select the next index table entry and repeat from step 3, if there is no next entry then return
-
-# Reference implementation
-
-A reference implementation can be found here:
-http://luci.subsignal.org/trac/browser/luci/trunk/contrib/lar
-
-The lar.pl script is a simple packer for LAR archives and cli.c provides a utility to list and dump packed LAR archives.
diff --git a/documentation/LMO.md b/documentation/LMO.md
deleted file mode 100644 (file)
index 961a45b..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-LMO is a simple binary format to pack language strings into a more efficient form. Although it's suitable to store any kind of key-value table, it's only used for the LuCI *.po based translation system at the moment. The abbreviation "LMO" stands for "Lua Machine Objects" in the style of the GNU gettext *.mo format.
-
-
-# Format Specification
-
-A LMO file is divided into two parts: the payload and the index lookup table.
-All segments of the file are 4 Byte aligned to ease reading and processing of the format.
-Only unsigned 32bit integers are used and stored in network byte order, so an implementation has to use htonl() to properly read them.
-
-Schema:
-       
-       <file:
-         <payload:
-           <entry #1: 4 byte aligned data>
-       
-           <entry #2: 4 byte aligned data>
-       
-           ...
-       
-           <entry #N: 4 byte aligned data>
-         >
-       
-         <index table:
-           <entry #1:
-             <uint32_t: hash of the first key>
-             <uint32_t: hash of the first value>
-             <uint32_t: file offset of the first value>
-             <uint32_t: length of the first value>
-           >
-       
-           <entry #2:
-             <uint32_t: hash of the second key>
-             <uint32_t: hash of the second value>
-             <uint32_t: file offset of the second value>
-             <uint32_t: length of the second value>
-           >
-       
-           ...
-       
-           <entry #N:
-             <uint32_t: hash of the Nth key>
-             <uint32_t: hash of the Nth value>
-             <uint32_t: file offset of the Nth value>
-             <uint32_t: length of the Nth value>
-           >
-         >
-       
-         <uint32_t: offset of the begin of index table>
-       >
-       
-
-
-# Processing
-
-In order to process a LMO file, an implementation would have to do the following steps:
-
-## Read Index
-
-1. Locate and open the archive file
-1. Seek to end of file - 4 bytes (sizeof(uint32_t))
-1. Read 32bit index offset and swap from network to native byte order
-1. Seek to index offset, calculate index length: filesize - index offset - 4
-1. Initialize a linked list for index table entries
-1. Read each index entry until the index length is reached, read and byteswap 4 * uint32_t for each step
-1. Seek to begin of file
-
-## Read Entry
-
-1. Calculate the unsigned 32bit hash of the entries key value (see "Hash Function" section below)
-1. Obtain the archive index
-1. Iterate through the linked index list, perform the following steps for each entry:
-  1. Compare the entry hash value with the calculated hash from step 1
-  2. If the hash values are equal proceed with step 4
-  3. Select the next entry and repeat from step 3.1
-1. Seek to the file offset specified in the selected entry
-1. Read as much bytes as specified in the entry length into a buffer
-1. Return the buffer value
-
-# Hash Function
-
-The current LuCI-LMO implementation uses the "Super Fast Hash" function which was kindly put in the public domain by it's original author. See http://www.azillionmonkeys.com/qed/hash.html for details. Below is the C-Implementation of this function:
-
-       
-       #if (defined(__GNUC__) && defined(__i386__))
-       #define sfh_get16(d) (*((const uint16_t *) (d)))
-       #else
-       #define sfh_get16(d) ((((uint32_t)(((const uint8_t *)(d))[1])) << 8)\
-                                                  +(uint32_t)(((const uint8_t *)(d))[0]) )
-       #endif
-       
-       uint32_t sfh_hash(const char * data, int len)
-       {
-               uint32_t hash = len, tmp;
-               int rem;
-       
-               if (len <= NULL) return 0;
-       
-               rem = len & 3;
-               len >>= 2;
-       
-               /* Main loop */
-               for (;len > 0; len--) {
-                       hash  += sfh_get16(data);
-                       tmp    = (sfh_get16(data+2) << 11) ^ hash;
-                       hash   = (hash << 16) ^ tmp;
-                       data  += 2*sizeof(uint16_t);
-                       hash  += hash >> 11;
-               }
-       
-               /* Handle end cases */
-               switch (rem) {
-                       case 3: hash += sfh_get16(data);
-                               hash ^= hash << 16;
-                               hash ^= data[sizeof(uint16_t)] << 18;
-                               hash += hash >> 11;
-                               break;
-                       case 2: hash += sfh_get16(data);
-                               hash ^= hash << 11;
-                               hash += hash >> 17;
-                               break;
-                       case 1: hash += *data;
-                               hash ^= hash << 10;
-                               hash += hash >> 1;
-               }
-       
-               /* Force "avalanching" of final 127 bits */
-               hash ^= hash << 3;
-               hash += hash >> 5;
-               hash ^= hash << 4;
-               hash += hash >> 17;
-               hash ^= hash << 25;
-               hash += hash >> 6;
-       
-               return hash;
-       }
-       
-
-# Reference Implementation
-
-A reference implementation can be found here:
-http://luci.subsignal.org/trac/browser/luci/trunk/libs/lmo/src
-
-The lmo_po2lmo.c executable implements a *.po to *.lmo conversation utility and lmo_lookup.c is a simple *.lmo test utility.
-Lua bindings for lmo are defined in lmo_lualib.c and associated headers.
diff --git a/documentation/LuCI-0.10.md b/documentation/LuCI-0.10.md
deleted file mode 100644 (file)
index 5db9895..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-[[PageOutline(2-5, Table of Contents, floated)]]
-
-
-This document describes new features and incompatibilities to LuCI 0.9.x.
-It is targeted at module authors developing external addons to LuCI.
-
-# I18N Changes
-
-## API
-
-The call conventions for the i18n api changed, there is no dedicated translation
-key anymore and the english text is used for lookup instead. This was done to
-ease the maintenance of language files.
-
-Code that uses _translate()'' or ''i18n()_ must be changed as follows:
-
-       
-       -- old style:
-       translate("some_text", "Some Text")
-       translatef("some_format_text", "Some formatted Text: %d", 123)
-       
-       -- new style:
-       translate("Some Text")
-       translatef("Some formatted Text: %d", 123)
-       
-
-Likewise for templates:
-
-       
-       <!-- old style: -->
-       <%:some_text Some Text%>
-       
-       <!-- new style: -->
-       <%:Some Text%>
-       
-
-If code must support both LuCI 0.9.x and 0.10.x versions, it is suggested to write the calls as follows:
-       
-       translate("Some Text", "Some Text")
-       
-
-An alternative is wrapping translate() calls into a helper function:
-       
-       function tr(key, alt)
-           return translate(key) or translate(alt) or alt
-       end
-       
-
-... which is used as follows:
-       
-       tr("some_key", "Some Text")
-       
-
-## Translation File Format
-
-Translation catalogs are now maintained in *.po format files. During build those get translated
-into [*.lmo archives](http://luci.subsignal.org/trac/wiki/Documentation/LMO).
-
-LuCI ships a [utility script](http://luci.subsignal.org/trac/browser/luci/branches/luci-0.10/build/i18n-lua2po.pl)
-in the build/ directory to convert old Lua translation files to the *.po format. The generated *.po files should
-be placed in the appropriate subdirectories within the top po/ file in the LuCI source tree.
-
-### Components built within the LuCI tree
-
-If components using translations are built along with the LuCI tree, the newly added *.po file are automatically
-compiled into *.lmo archives during the build process. In order to bundle the appropriate *.lmo files into the
-corresponding *.ipk packages, component Makefiles must include a "PO" variable specifying the files to include.
-
-Given a module _applications/example/'' which uses ''po/en/example.po'' and ''po/en/example-extra.po_,
-the _applications/example/Makefile_ must be changed as follows:
-
-       
-       PO = example example-extra
-       
-       include ../../build/config.mk
-       include ../../build/module.mk
-       
-
-### Standalone components
-
-Authors who externally package LuCI components must prepare required *.lmo archives themselves.
-To convert existing Lua based message catalogs to the *.po format, the build/i18n-lua2po.pl helper script can be used.
-In order to convert *.po files into *.lmo files, the standalone "po2lmo" utility must be compiled as follows:
-
-       
-       $ svn co http://svn.luci.subsignal.org/luci/branches/luci-0.10/libs/lmo
-       $ cd lmo/
-       $ make
-       $ ./src/po2lmo translations.po translations.lmo
-       
-
-Note that at the time of writing, the utility program needs Lua headers installed on the system in order to compile properly.
-
-# CBI
-
-## Datatypes
-
-The server side UVL validation has been dropped to reduce space requirements on the target.
-Instead it is possible to define datatypes for CBI widgets now:
-
-       
-       opt = section:option(Value, "optname", "Title Text")
-       opt.datatype = "ip4addr"
-       
-
-User provided data is validated once on the frontend via JavaScript and on the server side prior to saving it.
-A list of possible datatypes can be found in the [luci.cbi.datatypes](http://luci.subsignal.org/trac/browser/luci/branches/luci-0.10/libs/web/luasrc/cbi/datatypes.lua#L26) class.
-
-## Validation
-
-Server-sided validator function can now return custom error messages to provide better feedback on invalid input.
-
-       
-       opt = section:option(Value, "optname", "Title Text")
-       
-       function opt.validate(self, value, section)
-           if input_is_valid(value) then
-               return value
-           else
-               return nil, "The value is invalid because ..."
-           end
-       end
-       
-
-## Tabs
-
-It is now possible to break up CBI sections into multiple tabs to better organize longer forms.
-The TypedSection and NamedSection classes gained two new functions to define tabs, _tab()'' and ''taboption()_.
-
-       
-       sct = map:section(TypedSection, "name", "type", "Title Text")
-       
-       sct:tab("general", "General Tab Title", "General Tab Description")
-       sct:tab("advanced", "Advanced Tab Title", "Advanced Tab Description")
-       
-       opt = sct:taboption("general", Value, "optname", "Title Text")
-       ...
-       
-
-The _tab()_ function is declares a new tab and takes up to three arguments:
-  * Internal name of the tab, must be unique within the section
-  * Title text of the tab
-  * Optional description text for the tab
-
-The _taboption()'' function wraps ''option()_ and assigns the option object to the given tab.
-It takes up to five arguments:
-
-  * Name of the tab to assign the option to
-  * Option type, e.g. Value or DynamicList
-  * Option name
-  * Title text of the option
-  * Optional description text of the option
-
-If tabs are used within a particular section, the _option()_ function must not be used,
-doing so results in undefined behaviour.
-
-## Hooks
-
-The CBI gained support for _hooks_ which can be used to trigger additional actions during the
-life-cycle of a map:
-
-       
-       map = Map("config", "Title Text")
-       
-       function map.on_commit(self)
-           -- do something if the UCI configuration got committed
-       end
-       
-
-The following hooks are defined:
-
-|| on_cancel || The user pressed cancel within a multi-step Delegator or a SimpleForm instance || 
-|| on_init || The CBI is about to render the Map object ||
-|| on_parse || The CBI is about to read received HTTP form values ||
-|| on_save, on_before_save || The CBI is about to save modified UCI configuration files ||
-|| on_after_save || Modified UCI configuration files just got saved
-|| on_before_commit || The CBI is about to commit the changes ||
-|| on_commit, on_after_commit, on_before_apply || Modified configurations got committed and the CBI is about to restart associated services ||
-|| on_apply, on_after_apply || All changes where completely applied (only works on Map instances with the apply_on_parse attribute set) ||
-
-## Sortable Tables
-
-TypedSection instances which use the "cbi/tblsection" template may now use a new attribute _sortable_ to allow the user to reorder table rows.
-
-       
-       sct = map:section(TypedSection, "name", "type", "Title Text")
-       sct.template = "cbi/tblsection"
-       sct.sortable = true
-       
-       ...
-       
-
-# JavaScript
-
-The LuCI 0.10 branch introduced a new JavaScript file _xhr.js_ which provides support routines for XMLHttpRequest operations.
-Each theme must include this file in the <head> area of the document for forms to work correctly.
-
-It should be included like this:
-
-       
-       <script type="text/javascript" src="<%=resource%>/xhr.js"></script>
-       
\ No newline at end of file
diff --git a/documentation/Modules.md b/documentation/Modules.md
deleted file mode 100644 (file)
index 2897df9..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-# Categories
-
-The LuCI modules are divided into several category directories, namely:
-* applications (Single applications or plugins for other modules or applications)
-* i18n (Translation files)
-* libs (Independent libraries)
-* modules (Collections of applications)
-* themes (Frontend themes)
-
-Each module goes into a subdirectory of any of this category-directories.
-
-# Module directory
-The contents of a module directory are as follows:
-
-## Makefile
-This is the module's makefile. If the module just contains Lua sourcecode or resources then the following Makefile should suffice.
-       
-       include ../../build/config.mk
-       include ../../build/module.mk
-       
-
-If you have C(++) code in your module your Makefile should at least contain the following things.
-       
-       include ../../build/config.mk
-       include ../../build/gccconfig.mk
-       include ../../build/module.mk
-       
-       compile:
-           # Commands to compile and link your C-code
-           # and to install them under the dist/ hierarchy
-       
-       clean: luaclean
-           # Commands to clean your compiled objects
-       
-
-## src
-The *src* directory is reserved for C sourcecode.
-
-## luasrc
-*luasrc* contains all Lua sourcecode files. These will automatically be stripped or compiled depending on the Make target and are installed in the LuCI installation directory.
-
-## lua
-*lua* is equivalent to _luasrc_ but containing Lua files will be installed in the Lua document root.
-
-## htdocs
-All files under *htdocs* will be copied to the document root of the target webserver.
-
-## root
-All directories and files under *root* will be copied to the installation target as they are.
-
-## dist
-*dist* is reserved for the builder to create a working installation tree that will represent the filesystem on the target machine.
-*DO NOT* put any files there as they will get deleted.
-
-## ipkg
-*ipkg* contains IPKG package control files, like _preinst'', ''posinst'', ''prerm'', ''postrm''. ''conffiles_.
-See IPKG documentation for details.
-
-
-# OpenWRT feed integration
-If you want to add your module to the LuCI OpenWRT feed you have to add several sections to the contrib/package/luci/Makefile.
-
-For a Web UI applications this is:
-
-A package description:
-       
-       define Package/luci-app-YOURMODULE
-         $(call Package/luci/webtemplate)
-         DEPENDS+=+some-package +some-other-package
-         TITLE:=SHORT DESCRIPTION OF YOURMODULE
-       endef
-       
-       
-
-A package installation target:
-       
-       define Package/luci-app-YOURMODULE/install
-               $(call Package/luci/install/template,$(1),applications/YOURMODULE)
-       endef
-       
-
-A module build instruction:
-       
-       ifneq ($(CONFIG_PACKAGE_luci-app-YOURMODULE),)
-               PKG_SELECTED_MODULES+=applications/YOURMODULE
-       endif
-       
-
-
-A build package call:
-       
-       $(eval $(call BuildPackage,luci-app-YOURMODULE))
-       
diff --git a/documentation/ModulesHowTo.md b/documentation/ModulesHowTo.md
deleted file mode 100644 (file)
index 7efed83..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-*Note:* If you plan to integrate your module into LuCI, you should read the [wiki:Documentation/Modules Module Reference] before.
-
-This tutorial describes how to write your own modules for the LuCI WebUI.
-For this tutorial we refer to your LuCI installation directory as *lucidir_' (/usr/lib/lua/luci if you are working with an installed version) and assume your LuCI installation is reachable through your webserver via '_/cgi-bin/luci*.
-
-If you are working with the development environment replace *lucidir_' with '''''/path/to/your/luci/checkout''/applications/myapplication/luasrc''' (this is a default empty module you can use for your experiments) and your LuCI installation can probably be reached via http://localhost:8080/luci/ after you ran '_make runhttpd*.
-
-
-
-# Show me the way (The dispatching process)
-To write a module you need to understand the basics of the dispatching process in LuCI.
-LuCI uses a dispatching tree that will be built by executing the index-Function of every available controller.
-The CGI-environment variable *PATH_INFO* will be used as the path in this dispatching tree, e.g.: /cgi-bin/luci/foo/bar/baz
-will be resolved to foo.bar.baz
-
-To register a function in the dispatching tree, you can use the *entry*-function of _luci.dispatcher_. entry takes 4 arguments (2 are optional):
-       
-       entry(path, target, title=nil, order=nil)
-       
-
-* *path* is a table that describes the position in the dispatching tree: For example a path of {"foo", "bar", "baz"} would insert your node in foo.bar.baz.
-* *target* describes the action that will be taken when a user requests the node. There are several predefined ones of which the 3 most important (call, template, cbi) are described later on on this page
-* *title* defines the title that will be visible to the user in the menu (optional)
-* *order* is a number with which nodes on the same level will be sorted in the menu (optional)
-
-You can assign more attributes by manipulating the node table returned by the entry-function. A few example attributes:
-
-* *i18n* defines which translation file should be automatically loaded when the page gets requested
-* *dependent* protects plugins to be called out of their context if a parent node is missing
-* *leaf* stops parsing the request at this node and goes no further in the dispatching tree
-* *sysauth* requires the user to authenticate with a given system user account
-
-
-# It's all about names (Naming and the module file)
-Now that you know the basics about dispatching, we can start writing modules. But before you have to choose the category and name of your new digital child.
-
-We assume you want to create a new application "myapp" with a module "mymodule".
-
-So you have to create a new subdirectory *_lucidir''/controller/myapp''' with a file '_mymodule.lua* with the following content:
-       
-       module("luci.controller.myapp.mymodule", package.seeall)
-       
-       function index()
-       
-       end
-       
-
-The first line is required for Lua to correctly identify the module and create its scope.
-The index-Function will be used to register actions in the dispatching tree.
-
-
-
-# Teaching your new child (Actions)
-So it is there and has a name but it has no actions.
-
-We assume you want to reuse your module myapp.mymodule that you begun in the last step.
-
-
-## Actions
-Reopen *_lucidir_/controller/myapp/mymodule.lua* and just add a function to it so that its content looks like this example:
-
-       
-       module("luci.controller.myapp.mymodule", package.seeall)
-       
-       function index()
-           entry({"click", "here", "now"}, call("action_tryme"), "Click here", 10).dependent=false
-       end
-        
-       function action_tryme()
-           luci.http.prepare_content("text/plain")
-           luci.http.write("Haha, rebooting now...")
-           luci.sys.reboot()
-       end
-       
-
-And now type */cgi-bin/luci/click/here/now_' ('_[http://localhost:8080/luci/click/here/now]* if you are using the development environment) in your browser.
-
-You see these action functions simple have to be added to a dispatching entry.
-
-As you might or might not know: CGI specification requires you to send a Content-Type header before you can send your content. You will find several shortcuts (like the one used above) as well as redirecting functions in the module *luci.http*
-
-## Views
-If you only want to show the user a text or some interesting familiy photos it may be enough to use a HTML-template. These templates can also include some Lua code but be aware that writing whole office suites by only using these templates might be called "dirty" by other developers.
-
-Now let's create a little template *_lucidir_/view/myapp-mymodule/helloworld.htm* with the content:
-
-       
-       <%+header%>
-       <h1><%:Hello World%></h1> 
-       <%+footer%>
-       
-
-
-and add the following line to the index-Function of your module file.
-       
-       entry({"my", "new", "template"}, template("myapp-mymodule/helloworld"), "Hello world", 20).dependent=false
-       
-
-Now type */cgi-bin/luci/my/new/template_' ('_[http://localhost:8080/luci/my/new/template]* if you are using the development environment) in your browser.
-
-You may notice those fancy <% %>-Tags, these are [wiki:Documentation/Templates|template markups] used by the LuCI template processor.
-It is always good to include header and footer at the beginning and end of a template as those create the default design and menu.
-
-## <a name=cbimodels></a> CBI models
-The CBI is one of the uber coolest features of LuCI. It creates a formular based user interface and saves its contents to a specific UCI config file. You only have to describe the structure of the configuration file in a CBI model file and Luci does the rest of the work. This includes generating, parsing and validating a XHTML form and reading and writing the UCI file.
-
-So let's be serious at least for this paragraph and create a real pratical example *_lucidir_/model/cbi/myapp-mymodule/netifaces.lua* with the following contents:
-
-       
-       m = Map("network", "Network") -- We want to edit the uci config file /etc/config/network
-       
-       s = m:section(TypedSection, "interface", "Interfaces") -- Especially the "interface"-sections
-       s.addremove = true -- Allow the user to create and remove the interfaces
-       function s:filter(value)
-          return value ~= "loopback" and value -- Don't touch loopback
-       end 
-       s:depends("proto", "static") -- Only show those with "static"
-       s:depends("proto", "dhcp") -- or "dhcp" as protocol and leave PPPoE and PPTP alone
-       
-       p = s:option(ListValue, "proto", "Protocol") -- Creates an element list (select box)
-       p:value("static", "static") -- Key and value pairs
-       p:value("dhcp", "DHCP")
-       p.default = "static"
-       
-       s:option(Value, "ifname", "interface", "the physical interface to be used") -- This will give a simple textbox
-       
-       s:option(Value, "ipaddr", translate("ip", "IP Address")) -- Ja, das ist eine i18n-Funktion ;-)
-       
-       s:option(Value, "netmask", "Netmask"):depends("proto", "static") -- You may remember this "depends" function from above
-       
-       mtu = s:option(Value, "mtu", "MTU")
-       mtu.optional = true -- This one is very optional
-       
-       dns = s:option(Value, "dns", "DNS-Server")
-       dns:depends("proto", "static")
-       dns.optional = true
-       function dns:validate(value) -- Now, that's nifty, eh?
-           return value:match("[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+") -- Returns nil if it doesn't match otherwise returns match
-       end
-       
-       gw = s:option(Value, "gateway", "Gateway")
-       gw:depends("proto", "static")
-       gw.rmempty = true -- Remove entry if it is empty
-       
-       return m -- Returns the map
-       
-
-and of course don't forget to add something like this to your module's index-Function.
-       
-       entry({"admin", "network", "interfaces"}, cbi("myapp-mymodule/netifaces"), "Network interfaces", 30).dependent=false
-       
-
-There are many more features, see [wiki:Documentation/CBI the CBI reference] and the modules shipped with LuCI.
diff --git a/documentation/Templates.md b/documentation/Templates.md
deleted file mode 100644 (file)
index adf019c..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-LuCI has a simple regex based template processor which parses HTML-files to Lua functions and allows to store precompiled template files.
-The simplest form of a template is just an ordinary HTML-file. It will be printed out to the user as is.
-
-In LuCI every template is an object with an own scope. It can therefore be instantiated and each instance can has a different scope. As every template processor. LuCI supports several special markups. Those are enclosed in `<% %>`-Tags.
-
-By adding `-` (dash) right after the opening `<%` every whitespace before the markup will be stripped. Adding a `-` right before the closing `%>` will equivalently strip every whitespace behind the markup.
-
-
-# Builtin functions and markups
-## Including Lua code
-*Markup:*
-       
-       <% code %>
-       
-
-
-## Writing variables and function values
-*Syntax:*
-       
-       <% write (value) %>
-       
-
-*Short-Markup:*
-       
-       <%=value%>
-       
-
-## Including templates
-*Syntax:*
-       
-       <% include (templatename) %>
-       
-
-*Short-Markup:*
-       
-       <%+templatename%>
-       
-
-
-## Translating
-*Syntax:*
-       
-       <%= translate("Text to translate") %>
-       
-
-
-*Short-Markup:*
-       
-       <%:Text to translate%>
-       
-
-
-## Commenting
-*Markup:*
-       
-       <%# comment %>
-       
-
-# Builtin constants
-| Name | Value |
----------|---------
-|`REQUEST_URI`|The current URL (without server part)|
-|`controller`|Path to the Luci main dispatcher|
-|`resource`|Path to the resource directory|
-|`media`|Path to the active theme directory|
diff --git a/documentation/ThemesHowTo.md b/documentation/ThemesHowTo.md
deleted file mode 100644 (file)
index ae6f8e0..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-# HowTo: Create Themes
-*Note:* You should read the [Module Reference](Modules.md) and the [Template Reference](Templates.md) before.
-
-We assume you want to call your new theme _mytheme_. Make sure you replace this by your module name every time this is mentionend in this Howto.
-
-
-
-# Creating the structure
-At first create a new theme directory *themes/_mytheme_*.
-
-Create a _Makefile_ inside your theme directory with the following content:
-       
-       include ../../build/config.mk
-       include ../../build/module.mk
-       
-
-Create the following directory structure inside your theme directory.
-* ipkg
-* htdocs
-  * luci-static
-   * _mytheme_
-* luasrc
-  * view
-   * themes
-    * _mytheme_
-* root
-  * etc
-   * uci-defaults
-
-
-
-# Designing
-Create two LuCI HTML-Templates named _header.htm'' and ''footer.htm'' under *luasrc/view/themes/''mytheme_*.
-The _header.htm'' will be included at the beginning of each rendered page and the ''footer.htm_ at the end.
-So your _header.htm'' will probably contain a DOCTYPE description, headers, the menu and layout of the page and the ''footer.htm_ will close all remaining open tags and may add a footer bar but hey that's your choice you are the designer ;-).
-
-Just make sure your _header.htm_ *begins* with the following lines:
-       
-       <%
-       require("luci.http").prepare_content("text/html")
-       -%>
-       
-
-This makes sure your content will be sent to the client with the right content type. Of course you can adapt _text/html_ to your needs.
-
-
-Put any stylesheets, Javascripts, images, ... into *htdocs/luci-static/_mytheme_*.
-You should refer to this directory in your header and footer templates as: _<%=media%>''. That means for a stylesheet *htdocs/luci-static/''mytheme_/cascade.css* you would write:
-       
-       <link rel="stylesheet" type="text/css" href="<%=media%>/cascade.css" />
-       
-
-
-
-# Making the theme selectable
-If you are done with your work there are two last steps to do.
-To make your theme OpenWRT-capable and selectable on the settings page you should now create a file *root/etc/uci-defaults/luci-theme-_mytheme_* with the following contents:
-       
-       #!/bin/sh
-       uci batch <<-EOF
-               set luci.themes.MyTheme=/luci-static/mytheme
-               commit luci
-       EOF
-       
-
-and another file *ipkg/postinst* with the following content:
-       
-       #!/bin/sh
-       [ -n "${IPKG_INSTROOT}" ] || {
-               ( . /etc/uci-defaults/luci-theme-mytheme ) &&        rm -f /etc/uci-defaults/luci-theme-mytheme
-       }
-       
-
-This is some OpenWRT magic to correctly register the template with LuCI when it gets installed.
-
-That's all. Now send your theme to the LuCI developers to get it into the development repository - if you like.
diff --git a/documentation/api/index.html b/documentation/api/index.html
deleted file mode 100644 (file)
index 5e3f3c2..0000000
+++ /dev/null
@@ -1,426 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><strong>Index</strong></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-</div> <!-- id="navigation" -->
-
-<div id="content">
-
-
-
-<h2>Modules</h2>
-<table class="module_list">
-<!--<tr><td colspan="2">Modules</td></tr>-->
-
-       <tr>
-               <td class="name"><a href="modules/luci.dispatcher.html">luci.dispatcher</a></td>
-               <td class="summary"></td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.http.html">luci.http</a></td>
-               <td class="summary"></td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.http.conditionals.html">luci.http.conditionals</a></td>
-               <td class="summary"></td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.http.date.html">luci.http.date</a></td>
-               <td class="summary"></td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.http.mime.html">luci.http.mime</a></td>
-               <td class="summary"></td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.i18n.html">luci.i18n</a></td>
-               <td class="summary"></td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.ip.html">luci.ip</a></td>
-               <td class="summary">
- LuCI IP calculation and netlink access library.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.ip.cidr.html">luci.ip.cidr</a></td>
-               <td class="summary">
- IP CIDR Object.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.json.html">luci.json</a></td>
-               <td class="summary"></td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.jsonc.html">luci.jsonc</a></td>
-               <td class="summary">
- LuCI JSON parsing and serialization library.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.jsonc.parser.html">luci.jsonc.parser</a></td>
-               <td class="summary">
- LuCI JSON parser instance.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.model.ipkg.html">luci.model.ipkg</a></td>
-               <td class="summary"></td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.model.uci.html">luci.model.uci</a></td>
-               <td class="summary"></td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.rpcc.html">luci.rpcc</a></td>
-               <td class="summary"></td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a></td>
-               <td class="summary"></td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.sys.html">luci.sys</a></td>
-               <td class="summary"></td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.sys.init.html">luci.sys.init</a></td>
-               <td class="summary">
-LuCI system utilities / init related functions.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.sys.iptparser.html">luci.sys.iptparser</a></td>
-               <td class="summary"></td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.sys.net.html">luci.sys.net</a></td>
-               <td class="summary">
-LuCI system utilities / network related functions.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.sys.process.html">luci.sys.process</a></td>
-               <td class="summary">
-LuCI system utilities / process related functions.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.sys.user.html">luci.sys.user</a></td>
-               <td class="summary">
-LuCI system utilities / user related functions.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.sys.wifi.html">luci.sys.wifi</a></td>
-               <td class="summary">
-LuCI system utilities / wifi related functions.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.util.html">luci.util</a></td>
-               <td class="summary"></td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/nixio.html">nixio</a></td>
-               <td class="summary">
- General POSIX IO library.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a></td>
-               <td class="summary">
- Changes and improvements.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/nixio.CryptoHash.html">nixio.CryptoHash</a></td>
-               <td class="summary">
- Cryptographical Hash and HMAC object.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/nixio.File.html">nixio.File</a></td>
-               <td class="summary">
- Large File Object.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/nixio.README.html">nixio.README</a></td>
-               <td class="summary">
- General Information.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/nixio.Socket.html">nixio.Socket</a></td>
-               <td class="summary">
- Socket Object.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/nixio.TLSContext.html">nixio.TLSContext</a></td>
-               <td class="summary">
- Transport Layer Security Context Object.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/nixio.TLSSocket.html">nixio.TLSSocket</a></td>
-               <td class="summary">
- TLS Socket Object.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a></td>
-               <td class="summary">
- Unified high-level I/O utility API for Files, Sockets and TLS-Sockets.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/nixio.bin.html">nixio.bin</a></td>
-               <td class="summary">
- Binary operations and conversion.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/nixio.bit.html">nixio.bit</a></td>
-               <td class="summary">
- Bitfield operators and mainpulation functions.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/nixio.crypto.html">nixio.crypto</a></td>
-               <td class="summary">
- Cryptographical library.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/nixio.fs.html">nixio.fs</a></td>
-               <td class="summary">
- Low-level and high-level filesystem manipulation library.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" --> 
-</body>
-</html>
diff --git a/documentation/api/luadoc.css b/documentation/api/luadoc.css
deleted file mode 100644 (file)
index f9f9749..0000000
+++ /dev/null
@@ -1,285 +0,0 @@
-body { 
-    margin-left: 1em; 
-    margin-right: 1em; 
-    font-family: arial, helvetica, geneva, sans-serif;
-       background-color:#ffffff; margin:0px;
-}
-
-code {
-    font-family: "Andale Mono", monospace; 
-}
-
-tt {
-    font-family: "Andale Mono", monospace; 
-}
-
-body, td, th { font-size: 11pt; }
-
-h1, h2, h3, h4 { margin-left: 0em; }
-
-textarea, pre, tt { font-size:10pt; }
-body, td, th { color:#000000; }
-small { font-size:0.85em; }
-h1 { font-size:1.5em; }
-h2 { font-size:1.25em; }
-h3 { font-size:1.15em; }
-h4 { font-size:1.06em; }
-
-a:link { font-weight:bold; color: #004080; text-decoration: none; }
-a:visited { font-weight:bold; color: #006699; text-decoration: none; }
-a:link:hover { text-decoration:underline; }
-hr { color:#cccccc }
-img { border-width: 0px; }
-
-
-h3 { padding: 1em 0 0.5em; }
-
-p { margin-left: 1em; }
-
-p.name { 
-    font-family: "Andale Mono", monospace; 
-    padding-top: 1em;
-    margin-left: 0em; 
-}
-
-blockquote { margin-left: 3em; }
-
-pre.example {
-    background-color: rgb(245, 245, 245);
-    border-top-width: 1px;
-    border-right-width: 1px;
-    border-bottom-width: 1px;
-    border-left-width: 1px;
-    border-top-style: solid;
-    border-right-style: solid;
-    border-bottom-style: solid;
-    border-left-style: solid;
-    border-top-color: silver;
-    border-right-color: silver;
-    border-bottom-color: silver;
-    border-left-color: silver;
-    padding: 1em;
-    margin-left: 1em;
-    margin-right: 1em;
-    font-family: "Andale Mono", monospace; 
-    font-size: smaller;
-}
-
-
-hr { 
-    margin-left: 0em;
-       background: #00007f; 
-       border: 0px;
-       height: 1px;
-}
-
-ul { list-style-type: disc; }
-
-table.index { border: 1px #00007f; }
-table.index td { text-align: left; vertical-align: top; }
-table.index ul { padding-top: 0em; margin-top: 0em; }
-
-table {
-    border: 1px solid black;
-    border-collapse: collapse;
-    margin: 1em auto;
-}
-th {
-    border: 1px solid black;
-    padding: 0.5em;
-}
-td {
-    border: 1px solid black;
-    padding: 0.5em;
-}
-div.header, div.footer { margin-left: 0em; }
-
-#container
-{
-       margin-left: 1em;
-       margin-right: 1em;
-       background-color: #f0f0f0;
-}
-
-#product
-{
-       text-align: center;
-       border-bottom: 1px solid #cccccc;
-       background-color: #ffffff;
-}
-
-#product big {
-       font-size: 2em;
-}
-
-#product_logo
-{
-}
-
-#product_name
-{
-}
-
-#product_description
-{
-}
-
-#main
-{
-       background-color: #f0f0f0;
-       border-left: 2px solid #cccccc;
-}
-
-#navigation
-{
-       float: left;
-       width: 18em;
-       margin: 0;
-       vertical-align: top;
-       background-color: #f0f0f0;
-       overflow:visible;
-}
-
-#navigation h1 {
-       background-color:#e7e7e7;
-       font-size:1.1em;
-       color:#000000;
-       text-align:left;
-       margin:0px;
-       padding:0.2em;
-       border-top:1px solid #dddddd;
-       border-bottom:1px solid #dddddd;
-}
-
-#navigation ul
-{
-       font-size:1em;
-       list-style-type: none;
-       padding: 0;
-       margin: 1px;
-}
-
-#navigation li
-{
-       text-indent: -1em;
-       margin: 0em 0em 0em 0.5em;
-       display: block;
-       padding: 3px 0px 0px 12px;
-}
-
-#navigation li li a
-{
-       padding: 0px 3px 0px -1em;
-}
-
-#content
-{
-       margin-left: 18em;
-       padding: 1em;
-       border-left: 2px solid #cccccc;
-       border-right: 2px solid #cccccc;
-       background-color: #ffffff;
-}
-
-#about
-{
-       clear: both;
-       margin: 0;
-       padding: 5px;
-       border-top: 2px solid #cccccc;
-       background-color: #ffffff;
-}
-
-@media print {
-       body { 
-               font: 12pt "Times New Roman", "TimeNR", Times, serif;
-       }
-       a { font-weight:bold; color: #004080; text-decoration: underline; }
-       
-       #main\r  {\r              background-color: #ffffff;\r             border-left: 0px;\r      }\r      
-       #container\r     {\r              margin-left: 2%;\r               margin-right: 2%;\r              background-color: #ffffff;\r     }
-       
-       #content\r       {\r              margin-left: 0px;\r              padding: 1em;\r          border-left: 0px;\r              border-right: 0px;\r             background-color: #ffffff;\r     }
-       
-       #navigation\r    {\r              display: none;
-       }
-       pre.example {
-               font-family: "Andale Mono", monospace; 
-               font-size: 10pt;
-               page-break-inside: avoid;
-       }
-}
-
-table.module_list td
-{
-       border-width: 1px;
-       padding: 3px;
-       border-style: solid;
-       border-color: #cccccc;
-}
-table.module_list td.name { background-color: #f0f0f0; }
-table.module_list td.summary { width: 100%; }
-
-table.file_list
-{
-       border-width: 1px;
-       border-style: solid;
-       border-color: #cccccc;
-       border-collapse: collapse;
-}
-table.file_list td
-{
-       border-width: 1px;
-       padding: 3px;
-       border-style: solid;
-       border-color: #cccccc;
-}
-table.file_list td.name { background-color: #f0f0f0; }
-table.file_list td.summary { width: 100%; }
-
-
-table.function_list
-{
-       border-width: 1px;
-       border-style: solid;
-       border-color: #cccccc;
-       border-collapse: collapse;
-}
-table.function_list td
-{
-       border-width: 1px;
-       padding: 3px;
-       border-style: solid;
-       border-color: #cccccc;
-}
-table.function_list td.name { background-color: #f0f0f0; }
-table.function_list td.summary { width: 100%; }
-
-
-table.table_list
-{
-       border-width: 1px;
-       border-style: solid;
-       border-color: #cccccc;
-       border-collapse: collapse;
-}
-table.table_list td
-{
-       border-width: 1px;
-       padding: 3px;
-       border-style: solid;
-       border-color: #cccccc;
-}
-table.table_list td.name { background-color: #f0f0f0; }
-table.table_list td.summary { width: 100%; }
-
-dl.function dt {border-top: 1px solid #ccc; padding-top: 1em;}
-dl.function dd {padding: 0.5em 0;}
-dl.function h3 {margin: 0; font-size: medium;}
-
-dl.table dt {border-top: 1px solid #ccc; padding-top: 1em;}
-dl.table dd {padding-bottom: 1em;}
-dl.table h3 {padding: 0; margin: 0; font-size: medium;}
-
-#TODO: make module_list, file_list, function_list, table_list inherit from a list
-
diff --git a/documentation/api/modules/luci.dispatcher.html b/documentation/api/modules/luci.dispatcher.html
deleted file mode 100644 (file)
index ea33a5c..0000000
+++ /dev/null
@@ -1,1145 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li><strong>luci.dispatcher</strong></li>
-       
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>luci.dispatcher</code></h1>
-
-<p></p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#_">_</a>&nbsp;()</td>
-       <td class="summary">
-No-op function used to mark translation entries for menu labels.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#alias">alias</a>&nbsp;(...)</td>
-       <td class="summary">
-Create a redirect to another dispatching node.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#arcombine">arcombine</a>&nbsp;(trg1, trg2)</td>
-       <td class="summary">
-Create a combined dispatching target for non argv and argv requests.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#assign">assign</a>&nbsp;(path, clone, title, order)</td>
-       <td class="summary">
-Clone a node of the dispatching tree to another position.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#build_url">build_url</a>&nbsp;(...)</td>
-       <td class="summary">
-Build the URL relative to the server webroot from given virtual path.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#call">call</a>&nbsp;(name, ...)</td>
-       <td class="summary">
-Create a function-call dispatching target.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cbi">cbi</a>&nbsp;(model)</td>
-       <td class="summary">
-Create a CBI model dispatching target.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#createindex">createindex</a>&nbsp;()</td>
-       <td class="summary">
-Generate the dispatching index using the native file-cache based strategy.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#createtree">createtree</a>&nbsp;()</td>
-       <td class="summary">
-Create the dispatching tree from the index.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#dispatch">dispatch</a>&nbsp;(request)</td>
-       <td class="summary">
-Dispatches a LuCI virtual path.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#entry">entry</a>&nbsp;(path, target, title, order)</td>
-       <td class="summary">
-Create a new dispatching node and define common parameters.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#error404">error404</a>&nbsp;(message)</td>
-       <td class="summary">
-Send a 404 error code and render the "error404" template if available.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#error500">error500</a>&nbsp;(message)</td>
-       <td class="summary">
-Send a 500 error code and render the "error500" template if available.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#firstchild">firstchild</a>&nbsp;()</td>
-       <td class="summary">
-Alias the first (lowest order) page automatically 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#form">form</a>&nbsp;(model)</td>
-       <td class="summary">
-Create a CBI form model dispatching target.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#get">get</a>&nbsp;(...)</td>
-       <td class="summary">
-Fetch or create a dispatching node without setting the target module or 
-enabling the node.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#httpdispatch">httpdispatch</a>&nbsp;(request)</td>
-       <td class="summary">
-Dispatch an HTTP request.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#lookup">lookup</a>&nbsp;(...)</td>
-       <td class="summary">
-Lookup node in dispatching tree.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#node">node</a>&nbsp;(...)</td>
-       <td class="summary">
-Fetch or create a new dispatching node.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#node_childs">node_childs</a>&nbsp;(node)</td>
-       <td class="summary">
-Return a sorted table of visible children within a given node 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#node_visible">node_visible</a>&nbsp;(node)</td>
-       <td class="summary">
-Check whether a dispatch node shall be visible 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#rewrite">rewrite</a>&nbsp;(n, ...)</td>
-       <td class="summary">
-Rewrite the first x path values of the request.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#template">template</a>&nbsp;(name)</td>
-       <td class="summary">
-Create a template render dispatching target.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#translate">translate</a>&nbsp;(text)</td>
-       <td class="summary">
-Access the luci.i18n translate() api.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="_"></a><strong>_</strong>&nbsp;()</dt>
-<dd>
-
-No-op function used to mark translation entries for menu labels. 
-This function does not actually translate the given argument but 
-is used by build/i18n-scan.pl to find translatable entries. 
-
-
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="alias"></a><strong>alias</strong>&nbsp;(...)</dt>
-<dd>
-
-Create a redirect to another dispatching node. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         ...: Virtual path destination
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="arcombine"></a><strong>arcombine</strong>&nbsp;(trg1, trg2)</dt>
-<dd>
-
-Create a combined dispatching target for non argv and argv requests. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         trg1: Overview Target
-       </li>
-       
-       <li>
-         trg2: Detail Target
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="assign"></a><strong>assign</strong>&nbsp;(path, clone, title, order)</dt>
-<dd>
-
-Clone a node of the dispatching tree to another position. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Virtual path destination
-       </li>
-       
-       <li>
-         clone: Virtual path source
-       </li>
-       
-       <li>
-         title: Destination node title (optional)
-       </li>
-       
-       <li>
-         order: Destination node order value (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Dispatching tree node
-
-
-
-</dd>
-
-
-
-
-<dt><a name="build_url"></a><strong>build_url</strong>&nbsp;(...)</dt>
-<dd>
-
-Build the URL relative to the server webroot from given virtual path. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         ...: Virtual path
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Relative URL
-
-
-
-</dd>
-
-
-
-
-<dt><a name="call"></a><strong>call</strong>&nbsp;(name, ...)</dt>
-<dd>
-
-Create a function-call dispatching target. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         name: Target function of local controller
-       </li>
-       
-       <li>
-         ...: Additional parameters passed to the function
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cbi"></a><strong>cbi</strong>&nbsp;(model)</dt>
-<dd>
-
-Create a CBI model dispatching target. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         model: CBI model to be rendered
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="createindex"></a><strong>createindex</strong>&nbsp;()</dt>
-<dd>
-
-Generate the dispatching index using the native file-cache based strategy. 
-
-
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="createtree"></a><strong>createtree</strong>&nbsp;()</dt>
-<dd>
-
-Create the dispatching tree from the index. 
-Build the index before if it does not exist yet. 
-
-
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="dispatch"></a><strong>dispatch</strong>&nbsp;(request)</dt>
-<dd>
-
-Dispatches a LuCI virtual path. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         request: Virtual path
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="entry"></a><strong>entry</strong>&nbsp;(path, target, title, order)</dt>
-<dd>
-
-Create a new dispatching node and define common parameters. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Virtual path
-       </li>
-       
-       <li>
-         target: Target function to call when dispatched.
-       </li>
-       
-       <li>
-         title: Destination node title
-       </li>
-       
-       <li>
-         order: Destination node order value (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Dispatching tree node
-
-
-
-</dd>
-
-
-
-
-<dt><a name="error404"></a><strong>error404</strong>&nbsp;(message)</dt>
-<dd>
-
-Send a 404 error code and render the "error404" template if available. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         message: Custom error message (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-false
-
-
-
-</dd>
-
-
-
-
-<dt><a name="error500"></a><strong>error500</strong>&nbsp;(message)</dt>
-<dd>
-
-Send a 500 error code and render the "error500" template if available. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         message: Custom error message (optional)#
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-false
-
-
-
-</dd>
-
-
-
-
-<dt><a name="firstchild"></a><strong>firstchild</strong>&nbsp;()</dt>
-<dd>
-
-Alias the first (lowest order) page automatically 
-
-
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="form"></a><strong>form</strong>&nbsp;(model)</dt>
-<dd>
-
-Create a CBI form model dispatching target. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         model: CBI form model tpo be rendered
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="get"></a><strong>get</strong>&nbsp;(...)</dt>
-<dd>
-
-Fetch or create a dispatching node without setting the target module or 
-enabling the node. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         ...: Virtual path
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Dispatching tree node
-
-
-
-</dd>
-
-
-
-
-<dt><a name="httpdispatch"></a><strong>httpdispatch</strong>&nbsp;(request)</dt>
-<dd>
-
-Dispatch an HTTP request. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         request: LuCI HTTP Request object
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="lookup"></a><strong>lookup</strong>&nbsp;(...)</dt>
-<dd>
-
-Lookup node in dispatching tree. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         ...: Virtual path
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Node object, canonical url or nil if the path was not found.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="node"></a><strong>node</strong>&nbsp;(...)</dt>
-<dd>
-
-Fetch or create a new dispatching node. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         ...: Virtual path
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Dispatching tree node
-
-
-
-</dd>
-
-
-
-
-<dt><a name="node_childs"></a><strong>node_childs</strong>&nbsp;(node)</dt>
-<dd>
-
-Return a sorted table of visible children within a given node 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         node: Dispatch node
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Ordered table of child node names
-
-
-
-</dd>
-
-
-
-
-<dt><a name="node_visible"></a><strong>node_visible</strong>&nbsp;(node)</dt>
-<dd>
-
-Check whether a dispatch node shall be visible 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         node: Dispatch node
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean indicating whether the node should be visible
-
-
-
-</dd>
-
-
-
-
-<dt><a name="rewrite"></a><strong>rewrite</strong>&nbsp;(n, ...)</dt>
-<dd>
-
-Rewrite the first x path values of the request. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         n: Number of path values to replace
-       </li>
-       
-       <li>
-         ...: Virtual path to replace removed path values with
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="template"></a><strong>template</strong>&nbsp;(name)</dt>
-<dd>
-
-Create a template render dispatching target. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         name: Template to be rendered
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="translate"></a><strong>translate</strong>&nbsp;(text)</dt>
-<dd>
-
-Access the luci.i18n translate() api. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         text: Text to translate
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/luci.http.conditionals.html b/documentation/api/modules/luci.http.conditionals.html
deleted file mode 100644 (file)
index 8c940bd..0000000
+++ /dev/null
@@ -1,552 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li><strong>luci.http.conditionals</strong></li>
-       
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>luci.http.conditionals</code></h1>
-
-<p></p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#if_match">if_match</a>&nbsp;(req, stat)</td>
-       <td class="summary">
-14.24 / If-Match 
-Test whether the given message object contains an "If-Match" header and 
-compare it against the given stat object.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#if_modified_since">if_modified_since</a>&nbsp;(req, stat)</td>
-       <td class="summary">
-14.25 / If-Modified-Since 
-Test whether the given message object contains an "If-Modified-Since" header 
-and compare it against the given stat object.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#if_none_match">if_none_match</a>&nbsp;(req, stat)</td>
-       <td class="summary">
-14.26 / If-None-Match 
-Test whether the given message object contains an "If-None-Match" header and 
-compare it against the given stat object.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#if_range">if_range</a>&nbsp;(req, stat)</td>
-       <td class="summary">
-14.27 / If-Range 
-The If-Range header is currently not implemented due to the lack of general 
-byte range stuff in luci.http.protocol .</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#if_unmodified_since">if_unmodified_since</a>&nbsp;(req, stat)</td>
-       <td class="summary">
-14.28 / If-Unmodified-Since 
-Test whether the given message object contains an "If-Unmodified-Since" 
-header and compare it against the given stat object.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#mk_etag">mk_etag</a>&nbsp;(stat)</td>
-       <td class="summary">
-Implement 14.19 / ETag.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="if_match"></a><strong>if_match</strong>&nbsp;(req, stat)</dt>
-<dd>
-
-14.24 / If-Match 
-Test whether the given message object contains an "If-Match" header and 
-compare it against the given stat object.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         req: HTTP request message object
-       </li>
-       
-       <li>
-         stat: A file.stat object
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Boolean indicating whether the precondition is ok
-       
-       <li>Alternative status code if the precondition failed
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="if_modified_since"></a><strong>if_modified_since</strong>&nbsp;(req, stat)</dt>
-<dd>
-
-14.25 / If-Modified-Since 
-Test whether the given message object contains an "If-Modified-Since" header 
-and compare it against the given stat object.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         req: HTTP request message object
-       </li>
-       
-       <li>
-         stat: A file.stat object
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Boolean indicating whether the precondition is ok
-       
-       <li>Alternative status code if the precondition failed
-       
-       <li>Table containing extra HTTP headers if the precondition failed
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="if_none_match"></a><strong>if_none_match</strong>&nbsp;(req, stat)</dt>
-<dd>
-
-14.26 / If-None-Match 
-Test whether the given message object contains an "If-None-Match" header and 
-compare it against the given stat object.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         req: HTTP request message object
-       </li>
-       
-       <li>
-         stat: A file.stat object
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Boolean indicating whether the precondition is ok
-       
-       <li>Alternative status code if the precondition failed
-       
-       <li>Table containing extra HTTP headers if the precondition failed
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="if_range"></a><strong>if_range</strong>&nbsp;(req, stat)</dt>
-<dd>
-
-14.27 / If-Range 
-The If-Range header is currently not implemented due to the lack of general 
-byte range stuff in luci.http.protocol . This function will always return 
-false, 412 to indicate a failed precondition.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         req: HTTP request message object
-       </li>
-       
-       <li>
-         stat: A file.stat object
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Boolean indicating whether the precondition is ok
-       
-       <li>Alternative status code if the precondition failed
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="if_unmodified_since"></a><strong>if_unmodified_since</strong>&nbsp;(req, stat)</dt>
-<dd>
-
-14.28 / If-Unmodified-Since 
-Test whether the given message object contains an "If-Unmodified-Since" 
-header and compare it against the given stat object.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         req: HTTP request message object
-       </li>
-       
-       <li>
-         stat: A file.stat object
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Boolean indicating whether the precondition is ok
-       
-       <li>Alternative status code if the precondition failed
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="mk_etag"></a><strong>mk_etag</strong>&nbsp;(stat)</dt>
-<dd>
-
-Implement 14.19 / ETag. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         stat: A file.stat structure
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing the generated tag suitable for ETag headers
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/luci.http.date.html b/documentation/api/modules/luci.http.date.html
deleted file mode 100644 (file)
index 1ec5beb..0000000
+++ /dev/null
@@ -1,406 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li><strong>luci.http.date</strong></li>
-       
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>luci.http.date</code></h1>
-
-<p></p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#compare">compare</a>&nbsp;(d1, d2)</td>
-       <td class="summary">
-Compare two dates which can either be unix epoch times or HTTP date strings.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#to_http">to_http</a>&nbsp;(time)</td>
-       <td class="summary">
-Convert the given unix epoch time to valid HTTP date string.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#to_unix">to_unix</a>&nbsp;(data)</td>
-       <td class="summary">
-Parse given HTTP date string and convert it to unix epoch time.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#tz_offset">tz_offset</a>&nbsp;(tz)</td>
-       <td class="summary">
-Return the time offset in seconds between the UTC and given time zone.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="compare"></a><strong>compare</strong>&nbsp;(d1, d2)</dt>
-<dd>
-
-Compare two dates which can either be unix epoch times or HTTP date strings. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         d1: The first date or epoch time to compare
-       </li>
-       
-       <li>
-         d2: The first date or epoch time to compare
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>-1  -  if d1 is lower then d2
-       
-       <li>0   -  if both dates are equal
-       
-       <li>1   -  if d1 is higher then d2
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="to_http"></a><strong>to_http</strong>&nbsp;(time)</dt>
-<dd>
-
-Convert the given unix epoch time to valid HTTP date string. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         time: Unix epoch time
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing the formatted date
-
-
-
-</dd>
-
-
-
-
-<dt><a name="to_unix"></a><strong>to_unix</strong>&nbsp;(data)</dt>
-<dd>
-
-Parse given HTTP date string and convert it to unix epoch time. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         data: String containing the date
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Unix epoch time
-
-
-
-</dd>
-
-
-
-
-<dt><a name="tz_offset"></a><strong>tz_offset</strong>&nbsp;(tz)</dt>
-<dd>
-
-Return the time offset in seconds between the UTC and given time zone. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         tz: Symbolic or numeric timezone specifier
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Time offset to UTC in seconds
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/luci.http.html b/documentation/api/modules/luci.http.html
deleted file mode 100644 (file)
index 4731727..0000000
+++ /dev/null
@@ -1,1267 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li><strong>luci.http</strong></li>
-       
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>luci.http</code></h1>
-
-<p></p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#build_querystring">build_querystring</a>&nbsp;(table)</td>
-       <td class="summary">
-Create a querystring out of a table of key - value pairs.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#close">close</a>&nbsp;()</td>
-       <td class="summary">
-Close the HTTP-Connection.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#content">content</a>&nbsp;()</td>
-       <td class="summary">
-Return the request content if the request was of unknown type.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#formvalue">formvalue</a>&nbsp;(name, noparse)</td>
-       <td class="summary">
-Get a certain HTTP input value or a table of all input values.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#formvaluetable">formvaluetable</a>&nbsp;(prefix)</td>
-       <td class="summary">
-Get a table of all HTTP input values with a certain prefix.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#getcookie">getcookie</a>&nbsp;(name)</td>
-       <td class="summary">
-Get the value of a certain HTTP-Cookie.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#getenv">getenv</a>&nbsp;(name)</td>
-       <td class="summary">
-Get the value of a certain HTTP environment variable 
-or the environment table itself.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#header">header</a>&nbsp;(key, value)</td>
-       <td class="summary">
-Send a HTTP-Header.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#mimedecode_message_body">mimedecode_message_body</a>&nbsp;(src, msg, filecb)</td>
-       <td class="summary">
-Decode a mime encoded http message body with multipart/form-data Content-Type.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#parse_message_body">parse_message_body</a>&nbsp;(src, msg, filecb)</td>
-       <td class="summary">
-Try to extract and decode a http message body from the given ltn12 source.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#prepare_content">prepare_content</a>&nbsp;(mime)</td>
-       <td class="summary">
-Set the mime type of following content data.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#redirect">redirect</a>&nbsp;(url)</td>
-       <td class="summary">
-Redirects the client to a new URL and closes the connection.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#setfilehandler">setfilehandler</a>&nbsp;(callback)</td>
-       <td class="summary">
-Set a handler function for incoming user file uploads.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#source">source</a>&nbsp;()</td>
-       <td class="summary">
-Get the RAW HTTP input source 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#splice">splice</a>&nbsp;(fp, size)</td>
-       <td class="summary">
-Splice data from a filedescriptor to the client.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#status">status</a>&nbsp;(code, message)</td>
-       <td class="summary">
-Set the HTTP status code and status message.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#urldecode">urldecode</a>&nbsp;(str, no_plus)</td>
-       <td class="summary">
-Return the URL-decoded equivalent of a string.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#urldecode_message_body">urldecode_message_body</a>&nbsp;(src, msg)</td>
-       <td class="summary">
-Decode an urlencoded http message body with application/x-www-urlencoded 
-Content-Type.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#urldecode_params">urldecode_params</a>&nbsp;(url, tbl)</td>
-       <td class="summary">
-Extract and split urlencoded data pairs, separated bei either "&" or ";" 
-from given url or string.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#urlencode">urlencode</a>&nbsp;(str)</td>
-       <td class="summary">
-Return the URL-encoded equivalent of a string.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#urlencode_params">urlencode_params</a>&nbsp;(tbl)</td>
-       <td class="summary">
-Encode each key-value-pair in given table to x-www-urlencoded format, 
-separated by "&".</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#write">write</a>&nbsp;(content, src_err)</td>
-       <td class="summary">
-Send a chunk of content data to the client.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#write_json">write_json</a>&nbsp;(data)</td>
-       <td class="summary">
-Send the given data as JSON encoded string.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="build_querystring"></a><strong>build_querystring</strong>&nbsp;(table)</dt>
-<dd>
-
-Create a querystring out of a table of key - value pairs. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         table: Query string source table
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Encoded HTTP query string
-
-
-
-</dd>
-
-
-
-
-<dt><a name="close"></a><strong>close</strong>&nbsp;()</dt>
-<dd>
-
-Close the HTTP-Connection. 
-
-
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="content"></a><strong>content</strong>&nbsp;()</dt>
-<dd>
-
-Return the request content if the request was of unknown type. 
-
-
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>HTTP request body
-       
-       <li>HTTP request body length
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="formvalue"></a><strong>formvalue</strong>&nbsp;(name, noparse)</dt>
-<dd>
-
-Get a certain HTTP input value or a table of all input values. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         name: Name of the GET or POST variable to fetch
-       </li>
-       
-       <li>
-         noparse: Don't parse POST data before getting the value
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-HTTP input value or table of all input value
-
-
-
-</dd>
-
-
-
-
-<dt><a name="formvaluetable"></a><strong>formvaluetable</strong>&nbsp;(prefix)</dt>
-<dd>
-
-Get a table of all HTTP input values with a certain prefix. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         prefix: Prefix
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table of all HTTP input values with given prefix
-
-
-
-</dd>
-
-
-
-
-<dt><a name="getcookie"></a><strong>getcookie</strong>&nbsp;(name)</dt>
-<dd>
-
-Get the value of a certain HTTP-Cookie. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         name: Cookie Name
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing cookie data
-
-
-
-</dd>
-
-
-
-
-<dt><a name="getenv"></a><strong>getenv</strong>&nbsp;(name)</dt>
-<dd>
-
-Get the value of a certain HTTP environment variable 
-or the environment table itself. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         name: Environment variable
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-HTTP environment value or environment table
-
-
-
-</dd>
-
-
-
-
-<dt><a name="header"></a><strong>header</strong>&nbsp;(key, value)</dt>
-<dd>
-
-Send a HTTP-Header. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         key: Header key
-       </li>
-       
-       <li>
-         value: Header value
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="mimedecode_message_body"></a><strong>mimedecode_message_body</strong>&nbsp;(src, msg, filecb)</dt>
-<dd>
-
-Decode a mime encoded http message body with multipart/form-data Content-Type. 
-Stores all extracted data associated with its parameter name 
-in the params table within the given message object. Multiple parameter 
-values are stored as tables, ordinary ones as strings. 
-If an optional file callback function is given then it is fed with the 
-file contents chunk by chunk and only the extracted file name is stored 
-within the params table. The callback function will be called subsequently 
-with three arguments: 
- o Table containing decoded (name, file) and raw (headers) mime header data 
- o String value containing a chunk of the file data 
- o Boolean which indicates whether the current chunk is the last one (eof) 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         src: Ltn12 source function
-       </li>
-       
-       <li>
-         msg: HTTP message object
-       </li>
-       
-       <li>
-         filecb: File callback function (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Value indicating successful operation (not nil means "ok")
-       
-       <li>String containing the error if unsuccessful
-       
-</ol>
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="">
-               parse_message_header
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="parse_message_body"></a><strong>parse_message_body</strong>&nbsp;(src, msg, filecb)</dt>
-<dd>
-
-Try to extract and decode a http message body from the given ltn12 source. 
-This function will examine the Content-Type within the given message object 
-to select the appropriate content decoder. 
-Currently the application/x-www-urlencoded and application/form-data 
-mime types are supported. If the encountered content encoding can't be 
-handled then the whole message body will be stored unaltered as "content" 
-property within the given message object. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         src: Ltn12 source function
-       </li>
-       
-       <li>
-         msg: HTTP message object
-       </li>
-       
-       <li>
-         filecb: File data callback (optional, see mimedecode_message_body())
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Value indicating successful operation (not nil means "ok")
-       
-       <li>String containing the error if unsuccessful
-       
-</ol>
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="">
-               parse_message_header
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="prepare_content"></a><strong>prepare_content</strong>&nbsp;(mime)</dt>
-<dd>
-
-Set the mime type of following content data. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         mime: Mimetype of following content
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="redirect"></a><strong>redirect</strong>&nbsp;(url)</dt>
-<dd>
-
-Redirects the client to a new URL and closes the connection. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         url: Target URL
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="setfilehandler"></a><strong>setfilehandler</strong>&nbsp;(callback)</dt>
-<dd>
-
-Set a handler function for incoming user file uploads. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         callback: Handler function
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="source"></a><strong>source</strong>&nbsp;()</dt>
-<dd>
-
-Get the RAW HTTP input source 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-HTTP LTN12 source
-
-
-
-</dd>
-
-
-
-
-<dt><a name="splice"></a><strong>splice</strong>&nbsp;(fp, size)</dt>
-<dd>
-
-Splice data from a filedescriptor to the client. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         fp: File descriptor
-       </li>
-       
-       <li>
-         size: Bytes to splice (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="status"></a><strong>status</strong>&nbsp;(code, message)</dt>
-<dd>
-
-Set the HTTP status code and status message. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         code: Status code
-       </li>
-       
-       <li>
-         message: Status message
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="urldecode"></a><strong>urldecode</strong>&nbsp;(str, no_plus)</dt>
-<dd>
-
-Return the URL-decoded equivalent of a string. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         str: URL-encoded string
-       </li>
-       
-       <li>
-         no_plus: Don't decode + to " "
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-URL-decoded string
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#urlencode">
-               urlencode
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="urldecode_message_body"></a><strong>urldecode_message_body</strong>&nbsp;(src, msg)</dt>
-<dd>
-
-Decode an urlencoded http message body with application/x-www-urlencoded 
-Content-Type. 
-Stores all extracted data associated with its parameter name in the params 
-table within the given message object. Multiple parameter values are stored 
-as tables, ordinary ones as strings. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         src: Ltn12 source function
-       </li>
-       
-       <li>
-         msg: HTTP message object
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Value indicating successful operation (not nil means "ok")
-       
-       <li>String containing the error if unsuccessful
-       
-</ol>
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="">
-               parse_message_header
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="urldecode_params"></a><strong>urldecode_params</strong>&nbsp;(url, tbl)</dt>
-<dd>
-
-Extract and split urlencoded data pairs, separated bei either "&" or ";" 
-from given url or string. Returns a table with urldecoded values. 
-Simple parameters are stored as string values associated with the parameter 
-name within the table. Parameters with multiple values are stored as array 
-containing the corresponding values. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         url: The url or string which contains x-www-urlencoded form data
-       </li>
-       
-       <li>
-         tbl: Use the given table for storing values (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing the urldecoded parameters
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#urlencode_params">
-               urlencode_params
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="urlencode"></a><strong>urlencode</strong>&nbsp;(str)</dt>
-<dd>
-
-Return the URL-encoded equivalent of a string. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         str: Source string
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-URL-encoded string
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#urldecode">
-               urldecode
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="urlencode_params"></a><strong>urlencode_params</strong>&nbsp;(tbl)</dt>
-<dd>
-
-Encode each key-value-pair in given table to x-www-urlencoded format, 
-separated by "&". 
-Tables are encoded as parameters with multiple values by repeating the 
-parameter name with each value. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         tbl: Table with the values
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing encoded values
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#urldecode_params">
-               urldecode_params
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="write"></a><strong>write</strong>&nbsp;(content, src_err)</dt>
-<dd>
-
-Send a chunk of content data to the client. 
-This function is as a valid LTN12 sink. 
-If the content chunk is nil this function will automatically invoke close. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         content: Content chunk
-       </li>
-       
-       <li>
-         src_err: Error object from source (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#close">
-               close
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="write_json"></a><strong>write_json</strong>&nbsp;(data)</dt>
-<dd>
-
-Send the given data as JSON encoded string. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         data: Data to send
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/luci.http.mime.html b/documentation/api/modules/luci.http.mime.html
deleted file mode 100644 (file)
index 85eaf53..0000000
+++ /dev/null
@@ -1,322 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li><strong>luci.http.mime</strong></li>
-       
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>luci.http.mime</code></h1>
-
-<p></p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#to_ext">to_ext</a>&nbsp;(mimetype)</td>
-       <td class="summary">
-Return corresponding extension for a given mime type or nil if the 
-given mime-type is unknown.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#to_mime">to_mime</a>&nbsp;(filename)</td>
-       <td class="summary">
-Extract extension from a filename and return corresponding mime-type or 
-"application/octet-stream" if the extension is unknown.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="to_ext"></a><strong>to_ext</strong>&nbsp;(mimetype)</dt>
-<dd>
-
-Return corresponding extension for a given mime type or nil if the 
-given mime-type is unknown.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         mimetype: The mimetype to retrieve the extension from
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String with the extension or nil for unknown type
-
-
-
-</dd>
-
-
-
-
-<dt><a name="to_mime"></a><strong>to_mime</strong>&nbsp;(filename)</dt>
-<dd>
-
-Extract extension from a filename and return corresponding mime-type or 
-"application/octet-stream" if the extension is unknown.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         filename: The filename for which the mime type is guessed
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containign the determined mime type
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/luci.i18n.html b/documentation/api/modules/luci.i18n.html
deleted file mode 100644 (file)
index 0f315be..0000000
+++ /dev/null
@@ -1,391 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li><strong>luci.i18n</strong></li>
-       
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>luci.i18n</code></h1>
-
-<p></p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#dump">dump</a>&nbsp;()</td>
-       <td class="summary">
-Return all currently loaded translation strings as a key-value table.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#setlanguage">setlanguage</a>&nbsp;(lang)</td>
-       <td class="summary">
-Set the context default translation language.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#translate">translate</a>&nbsp;(key)</td>
-       <td class="summary">
-Return the translated value for a specific translation key.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#translatef">translatef</a>&nbsp;(key, ...)</td>
-       <td class="summary">
-Return the translated value for a specific translation key and use it as sprintf pattern.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="dump"></a><strong>dump</strong>&nbsp;()</dt>
-<dd>
-
-Return all currently loaded translation strings as a key-value table. The key is the 
-hexadecimal representation of the translation key while the value is the translated 
-text content. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Key-value translation string table.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="setlanguage"></a><strong>setlanguage</strong>&nbsp;(lang)</dt>
-<dd>
-
-Set the context default translation language. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         lang: An IETF/BCP 47 language tag or ISO3166 country code, e.g. "en-US" or "de"
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-The effective loaded language, e.g. "en" for "en-US" - or nil on failure
-
-
-
-</dd>
-
-
-
-
-<dt><a name="translate"></a><strong>translate</strong>&nbsp;(key)</dt>
-<dd>
-
-Return the translated value for a specific translation key. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         key: Default translation text
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Translated string
-
-
-
-</dd>
-
-
-
-
-<dt><a name="translatef"></a><strong>translatef</strong>&nbsp;(key, ...)</dt>
-<dd>
-
-Return the translated value for a specific translation key and use it as sprintf pattern. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         key: Default translation text
-       </li>
-       
-       <li>
-         ...: Format parameters
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Translated and formatted string
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/luci.ip.cidr.html b/documentation/api/modules/luci.ip.cidr.html
deleted file mode 100644 (file)
index ae6c61d..0000000
+++ /dev/null
@@ -1,1511 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li><strong>luci.ip.cidr</strong></li>
-       
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Object Instance <code>luci.ip.cidr</code></h1>
-
-<p>
- IP CIDR Object. 
- Represents an IPv4 or IPv6 address range.</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.is4">cidr:is4</a>&nbsp;()</td>
-       <td class="summary">
-Checks whether the CIDR instance is an IPv4 address range 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.is4rfc1918">cidr:is4rfc1918</a>&nbsp;()</td>
-       <td class="summary">
-Checks whether the CIDR instance is within the private RFC1918 address space 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.is4linklocal">cidr:is4linklocal</a>&nbsp;()</td>
-       <td class="summary">
-Checks whether the CIDR instance is an IPv4 link local (Zeroconf) address 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.is6">cidr:is6</a>&nbsp;()</td>
-       <td class="summary">
-Checks whether the CIDR instance is an IPv6 address range 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.is6linklocal">cidr:is6linklocal</a>&nbsp;()</td>
-       <td class="summary">
-Checks whether the CIDR instance is an IPv6 link local address 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.is6mapped4">cidr:is6mapped4</a>&nbsp;()</td>
-       <td class="summary">
-Checks whether the CIDR instance is an IPv6 mapped IPv4 address 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.ismac">cidr:ismac</a>&nbsp;()</td>
-       <td class="summary">
-Checks whether the CIDR instance is an ethernet MAC address range 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.ismaclocal">cidr:ismaclocal</a>&nbsp;()</td>
-       <td class="summary">
-Checks whether the CIDR instance is a locally administered (LAA) MAC address 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.ismacmcast">cidr:ismacmcast</a>&nbsp;()</td>
-       <td class="summary">
-Checks whether the CIDR instance is a multicast MAC address 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.lower">cidr:lower</a>&nbsp;(addr)</td>
-       <td class="summary">
-Checks whether this CIDR instance is lower than the given argument.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.higher">cidr:higher</a>&nbsp;(addr)</td>
-       <td class="summary">
-Checks whether this CIDR instance is higher than the given argument.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.equal">cidr:equal</a>&nbsp;(addr)</td>
-       <td class="summary">
-Checks whether this CIDR instance is equal to the given argument.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.prefix">cidr:prefix</a>&nbsp;(mask)</td>
-       <td class="summary">
-Get or set prefix size of CIDR instance.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.network">cidr:network</a>&nbsp;(mask)</td>
-       <td class="summary">
-Derive network address of CIDR instance.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.host">cidr:host</a>&nbsp;()</td>
-       <td class="summary">
-Derive host address of CIDR instance.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.mask">cidr:mask</a>&nbsp;(mask)</td>
-       <td class="summary">
-Derive netmask of CIDR instance.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.broadcast">cidr:broadcast</a>&nbsp;(mask)</td>
-       <td class="summary">
-Derive broadcast address of CIDR instance.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.mapped4">cidr:mapped4</a>&nbsp;()</td>
-       <td class="summary">
-Derive mapped IPv4 address of CIDR instance.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.tomac">cidr:tomac</a>&nbsp;()</td>
-       <td class="summary">
-Derive MAC address of IPv6 link local CIDR instance.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.tolinklocal">cidr:tolinklocal</a>&nbsp;()</td>
-       <td class="summary">
-Derive IPv6 link local address from MAC address CIDR instance.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.contains">cidr:contains</a>&nbsp;(addr)</td>
-       <td class="summary">
-Test whether CIDR contains given range.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.add">cidr:add</a>&nbsp;(amount, inplace)</td>
-       <td class="summary">
-Add given amount to CIDR instance.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.sub">cidr:sub</a>&nbsp;(amount, inplace)</td>
-       <td class="summary">
-Subtract given amount from CIDR instance.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.minhost">cidr:minhost</a>&nbsp;()</td>
-       <td class="summary">
-Calculate the lowest possible host address within this CIDR instance.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.maxhost">cidr:maxhost</a>&nbsp;()</td>
-       <td class="summary">
-Calculate the highest possible host address within this CIDR instance.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.string">cidr:string</a>&nbsp;()</td>
-       <td class="summary">
-Convert CIDR instance into string representation.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="cidr.is4"></a><strong>cidr:is4</strong>&nbsp;()</dt>
-<dd>
-
-Checks whether the CIDR instance is an IPv4 address range 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-<code>true</code> if the CIDR is an IPv4 range, else <code>false</code>
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#cidr.is6">
-               cidr:is6
-       </a>
-       
-       <li><a href="#cidr.ismac">
-               cidr:ismac
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="cidr.is4rfc1918"></a><strong>cidr:is4rfc1918</strong>&nbsp;()</dt>
-<dd>
-
-Checks whether the CIDR instance is within the private RFC1918 address space 
-
-
-
-
-
-
-<h3>Usage:</h3>
-<pre>local addr = luci.ip.new("192.168.45.2/24") 
-if addr:is4rfc1918() then 
-       print("Is a private address") 
-end</pre>
-
-
-
-<h3>Return value:</h3>
-<code>true</code> if the entire range of this CIDR lies within one of 
-       the ranges <code>10.0.0.0-10.255.255.255</code>, 
-       <code>172.16.0.0-172.31.0.0</code> or 
-       <code>192.168.0.0-192.168.255.255</code>, else <code>false</code>.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.is4linklocal"></a><strong>cidr:is4linklocal</strong>&nbsp;()</dt>
-<dd>
-
-Checks whether the CIDR instance is an IPv4 link local (Zeroconf) address 
-
-
-
-
-
-
-<h3>Usage:</h3>
-<pre>local addr = luci.ip.new("169.254.34.125") 
-if addr:is4linklocal() then 
-       print("Is a zeroconf address") 
-end</pre>
-
-
-
-<h3>Return value:</h3>
-<code>true</code> if the entire range of this CIDR lies within the range 
-       the range <code>169.254.0.0-169.254.255.255</code>, else <code>false</code>.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.is6"></a><strong>cidr:is6</strong>&nbsp;()</dt>
-<dd>
-
-Checks whether the CIDR instance is an IPv6 address range 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-<code>true</code> if the CIDR is an IPv6 range, else <code>false</code>
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#cidr.is4">
-               cidr:is4
-       </a>
-       
-       <li><a href="#cidr.ismac">
-               cidr:ismac
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="cidr.is6linklocal"></a><strong>cidr:is6linklocal</strong>&nbsp;()</dt>
-<dd>
-
-Checks whether the CIDR instance is an IPv6 link local address 
-
-
-
-
-
-
-<h3>Usage:</h3>
-<pre>local addr = luci.ip.new("fe92:53a:3216:af01:221:63ff:fe75:aa17/64") 
-if addr:is6linklocal() then 
-       print("Is a linklocal address") 
-end</pre>
-
-
-
-<h3>Return value:</h3>
-<code>true</code> if the entire range of this CIDR lies within the range 
-       the <code>fe80::/10</code> range, else <code>false</code>.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.is6mapped4"></a><strong>cidr:is6mapped4</strong>&nbsp;()</dt>
-<dd>
-
-Checks whether the CIDR instance is an IPv6 mapped IPv4 address 
-
-
-
-
-
-
-<h3>Usage:</h3>
-<pre>local addr = luci.ip.new("::ffff:192.168.1.1") 
-if addr:is6mapped4() then 
-       print("Is a mapped IPv4 address") 
-end</pre>
-
-
-
-<h3>Return value:</h3>
-<code>true</code> if the address is an IPv6 mapped IPv4 address in the 
-       form <code>::ffff:1.2.3.4</code>.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.ismac"></a><strong>cidr:ismac</strong>&nbsp;()</dt>
-<dd>
-
-Checks whether the CIDR instance is an ethernet MAC address range 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-<code>true</code> if the CIDR is a MAC address range, else <code>false</code>
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#cidr.is4">
-               cidr:is4
-       </a>
-       
-       <li><a href="#cidr.is6">
-               cidr:is6
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="cidr.ismaclocal"></a><strong>cidr:ismaclocal</strong>&nbsp;()</dt>
-<dd>
-
-Checks whether the CIDR instance is a locally administered (LAA) MAC address 
-
-
-
-
-
-
-<h3>Usage:</h3>
-<pre>local mac = luci.ip.new("02:C0:FF:EE:00:01") 
-if mac:ismaclocal() then 
-  print("Is an LAA MAC address") 
-end</pre>
-
-
-
-<h3>Return value:</h3>
-<code>true</code> if the MAC address sets the locally administered bit.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.ismacmcast"></a><strong>cidr:ismacmcast</strong>&nbsp;()</dt>
-<dd>
-
-Checks whether the CIDR instance is a multicast MAC address 
-
-
-
-
-
-
-<h3>Usage:</h3>
-<pre>local mac = luci.ip.new("01:00:5E:7F:00:10") 
-if addr:ismacmcast() then 
-  print("Is a multicast MAC address") 
-end</pre>
-
-
-
-<h3>Return value:</h3>
-<code>true</code> if the MAC address sets the multicast bit.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.lower"></a><strong>cidr:lower</strong>&nbsp;(addr)</dt>
-<dd>
-
-Checks whether this CIDR instance is lower than the given argument. 
-The comparisation follows these rules: 
-<ul><li>An IPv4 address is always lower than an IPv6 address and IPv6 addresses 
-are considered lower than MAC addresses</li> 
-<li>Prefix sizes are ignored</li></ul> 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         addr: A <code>luci.ip.cidr</code> instance or a string convertible by 
-       <code>luci.ip.new()</code> to compare against.
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>local addr = luci.ip.new("192.168.1.1") 
-print(addr:lower(addr)) -- false 
-print(addr:lower("10.10.10.10/24")) -- false 
-print(addr:lower(luci.ip.new("::1"))) -- true 
-print(addr:lower(luci.ip.new("192.168.200.1"))) -- true 
-print(addr:lower(luci.ip.new("00:14:22:01:23:45"))) -- true</pre>
-
-
-
-<h3>Return value:</h3>
-<code>true</code> if this CIDR is lower than the given address, 
-       else <code>false</code>.
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#cidr.higher">
-               cidr:higher
-       </a>
-       
-       <li><a href="#cidr.equal">
-               cidr:equal
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="cidr.higher"></a><strong>cidr:higher</strong>&nbsp;(addr)</dt>
-<dd>
-
-Checks whether this CIDR instance is higher than the given argument. 
-The comparisation follows these rules: 
-<ul><li>An IPv4 address is always lower than an IPv6 address and IPv6 addresses 
-are considered lower than MAC addresses</li> 
-<li>Prefix sizes are ignored</li></ul> 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         addr: A <code>luci.ip.cidr</code> instance or a string convertible by 
-       <code>luci.ip.new()</code> to compare against.
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>local addr = luci.ip.new("192.168.1.1") 
-print(addr:higher(addr)) -- false 
-print(addr:higher("10.10.10.10/24")) -- true 
-print(addr:higher(luci.ip.new("::1"))) -- false 
-print(addr:higher(luci.ip.new("192.168.200.1"))) -- false 
-print(addr:higher(luci.ip.new("00:14:22:01:23:45"))) -- false</pre>
-
-
-
-<h3>Return value:</h3>
-<code>true</code> if this CIDR is higher than the given address, 
-       else <code>false</code>.
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#cidr.lower">
-               cidr:lower
-       </a>
-       
-       <li><a href="#cidr.equal">
-               cidr:equal
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="cidr.equal"></a><strong>cidr:equal</strong>&nbsp;(addr)</dt>
-<dd>
-
-Checks whether this CIDR instance is equal to the given argument. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         addr: A <code>luci.ip.cidr</code> instance or a string convertible by 
-       <code>luci.ip.new()</code> to compare against.
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>local addr = luci.ip.new("192.168.1.1") 
-print(addr:equal(addr)) -- true 
-print(addr:equal("192.168.1.1")) -- true 
-print(addr:equal(luci.ip.new("::1"))) -- false 
-local addr6 = luci.ip.new("::1") 
-print(addr6:equal("0:0:0:0:0:0:0:1/64")) -- true 
-print(addr6:equal(luci.ip.new("fe80::221:63ff:fe75:aa17"))) -- false 
-local mac = luci.ip.new("00:14:22:01:23:45") 
-print(mac:equal("0:14:22:1:23:45")) -- true 
-print(mac:equal(luci.ip.new("01:23:45:67:89:AB")) -- false</pre>
-
-
-
-<h3>Return value:</h3>
-<code>true</code> if this CIDR is equal to the given address, 
-       else <code>false</code>.
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#cidr.lower">
-               cidr:lower
-       </a>
-       
-       <li><a href="#cidr.higher">
-               cidr:higher
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="cidr.prefix"></a><strong>cidr:prefix</strong>&nbsp;(mask)</dt>
-<dd>
-
-Get or set prefix size of CIDR instance. 
-If the optional mask parameter is given, the prefix size of this CIDR is altered 
-else the current prefix size is returned. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         mask: Either a number containing the number of bits (<code>0..32</code> 
-       for IPv4, <code>0..128</code> for IPv6 or <code>0..48</code> for MAC addresses) or a string 
-  containing a valid netmask (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>local range = luci.ip.new("192.168.1.1/255.255.255.0") 
-print(range:prefix()) -- 24 
-range:prefix(16) 
-print(range:prefix()) -- 16 
-range:prefix("255.255.255.255") 
-print(range:prefix()) -- 32</pre>
-
-
-
-<h3>Return value:</h3>
-Bit count of the current prefix size
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.network"></a><strong>cidr:network</strong>&nbsp;(mask)</dt>
-<dd>
-
-Derive network address of CIDR instance. 
-Returns a new CIDR instance representing the network address of this instance 
-with all host parts masked out. The used prefix size can be overridden by the 
-optional mask parameter. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         mask: Either a number containing the number of bits (<code>0..32</code> 
-       for IPv4, <code>0..128</code> for IPv6 or <code>0..48</code> for MAC addresses) or a string 
-  containing a valid netmask (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>local range = luci.ip.new("192.168.62.243/255.255.0.0") 
-print(range:network())                -- "192.168.0.0" 
-print(range:network(24))              -- "192.168.62.0" 
-print(range:network("255.255.255.0")) -- "192.168.62.0" 
-local range6 = luci.ip.new("fd9b:62b3:9cc5:0:221:63ff:fe75:aa17/64") 
-print(range6:network())               -- "fd9b:62b3:9cc5::"</pre>
-
-
-
-<h3>Return value:</h3>
-CIDR instance representing the network address
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.host"></a><strong>cidr:host</strong>&nbsp;()</dt>
-<dd>
-
-Derive host address of CIDR instance. 
-This function essentially constructs a copy of this CIDR with the prefix size 
-set to <code>32</code> for IPv4, <code>128</code> for IPv6 or <code>48</code> for MAC addresses. 
-
-
-
-
-
-
-<h3>Usage:</h3>
-<pre>local range = luci.ip.new("172.19.37.45/16") 
-print(range)        -- "172.19.37.45/16" 
-print(range:host()) -- "172.19.37.45"</pre>
-
-
-
-<h3>Return value:</h3>
-CIDR instance representing the host address
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.mask"></a><strong>cidr:mask</strong>&nbsp;(mask)</dt>
-<dd>
-
-Derive netmask of CIDR instance. 
-Constructs a CIDR instance representing the netmask of this instance. The used 
-prefix size can be overridden by the optional mask parameter. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         mask: Either a number containing the number of bits (<code>0..32</code> 
-       for IPv4, <code>0..128</code> for IPv6 or <code>0..48</code> for MAC addresses) or a string 
-  containing a valid netmask (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>local range = luci.ip.new("172.19.37.45/16") 
-print(range:mask())            -- "255.255.0.0" 
-print(range:mask(24))          -- "255.255.255.0" 
-print(range:mask("255.0.0.0")) -- "255.0.0.0"</pre>
-
-
-
-<h3>Return value:</h3>
-CIDR instance representing the netmask
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.broadcast"></a><strong>cidr:broadcast</strong>&nbsp;(mask)</dt>
-<dd>
-
-Derive broadcast address of CIDR instance. 
-Constructs a CIDR instance representing the broadcast address of this instance. 
-The used prefix size can be overridden by the optional mask parameter. 
-This function has no effect on IPv6 or MAC address instances, it will return 
-nothing in this case. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         mask: Either a number containing the number of bits (<code>0..32</code> for IPv4) or 
-  a string containing a valid netmask (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>local range = luci.ip.new("172.19.37.45/16") 
-print(range:broadcast())            -- "172.19.255.255" 
-print(range:broadcast(24))          -- "172.19.37.255" 
-print(range:broadcast("255.0.0.0")) -- "172.255.255.255"</pre>
-
-
-
-<h3>Return value:</h3>
-Return a new CIDR instance representing the broadcast address if this 
-       instance is an IPv4 range, else return nothing.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.mapped4"></a><strong>cidr:mapped4</strong>&nbsp;()</dt>
-<dd>
-
-Derive mapped IPv4 address of CIDR instance. 
-Constructs a CIDR instance representing the IPv4 address of the IPv6 mapped 
-IPv4 address in this instance. 
-This function has no effect on IPv4 instances, MAC address instances or IPv6 
-instances which are not a mapped address, it will return nothing in this case. 
-
-
-
-
-
-
-<h3>Usage:</h3>
-<pre>local addr = luci.ip.new("::ffff:172.16.19.1") 
-print(addr:mapped4()) -- "172.16.19.1"</pre>
-
-
-
-<h3>Return value:</h3>
-Return a new CIDR instance representing the IPv4 address if this 
-       instance is an IPv6 mapped IPv4 address, else return nothing.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.tomac"></a><strong>cidr:tomac</strong>&nbsp;()</dt>
-<dd>
-
-Derive MAC address of IPv6 link local CIDR instance. 
-Constructs a CIDR instance representing the MAC address contained in the IPv6 
-link local address of this instance. 
-This function has no effect on IPv4 instances, MAC address instances or IPv6 
-instances which are not a link local address, it will return nothing in this 
-case. 
-
-
-
-
-
-
-<h3>Usage:</h3>
-<pre>local addr = luci.ip.new("fe80::6666:b3ff:fe47:e1b9") 
-print(addr:tomac()) -- "64:66:B3:47:E1:B9"</pre>
-
-
-
-<h3>Return value:</h3>
-Return a new CIDR instance representing the MAC address if this 
-  instance is an IPv6 link local address, else return nothing.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.tolinklocal"></a><strong>cidr:tolinklocal</strong>&nbsp;()</dt>
-<dd>
-
-Derive IPv6 link local address from MAC address CIDR instance. 
-Constructs a CIDR instance representing the IPv6 link local address of the 
-MAC address represented by this instance. 
-This function has no effect on IPv4 instances or IPv6 instances, it will return 
-nothing in this case. 
-
-
-
-
-
-
-<h3>Usage:</h3>
-<pre>local mac = luci.ip.new("64:66:B3:47:E1:B9") 
-print(mac:tolinklocal()) -- "fe80::6666:b3ff:fe47:e1b9"</pre>
-
-
-
-<h3>Return value:</h3>
-Return a new CIDR instance representing the IPv6 link local address.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.contains"></a><strong>cidr:contains</strong>&nbsp;(addr)</dt>
-<dd>
-
-Test whether CIDR contains given range. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         addr: A <code>luci.ip.cidr</code> instance or a string convertible by 
-       <code>luci.ip.new()</code> to test.
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>local range = luci.ip.new("10.24.0.0/255.255.0.0") 
-print(range:contains("10.24.5.1"))  -- true 
-print(range:contains("::1"))        -- false 
-print(range:contains("10.0.0.0/8")) -- false 
-local range6 = luci.ip.new("fe80::/10") 
-print(range6:contains("fe80::221:63f:fe75:aa17/64"))         -- true 
-print(range6:contains("fd9b:6b3:c5:0:221:63f:fe75:aa17/64")) -- false 
-local intel_macs = luci.ip.MAC("C0:B6:F9:00:00:00/24") 
-print(intel_macs:contains("C0:B6:F9:A3:C:11"))  -- true 
-print(intel_macs:contains("64:66:B3:47:E1:B9")) -- false</pre>
-
-
-
-<h3>Return value:</h3>
-<code>true</code> if this instance fully contains the given address else 
-       <code>false</code>.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.add"></a><strong>cidr:add</strong>&nbsp;(amount, inplace)</dt>
-<dd>
-
-Add given amount to CIDR instance. If the result would overflow the maximum 
-address space, the result is set to the highest possible address. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         amount: A numeric value between 0 and 0xFFFFFFFF, a 
-       <code>luci.ip.cidr</code> instance or a string convertible by 
-       <code>luci.ip.new()</code>.
-       </li>
-       
-       <li>
-         inplace: If <code>true</code>, modify this instance instead of returning 
-       a new derived CIDR instance.
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>local addr = luci.ip.new("192.168.1.1/24") 
-print(addr:add(250))           -- "192.168.1.251/24" 
-print(addr:add("0.0.99.0"))    -- "192.168.100.1/24" 
-addr:add(256, true)            -- true 
-print(addr)                    -- "192.168.2.1/24 
-addr:add("255.0.0.0", true)    -- false (overflow) 
-print(addr)                    -- "255.255.255.255/24 
-local addr6 = luci.ip.new("fe80::221:63f:fe75:aa17/64") 
-print(addr6:add(256))          -- "fe80::221:63f:fe75:ab17/64" 
-print(addr6:add("::ffff:0"))   -- "fe80::221:640:fe74:aa17/64" 
-addr6:add(256, true)           -- true 
-print(addr6)                   -- "fe80::221:63f:fe75:ab17/64 
-addr6:add("ffff::", true)      -- false (overflow) 
-print(addr6)                   -- "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/64" 
-local mac = luci.ip.new("00:14:22:01:23:45") 
-print(mac:add(256))            -- "00:14:22:01:24:45" 
-print(mac:add("0:0:0:0:FF:0")  -- "00:14:22:02:22:45" 
-mac:add(256, true)             -- true 
-print(mac)                     -- "00:14:22:01:24:45" 
-mac:add("FF:FF:0:0:0:0", true) -- false (overflow) 
-print(mac)                     -- "FF:FF:FF:FF:FF:FF"</pre>
-
-
-
-<h3>Return value:</h3>
-<ul> 
-       <li>When adding inplace: Return <code>true</code> if the addition succeeded 
-           or <code>false</code> when the addition overflowed.</li> 
-       <li>When deriving new CIDR: Return new instance representing the value of 
-        this instance plus the added amount or the highest possible address if 
-           the addition overflowed the available address space.</li></ul>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.sub"></a><strong>cidr:sub</strong>&nbsp;(amount, inplace)</dt>
-<dd>
-
-Subtract given amount from CIDR instance. If the result would under, the lowest 
-possible address is returned. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         amount: A numeric value between 0 and 0xFFFFFFFF, a 
-       <code>luci.ip.cidr</code> instance or a string convertible by 
-       <code>luci.ip.new()</code>.
-       </li>
-       
-       <li>
-         inplace: If <code>true</code>, modify this instance instead of returning 
-       a new derived CIDR instance.
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>local addr = luci.ip.new("192.168.1.1/24") 
-print(addr:sub(256))         -- "192.168.0.1/24" 
-print(addr:sub("0.168.0.0")) -- "192.0.1.1/24" 
-addr:sub(256, true)          -- true 
-print(addr)                  -- "192.168.0.1/24 
-addr:sub("255.0.0.0", true)  -- false (underflow) 
-print(addr)                  -- "0.0.0.0/24 
-local addr6 = luci.ip.new("fe80::221:63f:fe75:aa17/64") 
-print(addr6:sub(256))        -- "fe80::221:63f:fe75:a917/64" 
-print(addr6:sub("::ffff:0")) -- "fe80::221:63e:fe76:aa17/64" 
-addr:sub(256, true)          -- true 
-print(addr)                  -- "fe80::221:63f:fe75:a917/64" 
-addr:sub("ffff::", true)     -- false (underflow) 
-print(addr)                  -- "::/64" 
-local mac = luci.ip.new("00:14:22:01:23:45") 
-print(mac:sub(256))            -- "00:14:22:01:22:45" 
-print(mac:sub("0:0:0:0:FF:0")  -- "00:14:22:00:24:45" 
-mac:sub(256, true)             -- true 
-print(mac)                     -- "00:14:22:01:22:45" 
-mac:sub("FF:FF:0:0:0:0", true) -- false (overflow) 
-print(mac)                     -- "00:00:00:00:00:00"</pre>
-
-
-
-<h3>Return value:</h3>
-<ul> 
-       <li>When subtracting inplace: Return <code>true</code> if the subtraction 
-           succeeded or <code>false</code> when the subtraction underflowed.</li> 
-       <li>When deriving new CIDR: Return new instance representing the value of 
-        this instance minus the subtracted amount or the lowest address if 
-           the subtraction underflowed.</li></ul>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.minhost"></a><strong>cidr:minhost</strong>&nbsp;()</dt>
-<dd>
-
-Calculate the lowest possible host address within this CIDR instance. 
-
-
-
-
-
-
-<h3>Usage:</h3>
-<pre>local addr = luci.ip.new("192.168.123.56/24") 
-print(addr:minhost())  -- "192.168.123.1" 
-local addr6 = luci.ip.new("fd9b:62b3:9cc5:0:221:63ff:fe75:aa17/64") 
-print(addr6:minhost()) -- "fd9b:62b3:9cc5::1" 
-local mac = luci.ip.new("00:14:22:01:22:45/32") 
-print(mac:minhost())   -- "00:14:22:01:00:01"</pre>
-
-
-
-<h3>Return value:</h3>
-Returns a new CIDR instance representing the lowest host address 
-       within this range.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.maxhost"></a><strong>cidr:maxhost</strong>&nbsp;()</dt>
-<dd>
-
-Calculate the highest possible host address within this CIDR instance. 
-
-
-
-
-
-
-<h3>Usage:</h3>
-<pre>local addr = luci.ip.new("192.168.123.56/24") 
-print(addr:maxhost())  -- "192.168.123.254" (.255 is broadcast) 
-local addr6 = luci.ip.new("fd9b:62b3:9cc5:0:221:63ff:fe75:aa17/64") 
-print(addr6:maxhost()) -- "fd9b:62b3:9cc5:0:ffff:ffff:ffff:ffff" 
-local mac = luci.ip.new("00:14:22:01:22:45/32") 
-print(mac:maxhost())   -- "00:14:22:01:FF:FF"</pre>
-
-
-
-<h3>Return value:</h3>
-Returns a new CIDR instance representing the highest host address 
-       within this range.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.string"></a><strong>cidr:string</strong>&nbsp;()</dt>
-<dd>
-
-Convert CIDR instance into string representation. 
-If the prefix size of instance is less than 32 for IPv4, 128 for IPv6 or 48 for 
-MACs, the address is returned in the form "address/prefix" otherwise just 
-"address". 
-It is usually not required to call this function directly as CIDR objects 
-define it as __tostring function in the associated metatable. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Returns a string representing the range or address of this CIDR instance
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/luci.ip.html b/documentation/api/modules/luci.ip.html
deleted file mode 100644 (file)
index 0599396..0000000
+++ /dev/null
@@ -1,1217 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li><strong>luci.ip</strong></li>
-       
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>luci.ip</code></h1>
-
-<p>
- LuCI IP calculation and netlink access library.</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#new">new</a>&nbsp;(address, netmask)</td>
-       <td class="summary">
-Construct a new luci.ip.cidr instance and autodetect the address family.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#IPv4">IPv4</a>&nbsp;(address, netmask)</td>
-       <td class="summary">
-Construct a new IPv4 luci.ip.cidr instance.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#IPv6">IPv6</a>&nbsp;(address, netmask)</td>
-       <td class="summary">
-Construct a new IPv6 luci.ip.cidr instance.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#MAC">MAC</a>&nbsp;(address, netmask)</td>
-       <td class="summary">
-Construct a new MAC luci.ip.cidr instance.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#checkip4">checkip4</a>&nbsp;(address)</td>
-       <td class="summary">
-Verify an IPv4 address.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#checkip6">checkip6</a>&nbsp;(address)</td>
-       <td class="summary">
-Verify an IPv6 address.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#checkmac">checkmac</a>&nbsp;(address)</td>
-       <td class="summary">
-Verify an ethernet MAC address.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#route">route</a>&nbsp;(address, source)</td>
-       <td class="summary">
-Determine the route leading to the given destination.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#routes">routes</a>&nbsp;(filter, callback)</td>
-       <td class="summary">
-Fetch all routes, optionally matching the given criteria.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#neighbors">neighbors</a>&nbsp;(filter, callback)</td>
-       <td class="summary">
-Fetches entries from the IPv4 ARP and IPv6 neighbour kernel table </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#link">link</a>&nbsp;(device)</td>
-       <td class="summary">
-Fetch basic device information </td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="new"></a><strong>new</strong>&nbsp;(address, netmask)</dt>
-<dd>
-
-Construct a new luci.ip.cidr instance and autodetect the address family. 
-Throws an error if the given strings do not represent a valid address or 
-if the given optional netmask is of a different family.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         address: String containing a valid IPv4 or IPv6 address, optionally 
-with prefix size (CIDR notation) or netmask separated by slash.
-       </li>
-       
-       <li>
-         netmask: String containing a valid IPv4 or IPv6 netmask or number 
-containing a prefix size in bits (<code>0..32</code> for IPv4, 
-<code>0..128</code> for IPv6). Overrides mask embedded in the first argument 
-if specified. (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>addr = luci.ip.new("10.24.0.1/24") 
-addr = luci.ip.new("10.24.0.1/255.255.255.0") 
-addr = luci.ip.new("10.24.0.1", "255.255.255.0")        -- separate netmask 
-addr = luci.ip.new("10.24.0.1/24", 16)                  -- override netmask 
-addr6 = luci.ip.new("fe80::221:63ff:fe75:aa17/64") 
-addr6 = luci.ip.new("fe80::221:63ff:fe75:aa17/ffff:ffff:ffff:ffff::") 
-addr6 = luci.ip.new("fe80::221:63ff:fe75:aa17", "ffff:ffff:ffff:ffff::") 
-addr6 = luci.ip.new("fe80::221:63ff:fe75:aa17/64", 128) -- override netmask</pre>
-
-
-
-<h3>Return value:</h3>
-A <code>luci.ip.cidr</code> object representing the given 
-address/mask range.
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#IPv4">
-               IPv4
-       </a>
-       
-       <li><a href="#IPv6">
-               IPv6
-       </a>
-       
-       <li><a href="#MAC">
-               MAC
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="IPv4"></a><strong>IPv4</strong>&nbsp;(address, netmask)</dt>
-<dd>
-
-Construct a new IPv4 luci.ip.cidr instance. 
-Throws an error if the given string does not represent a valid IPv4 address or 
-if the given optional netmask is of a different family.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         address: String containing a valid IPv4, optionally with prefix size 
-(CIDR notation) or netmask separated by slash.
-       </li>
-       
-       <li>
-         netmask: String containing a valid IPv4 netmask or number 
-containing a prefix size between <code>0</code> and <code>32</code> bit. 
-Overrides mask embedded in the first argument if specified. (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>addr = luci.ip.IPv4("10.24.0.1/24") 
-addr = luci.ip.IPv4("10.24.0.1/255.255.255.0") 
-addr = luci.ip.IPv4("10.24.0.1", "255.255.255.0")        -- separate netmask 
-addr = luci.ip.IPv4("10.24.0.1/24", 16)                  -- override netmask</pre>
-
-
-
-<h3>Return value:</h3>
-A <code>luci.ip.cidr</code> object representing the given IPv4 range.
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#IPv6">
-               IPv6
-       </a>
-       
-       <li><a href="#MAC">
-               MAC
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="IPv6"></a><strong>IPv6</strong>&nbsp;(address, netmask)</dt>
-<dd>
-
-Construct a new IPv6 luci.ip.cidr instance. 
-Throws an error if the given string does not represent a valid IPv6 address or 
-if the given optional netmask is of a different family.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         address: String containing a valid IPv6, optionally with prefix size 
-(CIDR notation) or netmask separated by slash.
-       </li>
-       
-       <li>
-         netmask: String containing a valid IPv4 netmask or number 
-containing a prefix size between <code>0</code> and <code>128</code> bit. 
-Overrides mask embedded in the first argument if specified. (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>addr6 = luci.ip.IPv6("fe80::221:63ff:fe75:aa17/64") 
-addr6 = luci.ip.IPv6("fe80::221:63ff:fe75:aa17/ffff:ffff:ffff:ffff::") 
-addr6 = luci.ip.IPv6("fe80::221:63ff:fe75:aa17", "ffff:ffff:ffff:ffff::") 
-addr6 = luci.ip.IPv6("fe80::221:63ff:fe75:aa17/64", 128) -- override netmask</pre>
-
-
-
-<h3>Return value:</h3>
-A <code>luci.ip.cidr</code> object representing the given IPv6 range.
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#IPv4">
-               IPv4
-       </a>
-       
-       <li><a href="#MAC">
-               MAC
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="MAC"></a><strong>MAC</strong>&nbsp;(address, netmask)</dt>
-<dd>
-
-Construct a new MAC luci.ip.cidr instance. 
-Throws an error if the given string does not represent a valid ethernet MAC 
-address or if the given optional mask is of a different family.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         address: String containing a valid ethernet MAC address, optionally with 
-prefix size (CIDR notation) or mask separated by slash.
-       </li>
-       
-       <li>
-         netmask: String containing a valid MAC address mask or number 
-containing a prefix size between <code>0</code> and <code>48</code> bit. 
-Overrides mask embedded in the first argument if specified. (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>intel_macs = luci.ip.MAC("C0:B6:F9:00:00:00/24") 
-intel_macs = luci.ip.MAC("C0:B6:F9:00:00:00/FF:FF:FF:0:0:0") 
-intel_macs = luci.ip.MAC("C0:B6:F9:00:00:00", "FF:FF:FF:0:0:0") 
-intel_macs = luci.ip.MAC("C0:B6:F9:00:00:00/24", 48) -- override mask</pre>
-
-
-
-<h3>Return value:</h3>
-A <code>luci.ip.cidr</code> object representing the given MAC address range.
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#IPv4">
-               IPv4
-       </a>
-       
-       <li><a href="#IPv6">
-               IPv6
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="checkip4"></a><strong>checkip4</strong>&nbsp;(address)</dt>
-<dd>
-
-Verify an IPv4 address. 
-Checks whether given argument is a preexisting luci.ip.cidr IPv4 address 
-instance or a string literal convertible to an IPv4 address and returns a 
-plain Lua string containing the canonical representation of the address. 
-If the argument is not a valid address, returns nothing. This function is 
-intended to aid in safely verifying address literals without having to deal 
-with exceptions.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         address: String containing a valid IPv4 address or existing 
-luci.ip.cidr IPv4 instance.
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>ipv4 = luci.ip.checkip4(luci.ip.new("127.0.0.1"))  -- "127.0.0.1" 
-ipv4 = luci.ip.checkip4("127.0.0.1")               -- "127.0.0.1" 
-ipv4 = luci.ip.checkip4("nonesense")               -- nothing 
-ipv4 = luci.ip.checkip4(123)                       -- nothing 
-ipv4 = luci.ip.checkip4(nil)                       -- nothing 
-ipv4 = luci.ip.checkip4()                          -- nothing</pre>
-
-
-
-<h3>Return value:</h3>
-A string representing the given IPv4 address.
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#checkip6">
-               checkip6
-       </a>
-       
-       <li><a href="#checkmac">
-               checkmac
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="checkip6"></a><strong>checkip6</strong>&nbsp;(address)</dt>
-<dd>
-
-Verify an IPv6 address. 
-Checks whether given argument is a preexisting luci.ip.cidr IPv6 address 
-instance or a string literal convertible to an IPv6 address and returns a 
-plain Lua string containing the canonical representation of the address. 
-If the argument is not a valid address, returns nothing. This function is 
-intended to aid in safely verifying address literals without having to deal 
-with exceptions.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         address: String containing a valid IPv6 address or existing 
-luci.ip.cidr IPv6 instance.
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>ipv6 = luci.ip.checkip6(luci.ip.new("0:0:0:0:0:0:0:1"))  -- "::1" 
-ipv6 = luci.ip.checkip6("0:0:0:0:0:0:0:1")               -- "::1" 
-ipv6 = luci.ip.checkip6("nonesense")                     -- nothing 
-ipv6 = luci.ip.checkip6(123)                             -- nothing 
-ipv6 = luci.ip.checkip6(nil)                             -- nothing 
-ipv6 = luci.ip.checkip6()                                -- nothing</pre>
-
-
-
-<h3>Return value:</h3>
-A string representing the given IPv6 address.
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#checkip4">
-               checkip4
-       </a>
-       
-       <li><a href="#checkmac">
-               checkmac
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="checkmac"></a><strong>checkmac</strong>&nbsp;(address)</dt>
-<dd>
-
-Verify an ethernet MAC address. 
-Checks whether given argument is a preexisting luci.ip.cidr MAC address 
-instance or a string literal convertible to an ethernet MAC and returns a 
-plain Lua string containing the canonical representation of the address. 
-If the argument is not a valid address, returns nothing. This function is 
-intended to aid in safely verifying address literals without having to deal 
-with exceptions.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         address: String containing a valid MAC address or existing luci.ip.cidr 
-MAC address instance.
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>mac = luci.ip.checkmac(luci.ip.new("00-11-22-cc-dd-ee"))  -- "00:11:22:CC:DD:EE" 
-mac = luci.ip.checkmac("00:11:22:cc:dd:ee")               -- "00:11:22:CC:DD:EE" 
-mac = luci.ip.checkmac("nonesense")                       -- nothing 
-mac = luci.ip.checkmac(123)                               -- nothing 
-mac = luci.ip.checkmac(nil)                               -- nothing 
-mac = luci.ip.checkmac()                                  -- nothing</pre>
-
-
-
-<h3>Return value:</h3>
-A string representing the given MAC address.
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#checkip4">
-               checkip4
-       </a>
-       
-       <li><a href="#checkip6">
-               checkip6
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="route"></a><strong>route</strong>&nbsp;(address, source)</dt>
-<dd>
-
-Determine the route leading to the given destination.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         address: A <code>luci.ip.cidr</code> instance or a string containing 
-a valid IPv4 or IPv6 range as specified by <code>luci.ip.new()</code>.
-       </li>
-       
-       <li>
-         source: A <code>luci.ip.cidr</code> instance or a string containing 
-the preferred source address for route selection (optional).
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<ul> 
-<li>Find default gateway by getting route to Google's public NS server 
-<pre>rt = luci.ip.route("8.8.8.8") 
-if rt ~= nil then 
-       print("gateway is", rt.gw) 
-end</pre></li> 
-<li>Determine IPv6 upstream interface <pre>rt = luci.ip.route("2001::/7") 
-if rt ~= nil then 
-       print("ipv6 upstream device is", rt.dev) 
-end</pre></li> 
-</ul>
-
-
-
-<h3>Return value:</h3>
-<p>Table containing the fields described below.</p> 
-<table id="routetable"> 
-<tr><th>Field</th><th>Description</th></tr> 
-<tr><td><code>type</code><td> 
-  <p>Route type with one of the following numeric values:</p> 
-  <table> 
-  <tr> 
-       <td><code>1</code></td> 
-       <td><code>RTN_UNICAST</code> - Gateway or direct route</td> 
-  </tr> 
-  <tr> 
-       <td><code>2</code></td> 
-       <td><code>RTN_LOCAL</code> - Accept locally</td> 
-  </tr> 
-  <tr> 
-       <td><code>3</code></td> 
-       <td><code>RTN_BROADCAST</code> - 
-           Accept locally as broadcast send as broadcast</td> 
-  </tr> 
-  <tr> 
-       <td><code>4</code></td> 
-       <td><code>RTN_ANYCAST</code> - 
-        Accept locally as broadcast but send as unicast</td> 
-  </tr> 
-  <tr> 
-       <td><code>5</code></td> 
-       <td><code>RTN_MULTICAST</code> - Multicast route</td> 
-  </tr> 
-  </table> 
-</td></tr> 
-<tr> 
-  <td><code>family</code></td> 
-  <td>Number containing the route family, <code>4</code> for IPv4 or 
-      <code>6</code> for IPv6</td> 
-</tr> 
-<tr> 
-  <td><code>dest</code></td> 
-  <td>Destination <code>luci.ip.cidr</code> instance</td> 
-</tr> 
-<tr> 
-  <td><code>gw</code></td> 
-  <td>Gateway <code>luci.ip.cidr</code> instance (optional)</td> 
-</tr> 
-<tr> 
-  <td><code>from</code></td> 
-  <td>Source address <code>luci.ip.cidr</code> instance (optional)</td> 
-</tr> 
-<tr> 
-  <td><code>src</code></td> 
-  <td>Preferred source <code>luci.ip.cidr</code> instance (optional)</td> 
-</tr> 
-<tr> 
-  <td><code>dev</code></td> 
-  <td>String containing the name of the outgoing interface</td> 
-</tr> 
-<tr> 
-  <td><code>iif</code></td> 
-  <td>String containing the name of the incoming interface (optional)</td> 
-</tr> 
-<tr> 
-  <td><code>table</code></td> 
-  <td>Number of the associated routing table (<code>0..65535</code>)</td> 
-</tr> 
-<tr> 
-  <td><code>proto</code></td> 
-  <td>Number of the associated routing protocol</td> 
-</tr> 
-<tr> 
-  <td><code>scope</code></td> 
-  <td>Number describing the scope of the route, most commonly 
-      <code>0</code> for global or <code>253</code> for on-link</td> 
-</tr> 
-<tr> 
-  <td><code>metric</code></td> 
-  <td>Number describing the route metric (optional)</td> 
-</tr> 
-<tr> 
-  <td><code>expires</code></td> 
-  <td>Number of seconds the prefix is valid (IPv6 only, optional)</td> 
-</tr> 
-<tr> 
-  <td><code>error</code></td> 
-  <td>Route destination error code (optional)</td> 
-</tr> 
-</table>
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#routes">
-               routes
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="routes"></a><strong>routes</strong>&nbsp;(filter, callback)</dt>
-<dd>
-
-Fetch all routes, optionally matching the given criteria.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         filter: <p>Table containing one or more of the possible filter 
-criteria described below (optional)</p><table> 
-<tr><th>Field</th><th>Description</th></tr> 
-<tr><td><code>family</code></td><td> 
- Number describing the address family to return - <code>4</code> selects 
- IPv4 routes, <code>6</code> IPv6 ones. Any other value selects both. 
-</td></tr> 
-<tr><td><code>iif</code></td><td> 
- String containing the incoming route interface to match. 
-</td></tr> 
-<tr><td><code>oif</code></td><td> 
- String containing the outgoing route interface to match. 
-</td></tr> 
-<tr><td><code>type</code></td><td> 
- Numeric type to match, e.g. <code>1</code> for unicast. 
-</td></tr> 
-<tr><td><code>scope</code></td><td> 
- Numeric scope to match, e.g. <code>253</code> for onlink. 
-</td></tr> 
-<tr><td><code>proto</code></td><td> 
- Numeric protocol to match, e.g. <code>2</code> for boot. 
-</td></tr> 
-<tr><td><code>table</code></td><td> 
- Numeric routing table to match (<code>0..65535</code>). 
-</td></tr> 
-<tr><td><code>gw</code></td><td> 
- String containing the gateway address to match. Can be in any notation 
- specified by <code>luci.ip.new()</code>. Prefix matching is performed when 
- comparing the routes, e.g. "192.168.1.0/24" would select routes with gateway 
- addresses <code>192.168.1.1 .. 192.168.1.255</code>. 
-</td></tr> 
-<tr><td><code>dest</code></td><td> 
- String containing the destination to match. Prefix matching is performed. 
-</td></tr> 
-<tr><td><code>from</code></td><td> 
- String containing the source address to match. Prefix matching is performed. 
-</td></tr> 
-<tr><td><code>src</code></td><td> 
- String containing the preferred source address to match. 
- Prefix matching is performed. 
-</td></tr> 
-<tr><td><code>dest_exact</code></td><td> 
- String containing the destination to match. Exact matching is performed, 
- e.g. <code>dest = "0.0.0.0/0"</code> would match <em>any</em> IPv4 route 
- while <code>dest_exact = "0.0.0.0/0"</code> will <em>only</em> match the 
- default route. 
-</td></tr> 
-<tr><td><code>from_exact</code></td><td> 
- String containing the source address to match. Exact matching is performed. 
-</td></tr> 
-</table>
-       </li>
-       
-       <li>
-         callback: <p>Callback function to invoke for each found route 
-instead of returning one table of route objects (optional)</p>
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<ul> 
-<li>Find all IPv4 default routes: 
-<pre>luci.ip.routes({ dest_exact = "0.0.0.0/0" }, function(rt) 
-       print(rt.type, rt.gw, rt.dev) 
-end)</pre></li> 
-<li>Find all global IPv6 prefixes on the current system: 
-<pre>luci.ip.routes({ from = "2001::/7" }, function(rt) 
-       print(rt.from) 
-end)</pre></li> 
-<li>Fetch all IPv4 routes: 
-<pre>routes = luci.ip.routes({ family = 4 }) 
-for _, rt in ipairs(routes) do 
-       print(rt.dest, rt.gw, rt.dev) 
-end</pre></li> 
-</ul>
-
-
-
-<h3>Return value:</h3>
-If no callback function is provided, a table of routes 
-<a href="#routetable">as specified by <code>luci.ip.route()</code></a> 
-is returned. If a callback function is given, it is invoked for each route 
-and nothing is returned.
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#route">
-               route
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="neighbors"></a><strong>neighbors</strong>&nbsp;(filter, callback)</dt>
-<dd>
-
-Fetches entries from the IPv4 ARP and IPv6 neighbour kernel table
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         filter: <p>Table containing one or more of the possible filter 
-criteria described below (optional)</p><table> 
-<tr><th>Field</th><th>Description</th></tr> 
-<tr><td><code>family</code></td><td> 
- Number describing the address family to return - <code>4</code> selects 
- IPv4 ARP, <code>6</code> select IPv6 neighbour entries. Any other value 
- selects both. 
-</td></tr> 
-<tr><td><code>dev</code></td><td> 
- String containing the associated interface to match. 
-</td></tr> 
-<tr><td><code>dest</code></td><td> 
- String containing the associated address to match. Can be in any notation 
- specified by <code>luci.ip.new()</code>. Prefix matching is performed when 
- comparing the addresses, e.g. "192.168.1.0/24" would select ARP entries 
- for <code>192.168.1.1 .. 192.168.1.255</code>. 
-</td></tr> 
-<tr><td><code>mac</code></td><td> 
- String containing MAC address to match. 
-</td></tr> 
-</table>
-       </li>
-       
-       <li>
-         callback: <p>Callback function to invoke for each found neighbour 
-entry instead of returning one table of neighbour entries (optional)</p>
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<ul> 
-<li>Find all ARP neighbours in the LAN: 
-<pre>luci.ip.neighbors({ dest = "192.168.0.0/16" }, function(n) 
-       print(n.dest, n.mac) 
-end)</pre></li> 
-<li>Find all active IPv6 addresses of host with given MAC: 
-<pre>luci.ip.neighbors({ family = 6, mac = "00:21:63:75:aa:17" }, 
-       function(n) 
-               print(n.dest) 
-       end)</pre></li> 
-</ul>
-
-
-
-<h3>Return value:</h3>
-If no callback function is provided, a table of neighbour entries 
-is returned. If a callback function is given, it is invoked for each entry 
-and nothing is returned. 
-A neighbour entry is a table containing the following fields: 
-<table> 
-<tr><th>Field</th><th>Description</th></tr> 
-<tr> 
-  <td><code>family</code></td> 
-  <td>Number containing the neighbour entry family, <code>4</code> for IPv4 
-      ARP or <code>6</code> for IPv6 NDP</td> 
-</tr> 
-<tr> 
-  <td><code>dev</code></td> 
-  <td>String containing the associated device of the neighbour entry</td> 
-</tr> 
-<tr> 
-  <td><code>dest</code></td> 
-  <td>IP address <code>luci.ip.cidr</code> instance</td> 
-</tr> 
-<tr> 
-  <td><code>mac</code></td> 
-  <td>MAC address <code>luci.ip.cidr</code> instance</td> 
-</tr> 
-<tr> 
-  <td><code>router</code></td> 
-  <td>Boolean "true" if the neighbour entry is a router (IPv6, optional)</td> 
-</tr> 
-<tr> 
-  <td><code>proxy</code></td> 
-  <td>Boolean "true" if this is a proxy entry (optional)</td> 
-</tr> 
-<tr> 
-  <td><code>incomplete</code></td> 
-  <td>Boolean "true" if the entry is in incomplete state (optional)</td> 
-</tr> 
-<tr> 
-  <td><code>reachable</code></td> 
-  <td>Boolean "true" if the entry is in reachable state (optional)</td> 
-</tr> 
-<tr> 
-  <td><code>stale</code></td> 
-  <td>Boolean "true" if the entry is stale (optional)</td> 
-</tr> 
-<tr> 
-  <td><code>delay</code></td> 
-  <td>Boolean "true" if the entry is delayed (optional)</td> 
-</tr> 
-<tr> 
-  <td><code>probe</code></td> 
-  <td>Boolean "true" if the entry is in probe state (optional)</td> 
-</tr> 
-<tr> 
-  <td><code>failed</code></td> 
-  <td>Boolean "true" if the entry is in failed state (optional)</td> 
-</tr> 
-<tr> 
-  <td><code>noarp</code></td> 
-  <td>Boolean "true" if the entry is not caused by NDP or 
-      ARP (optional)</td> 
-</tr> 
-<tr> 
-  <td><code>permanent</code></td> 
-  <td>Boolean "true" if the entry was statically configured from 
-      userspace (optional)</td> 
-</tr> 
-</table>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="link"></a><strong>link</strong>&nbsp;(device)</dt>
-<dd>
-
-Fetch basic device information
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         device: String containing the network device to query
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<ul> 
-<li>Test whether device br-lan exists: 
-<pre>print(luci.ip.link("br-lan").name ~= nil) 
-</pre></li> 
-<li>Query MAC address of eth0: 
-<pre>print(luci.ip.link("eth0").mac) 
-</pre></li> 
-</ul>
-
-
-
-<h3>Return value:</h3>
-If the given interface is found, a table containing the fields 
-described below is returned, else an empty table. 
-<table> 
-<tr><th>Field</th><th>Description</th></tr> 
-<tr> 
-  <td><code>up</code></td> 
-  <td>Boolean indicating whether the device is in IFF_RUNNING state</td> 
-</tr> 
-<tr> 
-  <td><code>type</code></td> 
-  <td>Numeric value indicating the type of the device, e.g. <code>1</code> 
-      for ethernet.</td> 
-</tr> 
-<tr> 
-  <td><code>name</code></td> 
-  <td>String containing the name of the device</td> 
-</tr> 
-<tr> 
-  <td><code>master</code></td> 
-  <td>If queried device is a bridge port, string containing the name of 
-      parent bridge device (optional)</td> 
-</tr> 
-<tr> 
-  <td><code>mtu</code></td> 
-  <td>Number containing the current MTU of the device</td> 
-</tr> 
-<tr> 
-  <td><code>qlen</code></td> 
-  <td>Number containing the TX queue length of the device</td> 
-</tr> 
-<tr> 
-  <td><code>mac</code></td> 
-  <td>MAC address <code>luci.ip.cidr</code> instance representing the device ethernet 
-      address</td> 
-</tr> 
-</table>
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/luci.json.html b/documentation/api/modules/luci.json.html
deleted file mode 100644 (file)
index db2d1da..0000000
+++ /dev/null
@@ -1,594 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li><strong>luci.json</strong></li>
-       
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Object Instance <code>luci.json</code></h1>
-
-<p></p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#ActiveDecoder">ActiveDecoder</a>&nbsp;(customnull)</td>
-       <td class="summary">
-Create a new Active JSON-Decoder.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#ActiveDecoder.get">ActiveDecoder:get</a>&nbsp;()</td>
-       <td class="summary">
-Fetches one JSON-object from given source 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Decoder">Decoder</a>&nbsp;(customnull)</td>
-       <td class="summary">
-Create a new JSON-Decoder.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Decoder.get">Decoder:get</a>&nbsp;()</td>
-       <td class="summary">
-Get the decoded data packets after the rawdata has been sent to the sink.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Decoder.sink">Decoder:sink</a>&nbsp;()</td>
-       <td class="summary">
-Create an LTN12 sink from the decoder object which accepts the JSON-Data.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Encoder">Encoder</a>&nbsp;(data, buffersize, fastescape)</td>
-       <td class="summary">
-Create a new JSON-Encoder.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Encoder.source">Encoder:source</a>&nbsp;()</td>
-       <td class="summary">
-Create an LTN12 source providing the encoded JSON-Data.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#decode">decode</a>&nbsp;(json)</td>
-       <td class="summary">
-Directly decode a JSON string 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#encode">encode</a>&nbsp;(obj)</td>
-       <td class="summary">
-Direcly encode a Lua object into a JSON string.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#null">null</a>&nbsp;()</td>
-       <td class="summary">
-Null replacement function 
- </td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="ActiveDecoder"></a><strong>ActiveDecoder</strong>&nbsp;(customnull)</dt>
-<dd>
-
-Create a new Active JSON-Decoder. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         customnull: Use luci.json.null instead of nil for decoding null
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Active JSON-Decoder
-
-
-
-</dd>
-
-
-
-
-<dt><a name="ActiveDecoder.get"></a><strong>ActiveDecoder:get</strong>&nbsp;()</dt>
-<dd>
-
-Fetches one JSON-object from given source 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Decoded object
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Decoder"></a><strong>Decoder</strong>&nbsp;(customnull)</dt>
-<dd>
-
-Create a new JSON-Decoder. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         customnull: Use luci.json.null instead of nil for decoding null
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-JSON-Decoder
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Decoder.get"></a><strong>Decoder:get</strong>&nbsp;()</dt>
-<dd>
-
-Get the decoded data packets after the rawdata has been sent to the sink. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Decoded data
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Decoder.sink"></a><strong>Decoder:sink</strong>&nbsp;()</dt>
-<dd>
-
-Create an LTN12 sink from the decoder object which accepts the JSON-Data. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-LTN12 sink
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Encoder"></a><strong>Encoder</strong>&nbsp;(data, buffersize, fastescape)</dt>
-<dd>
-
-Create a new JSON-Encoder. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         data: Lua-Object to be encoded.
-       </li>
-       
-       <li>
-         buffersize: Blocksize of returned data source.
-       </li>
-       
-       <li>
-         fastescape: Use non-standard escaping (don't escape control chars)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-JSON-Encoder
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Encoder.source"></a><strong>Encoder:source</strong>&nbsp;()</dt>
-<dd>
-
-Create an LTN12 source providing the encoded JSON-Data. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-LTN12 source
-
-
-
-</dd>
-
-
-
-
-<dt><a name="decode"></a><strong>decode</strong>&nbsp;(json)</dt>
-<dd>
-
-Directly decode a JSON string 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         json: JSON-String
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Lua object
-
-
-
-</dd>
-
-
-
-
-<dt><a name="encode"></a><strong>encode</strong>&nbsp;(obj)</dt>
-<dd>
-
-Direcly encode a Lua object into a JSON string. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         obj: Lua Object
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-JSON string
-
-
-
-</dd>
-
-
-
-
-<dt><a name="null"></a><strong>null</strong>&nbsp;()</dt>
-<dd>
-
-Null replacement function 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-null
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/luci.jsonc.html b/documentation/api/modules/luci.jsonc.html
deleted file mode 100644 (file)
index 79deb93..0000000
+++ /dev/null
@@ -1,393 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li><strong>luci.jsonc</strong></li>
-       
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>luci.jsonc</code></h1>
-
-<p>
- LuCI JSON parsing and serialization library. 
- The luci.jsonc class is a high level Lua binding to the JSON-C library to 
- allow reading and writing JSON data with minimal overhead.</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#new">new</a>&nbsp;()</td>
-       <td class="summary">
-Construct a new luci.jsonc.parser instance.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#parse">parse</a>&nbsp;(json)</td>
-       <td class="summary">
-Parse a complete JSON string and convert it into a Lua data structure.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#stringify">stringify</a>&nbsp;(data, pretty)</td>
-       <td class="summary">
-Convert given Lua data into a JSON string.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="new"></a><strong>new</strong>&nbsp;()</dt>
-<dd>
-
-Construct a new luci.jsonc.parser instance.
-
-
-
-
-
-<h3>Usage:</h3>
-<code>parser = luci.jsonc.new()</code>
-
-
-
-<h3>Return value:</h3>
-A <code>luci.jsonc.parser</code> object representing a JSON-C tokener.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="parse"></a><strong>parse</strong>&nbsp;(json)</dt>
-<dd>
-
-Parse a complete JSON string and convert it into a Lua data structure.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         json: A string containing the JSON data to parse, must be either a 
-       JSON array or a JSON object.
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>data = luci.jsonc.parse('{ "name": "John", "age": 34 }') 
-print(data.name)  -- "John"</pre>
-
-
-
-<h3>Return value:</h3>
-On success, a table containing the parsed JSON data is returned, on 
-       failure the function returns <code>nil</code> and a string containing the reason of 
-       the parse error.
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#stringify">
-               stringify
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="stringify"></a><strong>stringify</strong>&nbsp;(data, pretty)</dt>
-<dd>
-
-Convert given Lua data into a JSON string. 
-This function recursively converts the given Lua data into a JSON string, 
-ignoring any unsupported data. Lua tables are converted into JSON arrays if they 
-only contain integer keys, mixed tables are turned into JSON objects with any 
-existing numeric keys converted into strings. 
-Lua functions, coroutines and userdata objects are ignored and Lua numbers are 
-converted to integers if they do not contain fractional values. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         data: The Lua data to convert, can be a table, string, boolean or number.
-       </li>
-       
-       <li>
-         pretty: A boolean value indicating whether the resulting JSON should be 
-       pretty printed.
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>json = luci.jsonc.stringify({ item = true, values = { 1, 2, 3 } }) 
-print(json)  -- '{"item":true,"values":[1,2,3]}'</pre>
-
-
-
-<h3>Return value:</h3>
-Returns a string containing the JSON representation of the given Lua 
-       data.
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#parse">
-               parse
-       </a>
-       
-</ul>
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/luci.jsonc.parser.html b/documentation/api/modules/luci.jsonc.parser.html
deleted file mode 100644 (file)
index 709cb9a..0000000
+++ /dev/null
@@ -1,491 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li><strong>luci.jsonc.parser</strong></li>
-       
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Object Instance <code>luci.jsonc.parser</code></h1>
-
-<p>
- LuCI JSON parser instance. 
- A JSON parser instance is useful to parse JSON data chunk by chunk, without 
- the need to assemble all data in advance.</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#parser.parse">parser:parse</a>&nbsp;(json)</td>
-       <td class="summary">
-Parses one chunk of JSON data.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#parser.get">parser:get</a>&nbsp;()</td>
-       <td class="summary">
-Convert parsed JSON data into Lua table.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#parser.set">parser:set</a>&nbsp;(data)</td>
-       <td class="summary">
-Put Lua data into the parser.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#parser.sink">parser:sink</a>&nbsp;()</td>
-       <td class="summary">
-Generate an ltn12-compatible sink.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#parser.stringify">parser:stringify</a>&nbsp;(pretty)</td>
-       <td class="summary">
-Serialize current parser state as JSON.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="parser.parse"></a><strong>parser:parse</strong>&nbsp;(json)</dt>
-<dd>
-
-Parses one chunk of JSON data. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         json: String containing the JSON fragment to parse
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>parser = luci.jsonc.new() 
-while true do 
-       chunk = ...  -- fetch a cunk of data, e.g. from a socket 
-       finish, errmsg = <b>parser.parse(chunk)</b> 
-       if finish == nil then 
-               error("Cannot parse JSON: " .. errmsg) 
-       end 
-       if finish == true then 
-               break 
-       end 
-end</pre>
-
-
-
-<h3>Return value:</h3>
-<ul> 
-       <li><code>true</code> if a complete JSON object has been parsed and no further input is 
-           expected.</li> 
-       <li><code>false</code> if further input is required</li> 
-       <li><code>nil</code> if an error was encountered while parsing the current chunk. 
-           In this case a string describing the parse error is returned as second 
-           value.</li></ul>
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#parser.get">
-               parser:get
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="parser.get"></a><strong>parser:get</strong>&nbsp;()</dt>
-<dd>
-
-Convert parsed JSON data into Lua table. 
-
-
-
-
-
-
-<h3>Usage:</h3>
-<pre>parser = luci.jsonc.new() 
-parser:parse('{ "example": "test" }') 
-data = parser:get() 
-print(data.example)  -- "test"</pre>
-
-
-
-<h3>Return value:</h3>
-Parsed JSON object converted into a Lua table or <code>nil</code> if the parser 
-       didn't finish or encountered an error.
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#parser.parse">
-               parser:parse
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="parser.set"></a><strong>parser:set</strong>&nbsp;(data)</dt>
-<dd>
-
-Put Lua data into the parser. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         data: Lua data to put into the parser object. The data is converted to an 
-       internal JSON representation that can be dumped with <code>stringify()</code>. 
-       The conversion follows the rules described in <code>luci.jsonc.stringify</code>.
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>parser = luci.jsonc.new() 
-parser:set({ "some", "data" })</pre>
-
-
-
-<h3>Return value:</h3>
-Nothing is returned.
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#parser.stringify">
-               parser:stringify
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="parser.sink"></a><strong>parser:sink</strong>&nbsp;()</dt>
-<dd>
-
-Generate an ltn12-compatible sink. 
-
-
-
-
-
-
-<h3>Usage:</h3>
-<pre>parser = luci.jsonc.new() 
-ltn12.pump.all(ltn12.source.file(io.input()), parser:sink()) 
-print(parser:get())</pre>
-
-
-
-<h3>Return value:</h3>
-Returns a function that can be used as an ltn12 sink.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="parser.stringify"></a><strong>parser:stringify</strong>&nbsp;(pretty)</dt>
-<dd>
-
-Serialize current parser state as JSON. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         pretty: A boolean value indicating whether the resulting JSON should be pretty printed.
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>parser = luci.jsonc.new() 
-parser:parse('{ "example": "test" }') 
-print(parser:serialize())  -- '{"example":"test"}'</pre>
-
-
-
-<h3>Return value:</h3>
-Returns the serialized JSON data of this parser instance.
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/luci.model.ipkg.html b/documentation/api/modules/luci.model.ipkg.html
deleted file mode 100644 (file)
index a0af318..0000000
+++ /dev/null
@@ -1,730 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li><strong>luci.model.ipkg</strong></li>
-       
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>luci.model.ipkg</code></h1>
-
-<p></p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#compare_versions">compare_versions</a>&nbsp;(ver1, ver2, comp)</td>
-       <td class="summary">
-lua version of opkg compare-versions 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#find">find</a>&nbsp;(pat, cb)</td>
-       <td class="summary">
-Find packages that match the given pattern.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#info">info</a>&nbsp;(pkg)</td>
-       <td class="summary">
-Return information about installed and available packages.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#install">install</a>&nbsp;(...)</td>
-       <td class="summary">
-Install one or more packages.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#installed">installed</a>&nbsp;(pkg)</td>
-       <td class="summary">
-Determine whether a given package is installed.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#list_all">list_all</a>&nbsp;(pat, cb)</td>
-       <td class="summary">
-List all packages known to opkg.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#list_installed">list_installed</a>&nbsp;(pat, cb)</td>
-       <td class="summary">
-List installed packages.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#overlay_root">overlay_root</a>&nbsp;()</td>
-       <td class="summary">
-Determines the overlay root used by opkg.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#remove">remove</a>&nbsp;(...)</td>
-       <td class="summary">
-Remove one or more packages.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#status">status</a>&nbsp;(pkg)</td>
-       <td class="summary">
-Return the package status of one or more packages.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#update">update</a>&nbsp;()</td>
-       <td class="summary">
-Update package lists.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#upgrade">upgrade</a>&nbsp;()</td>
-       <td class="summary">
-Upgrades all installed packages.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="compare_versions"></a><strong>compare_versions</strong>&nbsp;(ver1, ver2, comp)</dt>
-<dd>
-
-lua version of opkg compare-versions 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         ver1: string version 1
-       </li>
-       
-       <li>
-         ver2: string version 2
-       </li>
-       
-       <li>
-         comp: string compare versions using 
-               "<=" or "<" lower-equal 
-               ">" or ">=" greater-equal 
-               "=" equal 
-               "<<" lower 
-               ">>" greater 
-               "~=" not equal
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean indicating the status of the compare
-
-
-
-</dd>
-
-
-
-
-<dt><a name="find"></a><strong>find</strong>&nbsp;(pat, cb)</dt>
-<dd>
-
-Find packages that match the given pattern. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         pat: Find packages whose names or descriptions match this pattern, nil results in zero results
-       </li>
-       
-       <li>
-         cb: Callback function invoked for each patckage, receives name, version and description as arguments
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-nothing
-
-
-
-</dd>
-
-
-
-
-<dt><a name="info"></a><strong>info</strong>&nbsp;(pkg)</dt>
-<dd>
-
-Return information about installed and available packages. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         pkg: Limit output to a (set of) packages
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing package information
-
-
-
-</dd>
-
-
-
-
-<dt><a name="install"></a><strong>install</strong>&nbsp;(...)</dt>
-<dd>
-
-Install one or more packages. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         ...: List of packages to install
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Boolean indicating the status of the action
-       
-       <li>OPKG return code, STDOUT and STDERR
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="installed"></a><strong>installed</strong>&nbsp;(pkg)</dt>
-<dd>
-
-Determine whether a given package is installed. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         pkg: Package
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean
-
-
-
-</dd>
-
-
-
-
-<dt><a name="list_all"></a><strong>list_all</strong>&nbsp;(pat, cb)</dt>
-<dd>
-
-List all packages known to opkg. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         pat: Only find packages matching this pattern, nil lists all packages
-       </li>
-       
-       <li>
-         cb: Callback function invoked for each package, receives name, version and description as arguments
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-nothing
-
-
-
-</dd>
-
-
-
-
-<dt><a name="list_installed"></a><strong>list_installed</strong>&nbsp;(pat, cb)</dt>
-<dd>
-
-List installed packages. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         pat: Only find packages matching this pattern, nil lists all packages
-       </li>
-       
-       <li>
-         cb: Callback function invoked for each package, receives name, version and description as arguments
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-nothing
-
-
-
-</dd>
-
-
-
-
-<dt><a name="overlay_root"></a><strong>overlay_root</strong>&nbsp;()</dt>
-<dd>
-
-Determines the overlay root used by opkg. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing the directory path of the overlay root.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="remove"></a><strong>remove</strong>&nbsp;(...)</dt>
-<dd>
-
-Remove one or more packages. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         ...: List of packages to install
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Boolean indicating the status of the action
-       
-       <li>OPKG return code, STDOUT and STDERR
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="status"></a><strong>status</strong>&nbsp;(pkg)</dt>
-<dd>
-
-Return the package status of one or more packages. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         pkg: Limit output to a (set of) packages
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing package status information
-
-
-
-</dd>
-
-
-
-
-<dt><a name="update"></a><strong>update</strong>&nbsp;()</dt>
-<dd>
-
-Update package lists. 
-
-
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Boolean indicating the status of the action
-       
-       <li>OPKG return code, STDOUT and STDERR
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="upgrade"></a><strong>upgrade</strong>&nbsp;()</dt>
-<dd>
-
-Upgrades all installed packages. 
-
-
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Boolean indicating the status of the action
-       
-       <li>OPKG return code, STDOUT and STDERR
-       
-</ol>
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/luci.model.uci.html b/documentation/api/modules/luci.model.uci.html
deleted file mode 100644 (file)
index c1eaf5f..0000000
+++ /dev/null
@@ -1,1631 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li><strong>luci.model.uci</strong></li>
-       
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Object Instance <code>luci.model.uci</code></h1>
-
-<p></p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.add">Cursor:add</a>&nbsp;(config, type)</td>
-       <td class="summary">
-Add an anonymous section.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.apply">Cursor:apply</a>&nbsp;(rollback)</td>
-       <td class="summary">
-Applies UCI configuration changes.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.changes">Cursor:changes</a>&nbsp;(config)</td>
-       <td class="summary">
-Get a table of saved but uncommitted changes.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.commit">Cursor:commit</a>&nbsp;(config)</td>
-       <td class="summary">
-Commit saved changes.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.confirm">Cursor:confirm</a>&nbsp;()</td>
-       <td class="summary">
-Confirms UCI apply process.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.delete">Cursor:delete</a>&nbsp;(config, section, option)</td>
-       <td class="summary">
-Deletes a section or an option.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.delete_all">Cursor:delete_all</a>&nbsp;(config, type, comparator)</td>
-       <td class="summary">
-Delete all sections of a given type that match certain criteria.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.foreach">Cursor:foreach</a>&nbsp;(config, type, callback)</td>
-       <td class="summary">
-Call a function for every section of a certain type.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.get">Cursor:get</a>&nbsp;(config, section, option)</td>
-       <td class="summary">
-Get a section type or an option 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.get_all">Cursor:get_all</a>&nbsp;(config, section)</td>
-       <td class="summary">
-Get all sections of a config or all values of a section.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.get_bool">Cursor:get_bool</a>&nbsp;(config, section, option)</td>
-       <td class="summary">
-Get a boolean option and return it's value as true or false.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.get_confdir">Cursor:get_confdir</a>&nbsp;()</td>
-       <td class="summary">
-Get the configuration directory.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.get_first">Cursor:get_first</a>&nbsp;(config, type, option, default)</td>
-       <td class="summary">
-Get the given option from the first section with the given type.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.get_list">Cursor:get_list</a>&nbsp;(config, section, option)</td>
-       <td class="summary">
-Get an option or list and return values as table.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.get_savedir">Cursor:get_savedir</a>&nbsp;()</td>
-       <td class="summary">
-Get the directory for uncomitted changes.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.get_session_id">Cursor:get_session_id</a>&nbsp;()</td>
-       <td class="summary">
-Get the effective session ID.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.load">Cursor:load</a>&nbsp;(config)</td>
-       <td class="summary">
-Manually load a config.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.revert">Cursor:revert</a>&nbsp;(config)</td>
-       <td class="summary">
-Revert saved but uncommitted changes.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.rollback">Cursor:rollback</a>&nbsp;()</td>
-       <td class="summary">
-Cancels UCI apply process.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.rollback_pending">Cursor:rollback_pending</a>&nbsp;()</td>
-       <td class="summary">
-Checks whether a pending rollback is scheduled.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.save">Cursor:save</a>&nbsp;(config)</td>
-       <td class="summary">
-Saves changes made to a config to make them committable.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.section">Cursor:section</a>&nbsp;(config, type, name, values)</td>
-       <td class="summary">
-Create a new section and initialize it with data.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.set">Cursor:set</a>&nbsp;(config, section, option, value)</td>
-       <td class="summary">
-Set a value or create a named section.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.set_confdir">Cursor:set_confdir</a>&nbsp;(directory)</td>
-       <td class="summary">
-Set the configuration directory.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.set_list">Cursor:set_list</a>&nbsp;(config, section, option, value)</td>
-       <td class="summary">
-Set given values as list.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.set_savedir">Cursor:set_savedir</a>&nbsp;(directory)</td>
-       <td class="summary">
-Set the directory for uncommitted changes.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.set_session_id">Cursor:set_session_id</a>&nbsp;(id)</td>
-       <td class="summary">
-Set the effective session ID.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.substate">Cursor:substate</a>&nbsp;()</td>
-       <td class="summary">
-Create a sub-state of this cursor.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.tset">Cursor:tset</a>&nbsp;(config, section, values)</td>
-       <td class="summary">
-Updated the data of a section using data from a table.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.unload">Cursor:unload</a>&nbsp;(config)</td>
-       <td class="summary">
-Discard changes made to a config.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cursor">cursor</a>&nbsp;()</td>
-       <td class="summary">
-Create a new UCI-Cursor.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cursor_state">cursor_state</a>&nbsp;()</td>
-       <td class="summary">
-Create a new Cursor initialized to the state directory.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="Cursor.add"></a><strong>Cursor:add</strong>&nbsp;(config, type)</dt>
-<dd>
-
-Add an anonymous section. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-       <li>
-         type: UCI section type
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Name of created section
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.apply"></a><strong>Cursor:apply</strong>&nbsp;(rollback)</dt>
-<dd>
-
-Applies UCI configuration changes. 
-If the rollback parameter is set to true, the apply function will invoke the 
-rollback mechanism which causes the configuration to be automatically reverted 
-if no confirm() call occurs within a certain timeout. 
-The current default timeout is 30s and can be increased using the 
-"luci.apply.timeout" uci configuration key. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         rollback: Enable rollback mechanism
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean whether operation succeeded
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.changes"></a><strong>Cursor:changes</strong>&nbsp;(config)</dt>
-<dd>
-
-Get a table of saved but uncommitted changes. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table of changes
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#Cursor.save">
-               Cursor:save
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.commit"></a><strong>Cursor:commit</strong>&nbsp;(config)</dt>
-<dd>
-
-Commit saved changes. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean whether operation succeeded
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#Cursor.revert">
-               Cursor:revert
-       </a>
-       
-       <li><a href="#Cursor.save">
-               Cursor:save
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.confirm"></a><strong>Cursor:confirm</strong>&nbsp;()</dt>
-<dd>
-
-Confirms UCI apply process. 
-If a previous UCI apply with rollback has been invoked using apply(true), 
-this function confirms the process and cancels the pending rollback timer. 
-If no apply with rollback session is active, the function has no effect and 
-returns with a "No data" error. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean whether operation succeeded
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.delete"></a><strong>Cursor:delete</strong>&nbsp;(config, section, option)</dt>
-<dd>
-
-Deletes a section or an option. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-       <li>
-         section: UCI section name
-       </li>
-       
-       <li>
-         option: UCI option (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean whether operation succeeded
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.delete_all"></a><strong>Cursor:delete_all</strong>&nbsp;(config, type, comparator)</dt>
-<dd>
-
-Delete all sections of a given type that match certain criteria. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-       <li>
-         type: UCI section type
-       </li>
-       
-       <li>
-         comparator: Function that will be called for each section and returns 
-                                       a boolean whether to delete the current section (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.foreach"></a><strong>Cursor:foreach</strong>&nbsp;(config, type, callback)</dt>
-<dd>
-
-Call a function for every section of a certain type. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-       <li>
-         type: UCI section type
-       </li>
-       
-       <li>
-         callback: Function to be called
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean whether operation succeeded
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.get"></a><strong>Cursor:get</strong>&nbsp;(config, section, option)</dt>
-<dd>
-
-Get a section type or an option 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-       <li>
-         section: UCI section name
-       </li>
-       
-       <li>
-         option: UCI option (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-UCI value
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.get_all"></a><strong>Cursor:get_all</strong>&nbsp;(config, section)</dt>
-<dd>
-
-Get all sections of a config or all values of a section. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-       <li>
-         section: UCI section name (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table of UCI sections or table of UCI values
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.get_bool"></a><strong>Cursor:get_bool</strong>&nbsp;(config, section, option)</dt>
-<dd>
-
-Get a boolean option and return it's value as true or false. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-       <li>
-         section: UCI section name
-       </li>
-       
-       <li>
-         option: UCI option
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.get_confdir"></a><strong>Cursor:get_confdir</strong>&nbsp;()</dt>
-<dd>
-
-Get the configuration directory. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Configuration directory
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.get_first"></a><strong>Cursor:get_first</strong>&nbsp;(config, type, option, default)</dt>
-<dd>
-
-Get the given option from the first section with the given type. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-       <li>
-         type: UCI section type
-       </li>
-       
-       <li>
-         option: UCI option (optional)
-       </li>
-       
-       <li>
-         default: Default value (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-UCI value
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.get_list"></a><strong>Cursor:get_list</strong>&nbsp;(config, section, option)</dt>
-<dd>
-
-Get an option or list and return values as table. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-       <li>
-         section: UCI section name
-       </li>
-       
-       <li>
-         option: UCI option
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-table.         If the option was not found, you will simply get an empty 
-                                       table.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.get_savedir"></a><strong>Cursor:get_savedir</strong>&nbsp;()</dt>
-<dd>
-
-Get the directory for uncomitted changes. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Save directory
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.get_session_id"></a><strong>Cursor:get_session_id</strong>&nbsp;()</dt>
-<dd>
-
-Get the effective session ID. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing the session ID
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.load"></a><strong>Cursor:load</strong>&nbsp;(config)</dt>
-<dd>
-
-Manually load a config. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean whether operation succeeded
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#Cursor.save">
-               Cursor:save
-       </a>
-       
-       <li><a href="#Cursor.unload">
-               Cursor:unload
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.revert"></a><strong>Cursor:revert</strong>&nbsp;(config)</dt>
-<dd>
-
-Revert saved but uncommitted changes. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean whether operation succeeded
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#Cursor.commit">
-               Cursor:commit
-       </a>
-       
-       <li><a href="#Cursor.save">
-               Cursor:save
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.rollback"></a><strong>Cursor:rollback</strong>&nbsp;()</dt>
-<dd>
-
-Cancels UCI apply process. 
-If a previous UCI apply with rollback has been invoked using apply(true), 
-this function cancels the process and rolls back the configuration to the 
-pre-apply state. 
-If no apply with rollback session is active, the function has no effect and 
-returns with a "No data" error. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean whether operation succeeded
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.rollback_pending"></a><strong>Cursor:rollback_pending</strong>&nbsp;()</dt>
-<dd>
-
-Checks whether a pending rollback is scheduled. 
-If a previous UCI apply with rollback has been invoked using apply(true), 
-and has not been confirmed or rolled back yet, this function returns true 
-and the remaining time until rollback in seconds. If no rollback is pending, 
-the function returns false. On error, the function returns false and an 
-additional string describing the error. 
-
-
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Boolean whether rollback is pending
-       
-       <li>Remaining time in seconds
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.save"></a><strong>Cursor:save</strong>&nbsp;(config)</dt>
-<dd>
-
-Saves changes made to a config to make them committable. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean whether operation succeeded
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#Cursor.load">
-               Cursor:load
-       </a>
-       
-       <li><a href="#Cursor.unload">
-               Cursor:unload
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.section"></a><strong>Cursor:section</strong>&nbsp;(config, type, name, values)</dt>
-<dd>
-
-Create a new section and initialize it with data. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-       <li>
-         type: UCI section type
-       </li>
-       
-       <li>
-         name: UCI section name (optional)
-       </li>
-       
-       <li>
-         values: Table of key - value pairs to initialize the section with
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Name of created section
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.set"></a><strong>Cursor:set</strong>&nbsp;(config, section, option, value)</dt>
-<dd>
-
-Set a value or create a named section. 
-When invoked with three arguments <code>config</code>, <code>sectionname</code>, <code>sectiontype</code>, 
-then a named section of the given type is created. 
-When invoked with four arguments <code>config</code>, <code>sectionname</code>, <code>optionname</code> and 
-<code>optionvalue</code> then the value of the specified option is set to the given value. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-       <li>
-         section: UCI section name
-       </li>
-       
-       <li>
-         option: UCI option or UCI section type
-       </li>
-       
-       <li>
-         value: UCI value or nothing if you want to create a section
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean whether operation succeeded
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.set_confdir"></a><strong>Cursor:set_confdir</strong>&nbsp;(directory)</dt>
-<dd>
-
-Set the configuration directory. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         directory: UCI configuration directory
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean whether operation succeeded
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.set_list"></a><strong>Cursor:set_list</strong>&nbsp;(config, section, option, value)</dt>
-<dd>
-
-Set given values as list. Setting a list option to an empty list 
-has the same effect as deleting the option. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-       <li>
-         section: UCI section name
-       </li>
-       
-       <li>
-         option: UCI option
-       </li>
-       
-       <li>
-         value: Value or table. Non-table values will be set as single 
-                                       item UCI list.
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean whether operation succeeded
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.set_savedir"></a><strong>Cursor:set_savedir</strong>&nbsp;(directory)</dt>
-<dd>
-
-Set the directory for uncommitted changes. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         directory: UCI changes directory
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean whether operation succeeded
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.set_session_id"></a><strong>Cursor:set_session_id</strong>&nbsp;(id)</dt>
-<dd>
-
-Set the effective session ID. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         id: String containing the session ID to set
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean whether operation succeeded
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.substate"></a><strong>Cursor:substate</strong>&nbsp;()</dt>
-<dd>
-
-Create a sub-state of this cursor. 
-The sub-state is tied to the parent cursor, means it the parent unloads or 
-loads configs, the sub state will do so as well. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-UCI state cursor tied to the parent cursor
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.tset"></a><strong>Cursor:tset</strong>&nbsp;(config, section, values)</dt>
-<dd>
-
-Updated the data of a section using data from a table. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-       <li>
-         section: UCI section name (optional)
-       </li>
-       
-       <li>
-         values: Table of key - value pairs to update the section with
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.unload"></a><strong>Cursor:unload</strong>&nbsp;(config)</dt>
-<dd>
-
-Discard changes made to a config. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean whether operation succeeded
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#Cursor.load">
-               Cursor:load
-       </a>
-       
-       <li><a href="#Cursor.save">
-               Cursor:save
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="cursor"></a><strong>cursor</strong>&nbsp;()</dt>
-<dd>
-
-Create a new UCI-Cursor. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-UCI-Cursor
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cursor_state"></a><strong>cursor_state</strong>&nbsp;()</dt>
-<dd>
-
-Create a new Cursor initialized to the state directory. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-UCI cursor
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/luci.rpcc.html b/documentation/api/modules/luci.rpcc.html
deleted file mode 100644 (file)
index 1806578..0000000
+++ /dev/null
@@ -1,324 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li><strong>luci.rpcc</strong></li>
-       
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Object Instance <code>luci.rpcc</code></h1>
-
-<p></p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#Client.proxy">Client:proxy</a>&nbsp;(prefix)</td>
-       <td class="summary">
-Create a transparent RPC proxy.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Client.request">Client:request</a>&nbsp;(method, params, notification)</td>
-       <td class="summary">
-Request an RP call and get the response.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="Client.proxy"></a><strong>Client:proxy</strong>&nbsp;(prefix)</dt>
-<dd>
-
-Create a transparent RPC proxy. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         prefix: Method prefix
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-RPC Proxy object
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Client.request"></a><strong>Client:request</strong>&nbsp;(method, params, notification)</dt>
-<dd>
-
-Request an RP call and get the response. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         method: Remote method
-       </li>
-       
-       <li>
-         params: Parameters
-       </li>
-       
-       <li>
-         notification: Notification only?
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-response 
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/luci.rpcc.ruci.html b/documentation/api/modules/luci.rpcc.ruci.html
deleted file mode 100644 (file)
index 7348f19..0000000
+++ /dev/null
@@ -1,277 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li><strong>luci.rpcc.ruci</strong></li>
-       
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Object Instance <code>luci.rpcc.ruci</code></h1>
-
-<p></p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#factory">factory</a>&nbsp;(rpccl)</td>
-       <td class="summary">
-Create a new UCI over RPC proxy.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="factory"></a><strong>factory</strong>&nbsp;(rpccl)</dt>
-<dd>
-
-Create a new UCI over RPC proxy. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         rpccl: RPC client
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Network transparent UCI module 
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/luci.sys.html b/documentation/api/modules/luci.sys.html
deleted file mode 100644 (file)
index b86d280..0000000
+++ /dev/null
@@ -1,641 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li><strong>luci.sys</strong></li>
-       
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>luci.sys</code></h1>
-
-<p></p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#call">call</a>&nbsp;(...)</td>
-       <td class="summary">
-Execute a given shell command and return the error code 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#dmesg">dmesg</a>&nbsp;()</td>
-       <td class="summary">
-Retrieves the output of the "dmesg" command.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#exec">exec</a>&nbsp;(command)</td>
-       <td class="summary">
-Execute a given shell command and capture its standard output 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#getenv">getenv</a>&nbsp;(var)</td>
-       <td class="summary">
-Retrieve environment variables.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#hostname">hostname</a>&nbsp;(String)</td>
-       <td class="summary">
-Get or set the current hostname.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#httpget">httpget</a>&nbsp;(url, stream, target)</td>
-       <td class="summary">
-Returns the contents of a documented referred by an URL.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#mounts">mounts</a>&nbsp;()</td>
-       <td class="summary">
-Retrieve information about currently mounted file systems.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#reboot">reboot</a>&nbsp;()</td>
-       <td class="summary">
-Initiate a system reboot.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#syslog">syslog</a>&nbsp;()</td>
-       <td class="summary">
-Retrieves the output of the "logread" command.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#uniqueid">uniqueid</a>&nbsp;(bytes)</td>
-       <td class="summary">
-Generates a random id with specified length.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#uptime">uptime</a>&nbsp;()</td>
-       <td class="summary">
-Returns the current system uptime stats.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="call"></a><strong>call</strong>&nbsp;(...)</dt>
-<dd>
-
-Execute a given shell command and return the error code 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         ...: Command to call
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Error code of the command
-
-
-
-</dd>
-
-
-
-
-<dt><a name="dmesg"></a><strong>dmesg</strong>&nbsp;()</dt>
-<dd>
-
-Retrieves the output of the "dmesg" command. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing the current log buffer
-
-
-
-</dd>
-
-
-
-
-<dt><a name="exec"></a><strong>exec</strong>&nbsp;(command)</dt>
-<dd>
-
-Execute a given shell command and capture its standard output 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         command: Command to call
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing the return the output of the command
-
-
-
-</dd>
-
-
-
-
-<dt><a name="getenv"></a><strong>getenv</strong>&nbsp;(var)</dt>
-<dd>
-
-Retrieve environment variables. If no variable is given then a table 
-containing the whole environment is returned otherwise this function returns 
-the corresponding string value for the given name or nil if no such variable 
-exists.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         var: Name of the environment variable to retrieve (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>String containing the value of the specified variable
-       
-       <li>Table containing all variables if no variable name is given
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="hostname"></a><strong>hostname</strong>&nbsp;(String)</dt>
-<dd>
-
-Get or set the current hostname. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         String: containing a new hostname to set (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing the system hostname
-
-
-
-</dd>
-
-
-
-
-<dt><a name="httpget"></a><strong>httpget</strong>&nbsp;(url, stream, target)</dt>
-<dd>
-
-Returns the contents of a documented referred by an URL. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         url: The URL to retrieve
-       </li>
-       
-       <li>
-         stream: Return a stream instead of a buffer
-       </li>
-       
-       <li>
-         target: Directly write to target file name
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing the contents of given the URL
-
-
-
-</dd>
-
-
-
-
-<dt><a name="mounts"></a><strong>mounts</strong>&nbsp;()</dt>
-<dd>
-
-Retrieve information about currently mounted file systems. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing mount information
-
-
-
-</dd>
-
-
-
-
-<dt><a name="reboot"></a><strong>reboot</strong>&nbsp;()</dt>
-<dd>
-
-Initiate a system reboot. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Return value of os.execute()
-
-
-
-</dd>
-
-
-
-
-<dt><a name="syslog"></a><strong>syslog</strong>&nbsp;()</dt>
-<dd>
-
-Retrieves the output of the "logread" command. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing the current log buffer
-
-
-
-</dd>
-
-
-
-
-<dt><a name="uniqueid"></a><strong>uniqueid</strong>&nbsp;(bytes)</dt>
-<dd>
-
-Generates a random id with specified length. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         bytes: Number of bytes for the unique id
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing hex encoded id
-
-
-
-</dd>
-
-
-
-
-<dt><a name="uptime"></a><strong>uptime</strong>&nbsp;()</dt>
-<dd>
-
-Returns the current system uptime stats. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing total uptime in seconds
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/luci.sys.init.html b/documentation/api/modules/luci.sys.init.html
deleted file mode 100644 (file)
index e2c51f9..0000000
+++ /dev/null
@@ -1,512 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li><strong>luci.sys.init</strong></li>
-       
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>luci.sys.init</code></h1>
-
-<p>
-LuCI system utilities / init related functions. 
-</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#init.disable">disable</a>&nbsp;(name)</td>
-       <td class="summary">
-Disable the given init script 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#init.enable">enable</a>&nbsp;(name)</td>
-       <td class="summary">
-Enable the given init script 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#init.enabled">enabled</a>&nbsp;(name)</td>
-       <td class="summary">
-Test whether the given init script is enabled 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#init.index">index</a>&nbsp;(name)</td>
-       <td class="summary">
-Get the index of he given init script 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#init.names">names</a>&nbsp;()</td>
-       <td class="summary">
-Get the names of all installed init scripts 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#init.start">start</a>&nbsp;(name)</td>
-       <td class="summary">
-Start the given init script 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#init.stop">stop</a>&nbsp;(name)</td>
-       <td class="summary">
-Stop the given init script 
- </td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="init.disable"></a><strong>disable</strong>&nbsp;(name)</dt>
-<dd>
-
-Disable the given init script 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         name: Name of the init script
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean indicating success
-
-
-
-</dd>
-
-
-
-
-<dt><a name="init.enable"></a><strong>enable</strong>&nbsp;(name)</dt>
-<dd>
-
-Enable the given init script 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         name: Name of the init script
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean indicating success
-
-
-
-</dd>
-
-
-
-
-<dt><a name="init.enabled"></a><strong>enabled</strong>&nbsp;(name)</dt>
-<dd>
-
-Test whether the given init script is enabled 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         name: Name of the init script
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean indicating whether init is enabled
-
-
-
-</dd>
-
-
-
-
-<dt><a name="init.index"></a><strong>index</strong>&nbsp;(name)</dt>
-<dd>
-
-Get the index of he given init script 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         name: Name of the init script
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Numeric index value
-
-
-
-</dd>
-
-
-
-
-<dt><a name="init.names"></a><strong>names</strong>&nbsp;()</dt>
-<dd>
-
-Get the names of all installed init scripts 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing the names of all inistalled init scripts
-
-
-
-</dd>
-
-
-
-
-<dt><a name="init.start"></a><strong>start</strong>&nbsp;(name)</dt>
-<dd>
-
-Start the given init script 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         name: Name of the init script
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean indicating success
-
-
-
-</dd>
-
-
-
-
-<dt><a name="init.stop"></a><strong>stop</strong>&nbsp;(name)</dt>
-<dd>
-
-Stop the given init script 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         name: Name of the init script
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean indicating success
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/luci.sys.iptparser.html b/documentation/api/modules/luci.sys.iptparser.html
deleted file mode 100644 (file)
index 5928281..0000000
+++ /dev/null
@@ -1,462 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li><strong>luci.sys.iptparser</strong></li>
-       
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Object Instance <code>luci.sys.iptparser</code></h1>
-
-<p></p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#IptParser">IptParser</a>&nbsp;(family)</td>
-       <td class="summary">
-Create a new iptables parser object.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#IptParser.chain">IptParser:chain</a>&nbsp;(table, chain)</td>
-       <td class="summary">
-Return the given firewall chain within the given table name.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#IptParser.chains">IptParser:chains</a>&nbsp;(table)</td>
-       <td class="summary">
-Find the names of all chains within the given table name.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#IptParser.is_custom_target">IptParser:is_custom_target</a>&nbsp;(target)</td>
-       <td class="summary">
-Test whether the given target points to a custom chain.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#IptParser.resync">IptParser:resync</a>&nbsp;()</td>
-       <td class="summary">
-Rebuild the internal lookup table, for example when rules have changed 
-through external commands.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#IptParser.tables">IptParser:tables</a>&nbsp;()</td>
-       <td class="summary">
-Find the names of all tables.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="IptParser"></a><strong>IptParser</strong>&nbsp;(family)</dt>
-<dd>
-
-Create a new iptables parser object. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         family: Number specifying the address family. 4 for IPv4, 6 for IPv6
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-IptParser instance
-
-
-
-</dd>
-
-
-
-
-<dt><a name="IptParser.chain"></a><strong>IptParser:chain</strong>&nbsp;(table, chain)</dt>
-<dd>
-
-Return the given firewall chain within the given table name. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         table: String containing the table name
-       </li>
-       
-       <li>
-         chain: String containing the chain name
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing the fields "policy", "packets", "bytes" 
-                               and "rules". The "rules" field is a table of rule tables.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="IptParser.chains"></a><strong>IptParser:chains</strong>&nbsp;(table)</dt>
-<dd>
-
-Find the names of all chains within the given table name. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         table: String containing the table name
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table of chain names in the order they occur.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="IptParser.is_custom_target"></a><strong>IptParser:is_custom_target</strong>&nbsp;(target)</dt>
-<dd>
-
-Test whether the given target points to a custom chain. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         target: String containing the target action
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean indicating whether target is a custom chain.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="IptParser.resync"></a><strong>IptParser:resync</strong>&nbsp;()</dt>
-<dd>
-
-Rebuild the internal lookup table, for example when rules have changed 
-through external commands.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-nothing
-
-
-
-</dd>
-
-
-
-
-<dt><a name="IptParser.tables"></a><strong>IptParser:tables</strong>&nbsp;()</dt>
-<dd>
-
-Find the names of all tables. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table of table names.
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/luci.sys.net.html b/documentation/api/modules/luci.sys.net.html
deleted file mode 100644 (file)
index e7802bb..0000000
+++ /dev/null
@@ -1,597 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li><strong>luci.sys.net</strong></li>
-       
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>luci.sys.net</code></h1>
-
-<p>
-LuCI system utilities / network related functions. 
-</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#net.arptable">arptable</a>&nbsp;()</td>
-       <td class="summary">
-Returns the current arp-table entries as two-dimensional table.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#net.conntrack">conntrack</a>&nbsp;()</td>
-       <td class="summary">
-Returns conntrack information 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#net.deviceinfo">deviceinfo</a>&nbsp;()</td>
-       <td class="summary">
-Return information about available network interfaces.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#net.devices">devices</a>&nbsp;()</td>
-       <td class="summary">
-Determine the names of available network interfaces.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#net.host_hints">host_hints</a>&nbsp;()</td>
-       <td class="summary">
-Returns a two-dimensional table of host hints.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#net.ipv4_hints">ipv4_hints</a>&nbsp;()</td>
-       <td class="summary">
-Returns a two-dimensional table of IPv4 address hints.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#net.ipv6_hints">ipv6_hints</a>&nbsp;()</td>
-       <td class="summary">
-Returns a two-dimensional table of IPv6 address hints.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#net.mac_hints">mac_hints</a>&nbsp;()</td>
-       <td class="summary">
-Returns a two-dimensional table of mac address hints.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#net.pingtest">pingtest</a>&nbsp;(host)</td>
-       <td class="summary">
-Tests whether the given host responds to ping probes.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#net.routes">routes</a>&nbsp;()</td>
-       <td class="summary">
-Returns the current kernel routing table entries.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#net.routes6">routes6</a>&nbsp;()</td>
-       <td class="summary">
-Returns the current ipv6 kernel routing table entries.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="net.arptable"></a><strong>arptable</strong>&nbsp;()</dt>
-<dd>
-
-Returns the current arp-table entries as two-dimensional table. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table of table containing the current arp entries. 
-                       The following fields are defined for arp entry objects: 
-                       { "IP address", "HW address", "HW type", "Flags", "Mask", "Device" }
-
-
-
-</dd>
-
-
-
-
-<dt><a name="net.conntrack"></a><strong>conntrack</strong>&nbsp;()</dt>
-<dd>
-
-Returns conntrack information 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table with the currently tracked IP connections
-
-
-
-</dd>
-
-
-
-
-<dt><a name="net.deviceinfo"></a><strong>deviceinfo</strong>&nbsp;()</dt>
-<dd>
-
-Return information about available network interfaces. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing all current interface names and their information
-
-
-
-</dd>
-
-
-
-
-<dt><a name="net.devices"></a><strong>devices</strong>&nbsp;()</dt>
-<dd>
-
-Determine the names of available network interfaces. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing all current interface names
-
-
-
-</dd>
-
-
-
-
-<dt><a name="net.host_hints"></a><strong>host_hints</strong>&nbsp;()</dt>
-<dd>
-
-Returns a two-dimensional table of host hints. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table of table containing known hosts from various sources, 
-         indexed by mac address. Each subtable contains at least one 
-         of the fields "name", "ipv4" or "ipv6".
-
-
-
-</dd>
-
-
-
-
-<dt><a name="net.ipv4_hints"></a><strong>ipv4_hints</strong>&nbsp;()</dt>
-<dd>
-
-Returns a two-dimensional table of IPv4 address hints. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table of table containing known hosts from various sources. 
-         Each entry contains the values in the following order: 
-         [ "ip", "name" ]
-
-
-
-</dd>
-
-
-
-
-<dt><a name="net.ipv6_hints"></a><strong>ipv6_hints</strong>&nbsp;()</dt>
-<dd>
-
-Returns a two-dimensional table of IPv6 address hints. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table of table containing known hosts from various sources. 
-         Each entry contains the values in the following order: 
-         [ "ip", "name" ]
-
-
-
-</dd>
-
-
-
-
-<dt><a name="net.mac_hints"></a><strong>mac_hints</strong>&nbsp;()</dt>
-<dd>
-
-Returns a two-dimensional table of mac address hints. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table of table containing known hosts from various sources. 
-         Each entry contains the values in the following order: 
-         [ "mac", "name" ]
-
-
-
-</dd>
-
-
-
-
-<dt><a name="net.pingtest"></a><strong>pingtest</strong>&nbsp;(host)</dt>
-<dd>
-
-Tests whether the given host responds to ping probes. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         host: String containing a hostname or IPv4 address
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Number containing 0 on success and >= 1 on error
-
-
-
-</dd>
-
-
-
-
-<dt><a name="net.routes"></a><strong>routes</strong>&nbsp;()</dt>
-<dd>
-
-Returns the current kernel routing table entries. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table of tables with properties of the corresponding routes. 
-                       The following fields are defined for route entry tables: 
-                       { "dest", "gateway", "metric", "refcount", "usecount", "irtt", 
-                         "flags", "device" }
-
-
-
-</dd>
-
-
-
-
-<dt><a name="net.routes6"></a><strong>routes6</strong>&nbsp;()</dt>
-<dd>
-
-Returns the current ipv6 kernel routing table entries. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table of tables with properties of the corresponding routes. 
-                       The following fields are defined for route entry tables: 
-                       { "source", "dest", "nexthop", "metric", "refcount", "usecount", 
-                         "flags", "device" }
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/luci.sys.process.html b/documentation/api/modules/luci.sys.process.html
deleted file mode 100644 (file)
index d366481..0000000
+++ /dev/null
@@ -1,519 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li><strong>luci.sys.process</strong></li>
-       
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>luci.sys.process</code></h1>
-
-<p>
-LuCI system utilities / process related functions. 
-</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#process.exec">exec</a>&nbsp;(commend, stdout, stderr, nowait)</td>
-       <td class="summary">
-Execute a process, optionally capturing stdio.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#process.info">info</a>&nbsp;()</td>
-       <td class="summary">
-Get the current process id.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#process.list">list</a>&nbsp;()</td>
-       <td class="summary">
-Retrieve information about currently running processes.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#process.setgroup">setgroup</a>&nbsp;(gid)</td>
-       <td class="summary">
-Set the gid of a process identified by given pid.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#process.setuser">setuser</a>&nbsp;(uid)</td>
-       <td class="summary">
-Set the uid of a process identified by given pid.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#process.signal">signal</a>&nbsp;(pid, sig)</td>
-       <td class="summary">
-Send a signal to a process identified by given pid.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="process.exec"></a><strong>exec</strong>&nbsp;(commend, stdout, stderr, nowait)</dt>
-<dd>
-
-Execute a process, optionally capturing stdio. 
-Executes the process specified by the given argv vector, e.g. 
-<code>{ "/bin/sh", "-c", "echo 1" }</code> and waits for it to terminate unless a true 
-value has been passed for the "nowait" parameter. 
-When a function value is passed for the stdout or stderr arguments, the passed 
-function is repeatedly called for each chunk read from the corresponding stdio 
-stream. The read data is passed as string containing at most 4096 bytes at a 
-time. 
-When a true, non-function value is passed for the stdout or stderr arguments, 
-the data of the corresponding stdio stream is read into an internal string 
-buffer and returned as "stdout" or "stderr" field respectively in the result 
-table. 
-When a true value is passed to the nowait parameter, the function does not 
-await process termination but returns as soon as all captured stdio streams 
-have been closed or - if no streams are captured - immediately after launching 
-the process. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         commend: Table containing the argv vector to execute
-       </li>
-       
-       <li>
-         stdout: Callback function or boolean to indicate capturing (optional)
-       </li>
-       
-       <li>
-         stderr: Callback function or boolean to indicate capturing (optional)
-       </li>
-       
-       <li>
-         nowait: Don't wait for process termination when true (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing at least the fields "code" which holds the exit 
-            status of the invoked process or "-1" on error and "pid", which 
-            contains the process id assigned to the spawned process. When 
-            stdout and/or stderr capturing has been requested, it additionally 
-            contains "stdout" and "stderr" fields respectively, holding the 
-            captured stdio data as string.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="process.info"></a><strong>info</strong>&nbsp;()</dt>
-<dd>
-
-Get the current process id. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Number containing the current pid
-
-
-
-</dd>
-
-
-
-
-<dt><a name="process.list"></a><strong>list</strong>&nbsp;()</dt>
-<dd>
-
-Retrieve information about currently running processes. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing process information
-
-
-
-</dd>
-
-
-
-
-<dt><a name="process.setgroup"></a><strong>setgroup</strong>&nbsp;(gid)</dt>
-<dd>
-
-Set the gid of a process identified by given pid. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         gid: Number containing the Unix group id
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Boolean indicating successful operation
-       
-       <li>String containing the error message if failed
-       
-       <li>Number containing the error code if failed
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="process.setuser"></a><strong>setuser</strong>&nbsp;(uid)</dt>
-<dd>
-
-Set the uid of a process identified by given pid. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         uid: Number containing the Unix user id
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Boolean indicating successful operation
-       
-       <li>String containing the error message if failed
-       
-       <li>Number containing the error code if failed
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="process.signal"></a><strong>signal</strong>&nbsp;(pid, sig)</dt>
-<dd>
-
-Send a signal to a process identified by given pid. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         pid: Number containing the process id
-       </li>
-       
-       <li>
-         sig: Signal to send (default: 15 [SIGTERM])
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Boolean indicating successful operation
-       
-       <li>Number containing the error code if failed
-       
-</ol>
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/luci.sys.user.html b/documentation/api/modules/luci.sys.user.html
deleted file mode 100644 (file)
index b2307ad..0000000
+++ /dev/null
@@ -1,412 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li><strong>luci.sys.user</strong></li>
-       
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>luci.sys.user</code></h1>
-
-<p>
-LuCI system utilities / user related functions. 
-</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#getuser">getuser</a>&nbsp;(uid)</td>
-       <td class="summary">
-Retrieve user information for given uid.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#user.checkpasswd">checkpasswd</a>&nbsp;(username, pass)</td>
-       <td class="summary">
-Test whether given string matches the password of a given system user.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#user.getpasswd">getpasswd</a>&nbsp;(username)</td>
-       <td class="summary">
-Retrieve the current user password hash.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#user.setpasswd">setpasswd</a>&nbsp;(username, password)</td>
-       <td class="summary">
-Change the password of given user.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="getuser"></a><strong>getuser</strong>&nbsp;(uid)</dt>
-<dd>
-
-Retrieve user information for given uid. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         uid: Number containing the Unix user id
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing the following fields: 
-                               { "uid", "gid", "name", "passwd", "dir", "shell", "gecos" }
-
-
-
-</dd>
-
-
-
-
-<dt><a name="user.checkpasswd"></a><strong>checkpasswd</strong>&nbsp;(username, pass)</dt>
-<dd>
-
-Test whether given string matches the password of a given system user. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         username: String containing the Unix user name
-       </li>
-       
-       <li>
-         pass: String containing the password to compare
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean indicating whether the passwords are equal
-
-
-
-</dd>
-
-
-
-
-<dt><a name="user.getpasswd"></a><strong>getpasswd</strong>&nbsp;(username)</dt>
-<dd>
-
-Retrieve the current user password hash. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         username: String containing the username to retrieve the password for
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>String containing the hash or nil if no password is set.
-       
-       <li>Password database entry
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="user.setpasswd"></a><strong>setpasswd</strong>&nbsp;(username, password)</dt>
-<dd>
-
-Change the password of given user. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         username: String containing the Unix user name
-       </li>
-       
-       <li>
-         password: String containing the password to compare
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Number containing 0 on success and >= 1 on error
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/luci.sys.wifi.html b/documentation/api/modules/luci.sys.wifi.html
deleted file mode 100644 (file)
index 6c89324..0000000
+++ /dev/null
@@ -1,280 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li><strong>luci.sys.wifi</strong></li>
-       
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>luci.sys.wifi</code></h1>
-
-<p>
-LuCI system utilities / wifi related functions. 
-</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#wifi.getiwinfo">getiwinfo</a>&nbsp;(ifname)</td>
-       <td class="summary">
-Get wireless information for given interface.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="wifi.getiwinfo"></a><strong>getiwinfo</strong>&nbsp;(ifname)</dt>
-<dd>
-
-Get wireless information for given interface. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         ifname: String containing the interface name
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-A wrapped iwinfo object instance
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/luci.util.html b/documentation/api/modules/luci.util.html
deleted file mode 100644 (file)
index f8baddf..0000000
+++ /dev/null
@@ -1,1830 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li><strong>luci.util</strong></li>
-       
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>luci.util</code></h1>
-
-<p></p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#append">append</a>&nbsp;(src, ...)</td>
-       <td class="summary">
-Appends numerically indexed tables or single objects to a given table.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#bigendian">bigendian</a>&nbsp;()</td>
-       <td class="summary">
-Test whether the current system is operating in big endian mode.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#class">class</a>&nbsp;(base)</td>
-       <td class="summary">
-Create a Class object (Python-style object model).</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#clone">clone</a>&nbsp;(object, deep)</td>
-       <td class="summary">
-Clones the given object and return it's copy.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cmatch">cmatch</a>&nbsp;(str, pattern)</td>
-       <td class="summary">
-Count the occurrences of given substring in given string.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#combine">combine</a>&nbsp;(tbl1, tbl2, ...)</td>
-       <td class="summary">
-Combines two or more numerically indexed tables and single objects into one table.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#contains">contains</a>&nbsp;(table, value)</td>
-       <td class="summary">
-Checks whether the given table contains the given value.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#copcall">copcall</a>&nbsp;(f, ...)</td>
-       <td class="summary">
-This is a coroutine-safe drop-in replacement for Lua's "pcall"-function 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#coxpcall">coxpcall</a>&nbsp;(f, err, ...)</td>
-       <td class="summary">
-This is a coroutine-safe drop-in replacement for Lua's "xpcall"-function 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#dumptable">dumptable</a>&nbsp;(t, maxdepth)</td>
-       <td class="summary">
-Recursively dumps a table to stdout, useful for testing and debugging.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#exec">exec</a>&nbsp;(command)</td>
-       <td class="summary">
-Execute given commandline and gather stdout.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#execi">execi</a>&nbsp;(command)</td>
-       <td class="summary">
-Return a line-buffered iterator over the output of given command.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#get_bytecode">get_bytecode</a>&nbsp;(val)</td>
-       <td class="summary">
-Return the current runtime bytecode of the given data.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#imatch">imatch</a>&nbsp;(val)</td>
-       <td class="summary">
-Return a matching iterator for the given value.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#instanceof">instanceof</a>&nbsp;(object, class)</td>
-       <td class="summary">
-Test whether the given object is an instance of the given class.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#keys">keys</a>&nbsp;(t)</td>
-       <td class="summary">
-Retrieve all keys of given associative table.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#kspairs">kspairs</a>&nbsp;(t)</td>
-       <td class="summary">
-Return a key, value iterator for the given table.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#libpath">libpath</a>&nbsp;()</td>
-       <td class="summary">
-Returns the absolute path to LuCI base directory.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#parse_units">parse_units</a>&nbsp;(ustr)</td>
-       <td class="summary">
-Parse certain units from the given string and return the canonical integer 
-value or 0 if the unit is unknown.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#pcdata">pcdata</a>&nbsp;(value)</td>
-       <td class="summary">
-Create valid XML PCDATA from given string.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#perror">perror</a>&nbsp;(obj)</td>
-       <td class="summary">
-Write given object to stderr.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#restore_data">restore_data</a>&nbsp;(str)</td>
-       <td class="summary">
-Restore data previously serialized with serialize_data().</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#serialize_data">serialize_data</a>&nbsp;(val)</td>
-       <td class="summary">
-Recursively serialize given data to lua code, suitable for restoring 
-with loadstring().</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#serialize_json">serialize_json</a>&nbsp;(data, writer)</td>
-       <td class="summary">
-Convert data structure to JSON 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#shellquote">shellquote</a>&nbsp;(value)</td>
-       <td class="summary">
-Safely quote value for use in shell commands.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#spairs">spairs</a>&nbsp;(t, f)</td>
-       <td class="summary">
-Return a key, value iterator which returns the values sorted according to 
-the provided callback function.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#split">split</a>&nbsp;(str, pat, max, regex)</td>
-       <td class="summary">
-Splits given string on a defined separator sequence and return a table 
-containing the resulting substrings.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#strip_bytecode">strip_bytecode</a>&nbsp;(code)</td>
-       <td class="summary">
-Strips unnecessary lua bytecode from given string.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#striptags">striptags</a>&nbsp;(value)</td>
-       <td class="summary">
-Strip HTML tags from given string.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#threadlocal">threadlocal</a>&nbsp;()</td>
-       <td class="summary">
-Create a new or get an already existing thread local store associated with 
-the current active coroutine.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#trim">trim</a>&nbsp;(str)</td>
-       <td class="summary">
-Remove leading and trailing whitespace from given string value.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#ubus">ubus</a>&nbsp;(object, method, values)</td>
-       <td class="summary">
-Issue an ubus call.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#update">update</a>&nbsp;(t, updates)</td>
-       <td class="summary">
-Update values in given table with the values from the second given table.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#urldecode">urldecode</a>&nbsp;(str, decode_plus)</td>
-       <td class="summary">
-Decode an URL-encoded string - optionally decoding the "+" sign to space.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#urlencode">urlencode</a>&nbsp;(str)</td>
-       <td class="summary">
-URL-encode given string.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#vspairs">vspairs</a>&nbsp;(t)</td>
-       <td class="summary">
-Return a key, value iterator for the given table.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="append"></a><strong>append</strong>&nbsp;(src, ...)</dt>
-<dd>
-
-Appends numerically indexed tables or single objects to a given table. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         src: Target table
-       </li>
-       
-       <li>
-         ...: Objects to insert
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Target table
-
-
-
-</dd>
-
-
-
-
-<dt><a name="bigendian"></a><strong>bigendian</strong>&nbsp;()</dt>
-<dd>
-
-Test whether the current system is operating in big endian mode. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean value indicating whether system is big endian
-
-
-
-</dd>
-
-
-
-
-<dt><a name="class"></a><strong>class</strong>&nbsp;(base)</dt>
-<dd>
-
-Create a Class object (Python-style object model). 
-The class object can be instantiated by calling itself. 
-Any class functions or shared parameters can be attached to this object. 
-Attaching a table to the class object makes this table shared between 
-all instances of this class. For object parameters use the __init__ function. 
-Classes can inherit member functions and values from a base class. 
-Class can be instantiated by calling them. All parameters will be passed 
-to the __init__ function of this class - if such a function exists. 
-The __init__ function must be used to set any object parameters that are not shared 
-with other objects of this class. Any return values will be ignored. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         base: The base class to inherit from (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-A class object
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#instanceof">
-               instanceof
-       </a>
-       
-       <li><a href="#clone">
-               clone
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="clone"></a><strong>clone</strong>&nbsp;(object, deep)</dt>
-<dd>
-
-Clones the given object and return it's copy. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         object: Table value to clone
-       </li>
-       
-       <li>
-         deep: Boolean indicating whether to do recursive cloning
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Cloned table value
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cmatch"></a><strong>cmatch</strong>&nbsp;(str, pattern)</dt>
-<dd>
-
-Count the occurrences of given substring in given string. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         str: String to search in
-       </li>
-       
-       <li>
-         pattern: String containing pattern to find
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Number of found occurrences
-
-
-
-</dd>
-
-
-
-
-<dt><a name="combine"></a><strong>combine</strong>&nbsp;(tbl1, tbl2, ...)</dt>
-<dd>
-
-Combines two or more numerically indexed tables and single objects into one table. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         tbl1: Table value to combine
-       </li>
-       
-       <li>
-         tbl2: Table value to combine
-       </li>
-       
-       <li>
-         ...: More tables to combine
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table value containing all values of given tables
-
-
-
-</dd>
-
-
-
-
-<dt><a name="contains"></a><strong>contains</strong>&nbsp;(table, value)</dt>
-<dd>
-
-Checks whether the given table contains the given value. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         table: Table value
-       </li>
-       
-       <li>
-         value: Value to search within the given table
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Number indicating the first index at which the given value occurs 
-                                       within table or false.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="copcall"></a><strong>copcall</strong>&nbsp;(f, ...)</dt>
-<dd>
-
-This is a coroutine-safe drop-in replacement for Lua's "pcall"-function 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         f: Lua function to be called protected
-       </li>
-       
-       <li>
-         ...: Parameters passed to the function
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-A boolean whether the function call succeeded and the returns 
-                                       values of the function or the error object
-
-
-
-</dd>
-
-
-
-
-<dt><a name="coxpcall"></a><strong>coxpcall</strong>&nbsp;(f, err, ...)</dt>
-<dd>
-
-This is a coroutine-safe drop-in replacement for Lua's "xpcall"-function 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         f: Lua function to be called protected
-       </li>
-       
-       <li>
-         err: Custom error handler
-       </li>
-       
-       <li>
-         ...: Parameters passed to the function
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-A boolean whether the function call succeeded and the return 
-                                       values of either the function or the error handler
-
-
-
-</dd>
-
-
-
-
-<dt><a name="dumptable"></a><strong>dumptable</strong>&nbsp;(t, maxdepth)</dt>
-<dd>
-
-Recursively dumps a table to stdout, useful for testing and debugging. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         t: Table value to dump
-       </li>
-       
-       <li>
-         maxdepth: Maximum depth
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Always nil
-
-
-
-</dd>
-
-
-
-
-<dt><a name="exec"></a><strong>exec</strong>&nbsp;(command)</dt>
-<dd>
-
-Execute given commandline and gather stdout. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         command: String containing command to execute
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing the command's stdout
-
-
-
-</dd>
-
-
-
-
-<dt><a name="execi"></a><strong>execi</strong>&nbsp;(command)</dt>
-<dd>
-
-Return a line-buffered iterator over the output of given command. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         command: String containing the command to execute
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Iterator
-
-
-
-</dd>
-
-
-
-
-<dt><a name="get_bytecode"></a><strong>get_bytecode</strong>&nbsp;(val)</dt>
-<dd>
-
-Return the current runtime bytecode of the given data. The byte code 
-will be stripped before it is returned. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         val: Value to return as bytecode
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String value containing the bytecode of the given data
-
-
-
-</dd>
-
-
-
-
-<dt><a name="imatch"></a><strong>imatch</strong>&nbsp;(val)</dt>
-<dd>
-
-Return a matching iterator for the given value. 
-The iterator will return one token per invocation, the tokens are separated by 
-whitespace. If the input value is a table, it is transformed into a string first. 
-A nil value will result in a valid iterator which aborts with the first invocation. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         val: The value to scan (table, string or nil)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Iterator which returns one token per call
-
-
-
-</dd>
-
-
-
-
-<dt><a name="instanceof"></a><strong>instanceof</strong>&nbsp;(object, class)</dt>
-<dd>
-
-Test whether the given object is an instance of the given class. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         object: Object instance
-       </li>
-       
-       <li>
-         class: Class object to test against
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean indicating whether the object is an instance
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#class">
-               class
-       </a>
-       
-       <li><a href="#clone">
-               clone
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="keys"></a><strong>keys</strong>&nbsp;(t)</dt>
-<dd>
-
-Retrieve all keys of given associative table. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         t: Table to extract keys from
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Sorted table containing the keys
-
-
-
-</dd>
-
-
-
-
-<dt><a name="kspairs"></a><strong>kspairs</strong>&nbsp;(t)</dt>
-<dd>
-
-Return a key, value iterator for the given table. 
-The table pairs are sorted by key. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         t: The table to iterate
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Function value containing the corresponding iterator
-
-
-
-</dd>
-
-
-
-
-<dt><a name="libpath"></a><strong>libpath</strong>&nbsp;()</dt>
-<dd>
-
-Returns the absolute path to LuCI base directory. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing the directory path
-
-
-
-</dd>
-
-
-
-
-<dt><a name="parse_units"></a><strong>parse_units</strong>&nbsp;(ustr)</dt>
-<dd>
-
-Parse certain units from the given string and return the canonical integer 
-value or 0 if the unit is unknown. 
-Upper- or lower case is irrelevant. 
-Recognized units are: 
-       o "y"   - one year   (60*60*24*366) 
- o "m" - one month  (60*60*24*31) 
- o "w" - one week   (60*60*24*7) 
- o "d" - one day    (60*60*24) 
- o "h" - one hour       (60*60) 
- o "min"       - one minute (60) 
- o "kb"  - one kilobyte (1024) 
- o "mb"        - one megabyte (1024*1024) 
- o "gb"        - one gigabyte (1024*1024*1024) 
- o "kib" - one si kilobyte (1000) 
- o "mib"       - one si megabyte (1000*1000) 
- o "gib"       - one si gigabyte (1000*1000*1000) 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         ustr: String containing a numerical value with trailing unit
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Number containing the canonical value
-
-
-
-</dd>
-
-
-
-
-<dt><a name="pcdata"></a><strong>pcdata</strong>&nbsp;(value)</dt>
-<dd>
-
-Create valid XML PCDATA from given string. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         value: String value containing the data to escape
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String value containing the escaped data
-
-
-
-</dd>
-
-
-
-
-<dt><a name="perror"></a><strong>perror</strong>&nbsp;(obj)</dt>
-<dd>
-
-Write given object to stderr. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         obj: Value to write to stderr
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean indicating whether the write operation was successful
-
-
-
-</dd>
-
-
-
-
-<dt><a name="restore_data"></a><strong>restore_data</strong>&nbsp;(str)</dt>
-<dd>
-
-Restore data previously serialized with serialize_data(). 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         str: String containing the data to restore
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Value containing the restored data structure
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#serialize_data">
-               serialize_data
-       </a>
-       
-       <li><a href="#get_bytecode">
-               get_bytecode
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="serialize_data"></a><strong>serialize_data</strong>&nbsp;(val)</dt>
-<dd>
-
-Recursively serialize given data to lua code, suitable for restoring 
-with loadstring(). 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         val: Value containing the data to serialize
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String value containing the serialized code
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#restore_data">
-               restore_data
-       </a>
-       
-       <li><a href="#get_bytecode">
-               get_bytecode
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="serialize_json"></a><strong>serialize_json</strong>&nbsp;(data, writer)</dt>
-<dd>
-
-Convert data structure to JSON 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         data: The data to serialize
-       </li>
-       
-       <li>
-         writer: A function to write a chunk of JSON data (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing the JSON if called without write callback
-
-
-
-</dd>
-
-
-
-
-<dt><a name="shellquote"></a><strong>shellquote</strong>&nbsp;(value)</dt>
-<dd>
-
-Safely quote value for use in shell commands. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         value: String containing the value to quote
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Single-quote enclosed string with embedded quotes escaped
-
-
-
-</dd>
-
-
-
-
-<dt><a name="spairs"></a><strong>spairs</strong>&nbsp;(t, f)</dt>
-<dd>
-
-Return a key, value iterator which returns the values sorted according to 
-the provided callback function. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         t: The table to iterate
-       </li>
-       
-       <li>
-         f: A callback function to decide the order of elements
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Function value containing the corresponding iterator
-
-
-
-</dd>
-
-
-
-
-<dt><a name="split"></a><strong>split</strong>&nbsp;(str, pat, max, regex)</dt>
-<dd>
-
-Splits given string on a defined separator sequence and return a table 
-containing the resulting substrings. 
-The optional max parameter specifies the number of bytes to process, 
-regardless of the actual length of the given string. The optional last 
-parameter, regex, specifies whether the separator sequence is 
-nterpreted as regular expression. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         str: String value containing the data to split up
-       </li>
-       
-       <li>
-         pat: String with separator pattern (optional, defaults to "\n")
-       </li>
-       
-       <li>
-         max: Maximum times to split (optional)
-       </li>
-       
-       <li>
-         regex: Boolean indicating whether to interpret the separator 
-                                       pattern as regular expression (optional, default is false)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing the resulting substrings
-
-
-
-</dd>
-
-
-
-
-<dt><a name="strip_bytecode"></a><strong>strip_bytecode</strong>&nbsp;(code)</dt>
-<dd>
-
-Strips unnecessary lua bytecode from given string. 
-Information like line numbers and debugging numbers will be discarded. 
-Original version by Peter Cawley (http://lua-users.org/lists/lua-l/2008-02/msg01158.html) 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         code: String value containing the original lua byte code
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String value containing the stripped lua byte code
-
-
-
-</dd>
-
-
-
-
-<dt><a name="striptags"></a><strong>striptags</strong>&nbsp;(value)</dt>
-<dd>
-
-Strip HTML tags from given string. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         value: String containing the HTML text
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String with HTML tags stripped of
-
-
-
-</dd>
-
-
-
-
-<dt><a name="threadlocal"></a><strong>threadlocal</strong>&nbsp;()</dt>
-<dd>
-
-Create a new or get an already existing thread local store associated with 
-the current active coroutine. 
-A thread local store is private a table object 
-whose values can't be accessed from outside of the running coroutine. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table value representing the corresponding thread local store
-
-
-
-</dd>
-
-
-
-
-<dt><a name="trim"></a><strong>trim</strong>&nbsp;(str)</dt>
-<dd>
-
-Remove leading and trailing whitespace from given string value. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         str: String value containing whitespace padded data
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String value with leading and trailing space removed
-
-
-
-</dd>
-
-
-
-
-<dt><a name="ubus"></a><strong>ubus</strong>&nbsp;(object, method, values)</dt>
-<dd>
-
-Issue an ubus call. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         object: String containing the ubus object to call
-       </li>
-       
-       <li>
-         method: String containing the ubus method to call
-       </li>
-       
-       <li>
-         values: Table containing the values to pass
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containin the ubus result
-
-
-
-</dd>
-
-
-
-
-<dt><a name="update"></a><strong>update</strong>&nbsp;(t, updates)</dt>
-<dd>
-
-Update values in given table with the values from the second given table. 
-Both table are - in fact - merged together. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         t: Table which should be updated
-       </li>
-       
-       <li>
-         updates: Table containing the values to update
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Always nil
-
-
-
-</dd>
-
-
-
-
-<dt><a name="urldecode"></a><strong>urldecode</strong>&nbsp;(str, decode_plus)</dt>
-<dd>
-
-Decode an URL-encoded string - optionally decoding the "+" sign to space. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         str: Input string in x-www-urlencoded format
-       </li>
-       
-       <li>
-         decode_plus: Decode "+" signs to spaces if true (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-The decoded string
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#urlencode">
-               urlencode
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="urlencode"></a><strong>urlencode</strong>&nbsp;(str)</dt>
-<dd>
-
-URL-encode given string. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         str: String to encode
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing the encoded data
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#urldecode">
-               urldecode
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="vspairs"></a><strong>vspairs</strong>&nbsp;(t)</dt>
-<dd>
-
-Return a key, value iterator for the given table. 
-The table pairs are sorted by value. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         t: The table to iterate
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Function value containing the corresponding iterator
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/nixio.CHANGELOG.html b/documentation/api/modules/nixio.CHANGELOG.html
deleted file mode 100644 (file)
index 94b44a5..0000000
+++ /dev/null
@@ -1,286 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li><strong>nixio.CHANGELOG</strong></li>
-       
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>nixio.CHANGELOG</code></h1>
-
-<p>
- Changes and improvements.</p>
-
-
-
-
-
-
-
-
-
-
-<h2>Tables</h2>
-<table class="table_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#0.2">0.2</a></td>
-       <td class="summary">
- Initial Release.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#0.3">0.3</a></td>
-       <td class="summary">
- Service Release.</td>
-       </tr>
-
-</table>
-
-
-
-<br/>
-<br/>
-
-
-
-
-<h2><a name="tables"></a>Tables</h2>
-<dl class="table">
-
-<dt><a name="0.2"></a><strong>0.2</strong></dt>
-<dd>
- Initial Release. 
- <ul> 
- <li>Initial Release</li>   
- </ul>
-
-
-
-</dd>
-
-
-<dt><a name="0.3"></a><strong>0.3</strong></dt>
-<dd>
- Service Release. 
- <ul> 
- <li>Added getifaddrs() function.</li> 
- <li>Added getsockopt(), setsockopt(), getsockname() and getpeername() 
- directly to TLS-socket objects unifying the socket interface.</li> 
- <li>Added support for CyaSSL as cryptographical backend.</li> 
- <li>Added support for x509 certificates in DER format.</li> 
- <li>Added support for splice() in UnifiedIO.copyz().</li> 
- <li>Added interface to inject chunks into UnifiedIO.linesource() buffer.</li> 
- <li>Changed TLS behaviour to explicitly separate servers and clients.</li> 
- <li>Fixed usage of signed datatype breaking Base64 decoding.</li> 
- <li>Fixed namespace clashes for nixio.fs.</li> 
- <li>Fixed splice() support for some exotic C libraries.</li> 
- <li>Reconfigure axTLS cryptographical provider and mark it as obsolete.</li> 
- </ul>
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/nixio.CryptoHash.html b/documentation/api/modules/nixio.CryptoHash.html
deleted file mode 100644 (file)
index 7d2f48b..0000000
+++ /dev/null
@@ -1,312 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li><strong>nixio.CryptoHash</strong></li>
-       
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Object Instance <code>nixio.CryptoHash</code></h1>
-
-<p>
- Cryptographical Hash and HMAC object.</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#CryptoHash.final">CryptoHash:final</a>&nbsp;()</td>
-       <td class="summary">
- Finalize the hash and return the digest.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#CryptoHash.update">CryptoHash:update</a>&nbsp;(chunk)</td>
-       <td class="summary">
- Add another chunk of data to be hashed.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="CryptoHash.final"></a><strong>CryptoHash:final</strong>&nbsp;()</dt>
-<dd>
-
- Finalize the hash and return the digest.
-
-
-
-
-
-<h3>Usage:</h3>
-You cannot call update on a hash object that was already finalized 
- you can however call final multiple times to get the digest.
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>hexdigest
-       
-       <li>buffer containing binary digest
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="CryptoHash.update"></a><strong>CryptoHash:update</strong>&nbsp;(chunk)</dt>
-<dd>
-
- Add another chunk of data to be hashed.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         chunk: Chunk of data
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-CryptoHash object (self)
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/nixio.File.html b/documentation/api/modules/nixio.File.html
deleted file mode 100644 (file)
index 7a7500a..0000000
+++ /dev/null
@@ -1,669 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li><strong>nixio.File</strong></li>
-       
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Object Instance <code>nixio.File</code></h1>
-
-<p>
- Large File Object. 
- Large file operations are supported up to 52 bits if the Lua number type is 
- double (default).</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#File.close">File:close</a>&nbsp;()</td>
-       <td class="summary">
- Close the file descriptor.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#File.fileno">File:fileno</a>&nbsp;()</td>
-       <td class="summary">
- Get the number of the filedescriptor.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#File.lock">File:lock</a>&nbsp;(command, length)</td>
-       <td class="summary">
- Apply or test a lock on the file.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#File.read">File:read</a>&nbsp;(length)</td>
-       <td class="summary">
- Read from a file descriptor.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#File.seek">File:seek</a>&nbsp;(offset, whence)</td>
-       <td class="summary">
- Reposition read / write offset of the file descriptor.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#File.setblocking">File:setblocking</a>&nbsp;(blocking)</td>
-       <td class="summary">
- (POSIX) Set the blocking mode of the file descriptor.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#File.stat">File:stat</a>&nbsp;(field)</td>
-       <td class="summary">
- Get file status and attributes.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#File.sync">File:sync</a>&nbsp;(data_only)</td>
-       <td class="summary">
- Synchronizes the file with the storage device.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#File.tell">File:tell</a>&nbsp;()</td>
-       <td class="summary">
- Return the current read / write offset of the file descriptor.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#File.write">File:write</a>&nbsp;(buffer, offset, length)</td>
-       <td class="summary">
- Write to the file descriptor.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="File.close"></a><strong>File:close</strong>&nbsp;()</dt>
-<dd>
-
- Close the file descriptor.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="File.fileno"></a><strong>File:fileno</strong>&nbsp;()</dt>
-<dd>
-
- Get the number of the filedescriptor.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-file descriptor number
-
-
-
-</dd>
-
-
-
-
-<dt><a name="File.lock"></a><strong>File:lock</strong>&nbsp;(command, length)</dt>
-<dd>
-
- Apply or test a lock on the file.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         command: Locking Command ["lock", "tlock", "ulock", "test"]
-       </li>
-       
-       <li>
-         length: Amount of Bytes to lock from current offset (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function calls lockf() on POSIX and _locking() on Windows.
-       
-       <li>The "lock" command is blocking, "tlock" is non-blocking, 
- "ulock" unlocks and "test" only tests for the lock.
-       
-       <li>The "test" command is not available on Windows.
-       
-       <li>Locks are by default advisory on POSIX, but mandatory on Windows.
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="File.read"></a><strong>File:read</strong>&nbsp;(length)</dt>
-<dd>
-
- Read from a file descriptor.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         length: Amount of data to read (in Bytes).
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li><strong>Warning:</strong> It is not guaranteed that all requested data 
- is read at once especially when dealing with pipes. 
- You have to check the return value - the length of the buffer actually read - 
- or use the safe IO functions in the high-level IO utility module.
-       
-       <li>The length of the return buffer is limited by the (compile time)  
- nixio buffersize which is <em>nixio.const.buffersize</em> (8192 by default). 
- Any read request greater than that will be safely truncated to this value.  
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-buffer containing data successfully read
-
-
-
-</dd>
-
-
-
-
-<dt><a name="File.seek"></a><strong>File:seek</strong>&nbsp;(offset, whence)</dt>
-<dd>
-
- Reposition read / write offset of the file descriptor. 
- The seek will be done either from the beginning of the file or relative 
- to the current position or relative to the end.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         offset: File Offset
-       </li>
-       
-       <li>
-         whence: Starting point [<strong>"set"</strong>, "cur", "end"]
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-This function calls lseek().
-
-
-
-<h3>Return value:</h3>
-new (absolute) offset position
-
-
-
-</dd>
-
-
-
-
-<dt><a name="File.setblocking"></a><strong>File:setblocking</strong>&nbsp;(blocking)</dt>
-<dd>
-
- (POSIX) Set the blocking mode of the file descriptor.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         blocking: (boolean)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="File.stat"></a><strong>File:stat</strong>&nbsp;(field)</dt>
-<dd>
-
- Get file status and attributes.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         field: Only return a specific field, not the whole table (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-This function calls fstat().
-
-
-
-<h3>Return value:</h3>
-Table containing: <ul> 
- <li>atime = Last access timestamp</li> 
- <li>blksize = Blocksize (POSIX only)</li> 
- <li>blocks = Blocks used (POSIX only)</li> 
- <li>ctime = Creation timestamp</li> 
- <li>dev = Device ID</li> 
- <li>gid = Group ID</li> 
- <li>ino = Inode</li> 
- <li>modedec = Mode converted into a decimal number</li> 
- <li>modestr = Mode as string as returned by <code>ls -l</code></li> 
- <li>mtime = Last modification timestamp</li> 
- <li>nlink = Number of links</li> 
- <li>rdev = Device ID (if special file)</li> 
- <li>size = Size in bytes</li> 
- <li>type = ["reg", "dir", "chr", "blk", "fifo", "lnk", "sock"]</li> 
- <li>uid = User ID</li> 
- </ul>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="File.sync"></a><strong>File:sync</strong>&nbsp;(data_only)</dt>
-<dd>
-
- Synchronizes the file with the storage device. 
- Returns when the file is successfully written to the disk.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         data_only: Do not synchronize the metadata. (optional, boolean)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function calls fsync() when data_only equals false 
- otherwise fdatasync(), on Windows _commit() is used instead.
-       
-       <li>fdatasync() is only supported by Linux and Solaris. For other systems 
- the <em>data_only</em> parameter is ignored and fsync() is always called.
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="File.tell"></a><strong>File:tell</strong>&nbsp;()</dt>
-<dd>
-
- Return the current read / write offset of the file descriptor.
-
-
-
-
-
-<h3>Usage:</h3>
-This function calls lseek() with offset 0 from the current position.
-
-
-
-<h3>Return value:</h3>
-offset position
-
-
-
-</dd>
-
-
-
-
-<dt><a name="File.write"></a><strong>File:write</strong>&nbsp;(buffer, offset, length)</dt>
-<dd>
-
- Write to the file descriptor.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         buffer: Buffer holding the data to be written.
-       </li>
-       
-       <li>
-         offset: Offset to start reading the buffer from. (optional)
-       </li>
-       
-       <li>
-         length: Length of chunk to read from the buffer. (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li><strong>Warning:</strong> It is not guaranteed that all data 
- in the buffer is written at once especially when dealing with pipes. 
- You have to check the return value - the number of bytes actually written - 
- or use the safe IO functions in the high-level IO utility module.
-       
-       <li>Unlike standard Lua indexing the lowest offset and default is 0.
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-number of bytes written
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/nixio.README.html b/documentation/api/modules/nixio.README.html
deleted file mode 100644 (file)
index e140659..0000000
+++ /dev/null
@@ -1,370 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li><strong>nixio.README</strong></li>
-       
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>nixio.README</code></h1>
-
-<p>
- General Information.</p>
-
-
-
-
-
-
-
-
-
-
-<h2>Tables</h2>
-<table class="table_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#Errorhandling">Errorhandling</a></td>
-       <td class="summary">
- General error handling information.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Functions">Functions</a></td>
-       <td class="summary">
- Function conventions.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Platforms">Platforms</a></td>
-       <td class="summary">
- Platform information.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#TLS-Crypto">TLS-Crypto</a></td>
-       <td class="summary">
- Cryptography and TLS libraries.</td>
-       </tr>
-
-</table>
-
-
-
-<br/>
-<br/>
-
-
-
-
-<h2><a name="tables"></a>Tables</h2>
-<dl class="table">
-
-<dt><a name="Errorhandling"></a><strong>Errorhandling</strong></dt>
-<dd>
- General error handling information. 
- <ul> 
- <li> Most of the functions available in this library may fail. If any error 
- occurs the function returns <strong>nil or false</strong>, an error code 
- (usually errno) and an additional error message text (if avaialable).</li> 
- <li>At the moment false is only returned when a non-blocking I/O function 
- fails with EAGAIN, EWOULDBLOCK or WSAEWOULDBLOCK for any others nil is 
- returned as first parameter. Therefore you can use false to write portable 
- non-blocking I/O applications.</li> 
- <li>Note that the function documentation does only mention the return values 
- in case of a successful operation.</li>  
- <li>You can find a table of common error numbers and other useful constants 
- like signal numbers in <strong>nixio.const</strong> e.g. nixio.const.EINVAL, 
- nixio.const.SIGTERM, etc. For portability there is a second error constant 
- table <strong>nixio.const_sock</strong> for socket error codes. This might 
- be important if you are dealing with Windows applications, on POSIX however 
- const_sock is just an alias for const.</li> 
- <li>With some exceptions - which are explicitly stated in the function 
- documentation - all blocking functions are signal-protected and will not fail 
- with EINTR.</li> 
- <li>On POSIX the SIGPIPE signal will be set to ignore upon initialization. 
- You should restore the default behaviour or set a custom signal handler 
- in your program after loading nixio if you need this behaviour.</li> 
- </ul>
-
-
-
-</dd>
-
-
-<dt><a name="Functions"></a><strong>Functions</strong></dt>
-<dd>
- Function conventions. 
- <br />In general all functions are namend and behave like their POSIX API 
- counterparts - where applicable - applying the following rules: 
- <ul> 
- <li>Functions should be named like the underlying POSIX API function omitting 
- prefixes or suffixes - especially when placed in an object-context ( 
- lockf -> File:lock, fsync -> File:sync, dup2 -> dup, ...)</li> 
- <li>If you are unclear about the behaviour of a function you should consult 
- your OS API documentation (e.g. the manpages).</li> 
- <li>If the name is significantly different from the POSIX-function, the 
- underlying function(s) are stated in the documentation.</li> 
- <li>Parameters should reflect those of the C-API, buffer length arguments and  
- by-reference parameters should be omitted for practical purposes.</li> 
- <li>If a C function accepts a bitfield as parameter, it should be translated 
- into lower case string flags representing the flags if the bitfield is the  
- last parameter and also omitting prefixes or suffixes. (e.g.  waitpid 
- (pid, &s, WNOHANG | WUNTRACED) -> waitpid(pid, "nohang", "untraced"),  
- getsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) -> 
- Socket:getopt("socket", "reuseaddr"), etc.) </li> 
- <li>If it is not applicable to provide a string representation of the 
- bitfield a bitfield generator helper is provided. It is named FUNCTION_flags. 
- (open("/tmp/test", O_RDONLY | O_NONBLOCK) -> open("/tmp/test", open_flags( 
- "rdonly", "nonblock")))</li>   
- </ul>
-
-
-
-</dd>
-
-
-<dt><a name="Platforms"></a><strong>Platforms</strong></dt>
-<dd>
- Platform information. 
- <ul> 
- <li>The minimum platform requirements are a decent POSIX 2001 support. 
- Builds are more or less tested on Linux, Solaris and FreeBSD. Builds for 
- Windows XP SP1 and later can be compiled with MinGW either from Windows 
- itself or using the MinGW cross-compiler. Earlier versions of Windows are not 
- supported.</li> 
- <li>In general all functions which don't have any remarks  
- in their documentation are available on all platforms.</li> 
- <li>Functions with a (POSIX), (Linux) or similar prefix are only available 
- on these specific platforms. Same appplies to parameters of functions 
- with a similar suffix.</li> 
- <li>Some functions might have limitations on some platforms. This should 
- be stated in the documentation. Please also consult your OS API  
- documentation.</li>    
- </ul>
-
-
-
-</dd>
-
-
-<dt><a name="TLS-Crypto"></a><strong>TLS-Crypto</strong></dt>
-<dd>
- Cryptography and TLS libraries. 
- <ul> 
- <li>Currently 3 underlying cryptography libraries are supported: openssl, 
- cyassl and axTLS. The name of the library in use is written to  
- <strong>nixio.tls_provider</strong></li> 
- <li>You should whenever possible use openssl or cyassl as axTLS has only  
- limited support. It does not provide support for non-blocking sockets and 
- is probably less audited than the other ones.</li> 
- <li>As the supported Windows versions are not suitable for embedded devices 
- axTLS is at the moment not supported on Windows.</li>   
- </ul>
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/nixio.Socket.html b/documentation/api/modules/nixio.Socket.html
deleted file mode 100644 (file)
index 1850991..0000000
+++ /dev/null
@@ -1,1029 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li><strong>nixio.Socket</strong></li>
-       
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Object Instance <code>nixio.Socket</code></h1>
-
-<p>
- Socket Object. 
- Supports IPv4, IPv6 and UNIX (POSIX only) families.</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.accept">Socket:accept</a>&nbsp;()</td>
-       <td class="summary">
- Accept a connection on the socket.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.bind">Socket:bind</a>&nbsp;(host, port)</td>
-       <td class="summary">
- Bind the socket to a network address.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.close">Socket:close</a>&nbsp;()</td>
-       <td class="summary">
- Close the socket.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.connect">Socket:connect</a>&nbsp;(host, port)</td>
-       <td class="summary">
- Connect the socket to a network address.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.fileno">Socket:fileno</a>&nbsp;()</td>
-       <td class="summary">
- Get the number of the filedescriptor.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.getopt">Socket:getopt</a>&nbsp;(level, option)</td>
-       <td class="summary">
- Get a socket option.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.getpeername">Socket:getpeername</a>&nbsp;()</td>
-       <td class="summary">
- Get the peer address of a socket.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.getsockname">Socket:getsockname</a>&nbsp;()</td>
-       <td class="summary">
- Get the local address of a socket.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.listen">Socket:listen</a>&nbsp;(backlog)</td>
-       <td class="summary">
- Listen for connections on the socket.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.read  ">Socket:read  </a>&nbsp;(length)</td>
-       <td class="summary">
- Receive a message on the socket (This is an alias for recv).</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.recv  ">Socket:recv  </a>&nbsp;(length)</td>
-       <td class="summary">
- Receive a message on the socket.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.recvfrom">Socket:recvfrom</a>&nbsp;(length)</td>
-       <td class="summary">
- Receive a message on the socket including the senders source address.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.send">Socket:send</a>&nbsp;(buffer, offset, length)</td>
-       <td class="summary">
- Send a message on the socket.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.sendto">Socket:sendto</a>&nbsp;(buffer, host, port, offset, length)</td>
-       <td class="summary">
- Send a message on the socket specifying the destination.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.setblocking">Socket:setblocking</a>&nbsp;(blocking)</td>
-       <td class="summary">
- Set the blocking mode of the socket.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.setopt">Socket:setopt</a>&nbsp;(level, option, value)</td>
-       <td class="summary">
- Set a socket option.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.shutdown">Socket:shutdown</a>&nbsp;(how)</td>
-       <td class="summary">
- Shut down part of a full-duplex connection.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.write">Socket:write</a>&nbsp;(buffer, offset, length)</td>
-       <td class="summary">
- Send a message on the socket (This is an alias for send).</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="Socket.accept"></a><strong>Socket:accept</strong>&nbsp;()</dt>
-<dd>
-
- Accept a connection on the socket.
-
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Socket Object
-       
-       <li>Peer IP-Address
-       
-       <li>Peer Port
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Socket.bind"></a><strong>Socket:bind</strong>&nbsp;(host, port)</dt>
-<dd>
-
- Bind the socket to a network address.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         host: Host (optional, default: all addresses)
-       </li>
-       
-       <li>
-         port: Port or service description
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function calls getaddrinfo() and bind() but NOT listen().
-       
-       <li>If <em>host</em> is a domain name it will be looked up and bind()  
- tries the IP-Addresses in the order returned by the DNS resolver 
- until the bind succeeds. 
-       
-       <li>UNIX sockets ignore the <em>port</em>, 
- and interpret <em>host</em> as a socket path.
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Socket.close"></a><strong>Socket:close</strong>&nbsp;()</dt>
-<dd>
-
- Close the socket.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Socket.connect"></a><strong>Socket:connect</strong>&nbsp;(host, port)</dt>
-<dd>
-
- Connect the socket to a network address.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         host: Hostname or IP-Address (optional, default: localhost)
-       </li>
-       
-       <li>
-         port: Port or service description
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function calls getaddrinfo() and connect().
-       
-       <li>If <em>host</em> is a domain name it will be looked up and connect()  
- tries the IP-Addresses in the order returned by the DNS resolver 
- until the connect succeeds. 
-       
-       <li>UNIX sockets ignore the <em>port</em>, 
- and interpret <em>host</em> as a socket path.
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Socket.fileno"></a><strong>Socket:fileno</strong>&nbsp;()</dt>
-<dd>
-
- Get the number of the filedescriptor.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-file descriptor number
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Socket.getopt"></a><strong>Socket:getopt</strong>&nbsp;(level, option)</dt>
-<dd>
-
- Get a socket option.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         level: Level ["socket", "tcp", "ip", "ipv6"]
-       </li>
-       
-       <li>
-         option: Option        ["keepalive", "reuseaddr", "sndbuf", "rcvbuf",  
- "priority", "broadcast", "linger", "sndtimeo", "rcvtimeo", "dontroute",  
- "bindtodevice", "error", "oobinline", "cork" (TCP),  "nodelay" (TCP), 
- "mtu" (IP, IPv6), "hdrincl" (IP), "multicast_ttl" (IP), "multicast_loop" 
- (IP, IPv6), "multicast_if" (IP, IPv6), "v6only" (IPv6), "multicast_hops" 
- (IPv6), "add_membership" (IP, IPv6), "drop_membership" (IP, IPv6)]
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Value
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Socket.getpeername"></a><strong>Socket:getpeername</strong>&nbsp;()</dt>
-<dd>
-
- Get the peer address of a socket.
-
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>IP-Address
-       
-       <li>Port
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Socket.getsockname"></a><strong>Socket:getsockname</strong>&nbsp;()</dt>
-<dd>
-
- Get the local address of a socket.
-
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>IP-Address
-       
-       <li>Port
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Socket.listen"></a><strong>Socket:listen</strong>&nbsp;(backlog)</dt>
-<dd>
-
- Listen for connections on the socket.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         backlog: Length of queue for pending connections
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Socket.read  "></a><strong>Socket:read  </strong>&nbsp;(length)</dt>
-<dd>
-
- Receive a message on the socket (This is an alias for recv). 
- See the recvfrom description for more details.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         length: Amount of data to read (in Bytes).
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-buffer containing data successfully read
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#Socket.recvfrom">
-               Socket:recvfrom
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="Socket.recv  "></a><strong>Socket:recv  </strong>&nbsp;(length)</dt>
-<dd>
-
- Receive a message on the socket. 
- This function is identical to recvfrom except that it does not return  
- the sender's source address. See the recvfrom description for more details.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         length: Amount of data to read (in Bytes).
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-buffer containing data successfully read
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#Socket.recvfrom">
-               Socket:recvfrom
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="Socket.recvfrom"></a><strong>Socket:recvfrom</strong>&nbsp;(length)</dt>
-<dd>
-
- Receive a message on the socket including the senders source address.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         length: Amount of data to read (in Bytes).
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li><strong>Warning:</strong> It is not guaranteed that all requested data 
- is read at once. 
- You have to check the return value - the length of the buffer actually read - 
- or use the safe IO functions in the high-level IO utility module.
-       
-       <li>The length of the return buffer is limited by the (compile time)  
- nixio buffersize which is <em>nixio.const.buffersize</em> (8192 by default). 
- Any read request greater than that will be safely truncated to this value.  
-       
-</ul>
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>buffer containing data successfully read
-       
-       <li>host                IP-Address of the sender
-       
-       <li>port                Port of the sender
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Socket.send"></a><strong>Socket:send</strong>&nbsp;(buffer, offset, length)</dt>
-<dd>
-
- Send a message on the socket. 
- This function is identical to sendto except for the missing destination 
- parameters. See the sendto description for a detailed description.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         buffer: Buffer holding the data to be written.
-       </li>
-       
-       <li>
-         offset: Offset to start reading the buffer from. (optional)
-       </li>
-       
-       <li>
-         length: Length of chunk to read from the buffer. (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-number of bytes written
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#Socket.sendto">
-               Socket:sendto
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="Socket.sendto"></a><strong>Socket:sendto</strong>&nbsp;(buffer, host, port, offset, length)</dt>
-<dd>
-
- Send a message on the socket specifying the destination.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         buffer: Buffer holding the data to be written.
-       </li>
-       
-       <li>
-         host: Target IP-Address
-       </li>
-       
-       <li>
-         port: Target Port
-       </li>
-       
-       <li>
-         offset: Offset to start reading the buffer from. (optional)
-       </li>
-       
-       <li>
-         length: Length of chunk to read from the buffer. (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li><strong>Warning:</strong> It is not guaranteed that all data 
- in the buffer is written at once. 
- You have to check the return value - the number of bytes actually written - 
- or use the safe IO functions in the high-level IO utility module.
-       
-       <li>Unlike standard Lua indexing the lowest offset and default is 0.
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-number of bytes written
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Socket.setblocking"></a><strong>Socket:setblocking</strong>&nbsp;(blocking)</dt>
-<dd>
-
- Set the blocking mode of the socket.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         blocking: (boolean)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Socket.setopt"></a><strong>Socket:setopt</strong>&nbsp;(level, option, value)</dt>
-<dd>
-
- Set a socket option.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         level: Level ["socket", "tcp", "ip", "ipv6"]
-       </li>
-       
-       <li>
-         option: Option        ["keepalive", "reuseaddr", "sndbuf", "rcvbuf",  
- "priority", "broadcast", "linger", "sndtimeo", "rcvtimeo", "dontroute",  
- "bindtodevice", "error", "oobinline", "cork" (TCP),  "nodelay" (TCP), 
- "mtu" (IP, IPv6), "hdrincl" (IP), "multicast_ttl" (IP), "multicast_loop" 
- (IP, IPv6), "multicast_if" (IP, IPv6), "v6only" (IPv6), "multicast_hops" 
- (IPv6), "add_membership" (IP, IPv6), "drop_membership" (IP, IPv6)]
-       </li>
-       
-       <li>
-         value: Value
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Socket.shutdown"></a><strong>Socket:shutdown</strong>&nbsp;(how)</dt>
-<dd>
-
- Shut down part of a full-duplex connection.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         how: (optional, default: rdwr) ["rdwr", "rd", "wr"] 
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Socket.write"></a><strong>Socket:write</strong>&nbsp;(buffer, offset, length)</dt>
-<dd>
-
- Send a message on the socket (This is an alias for send). 
- See the sendto description for a detailed description.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         buffer: Buffer holding the data to be written.
-       </li>
-       
-       <li>
-         offset: Offset to start reading the buffer from. (optional)
-       </li>
-       
-       <li>
-         length: Length of chunk to read from the buffer. (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-number of bytes written
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#Socket.sendto">
-               Socket:sendto
-       </a>
-       
-</ul>
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/nixio.TLSContext.html b/documentation/api/modules/nixio.TLSContext.html
deleted file mode 100644 (file)
index c84d318..0000000
+++ /dev/null
@@ -1,475 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li><strong>nixio.TLSContext</strong></li>
-       
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Object Instance <code>nixio.TLSContext</code></h1>
-
-<p>
- Transport Layer Security Context Object.</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#TLSContext.create">TLSContext:create</a>&nbsp;(socket)</td>
-       <td class="summary">
- Create a TLS Socket from a socket descriptor.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#TLSContext.set_cert">TLSContext:set_cert</a>&nbsp;(path)</td>
-       <td class="summary">
- Assign a PEM certificate to this context.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#TLSContext.set_ciphers">TLSContext:set_ciphers</a>&nbsp;(cipherlist)</td>
-       <td class="summary">
- Set the available ciphers for this context.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#TLSContext.set_key">TLSContext:set_key</a>&nbsp;(path)</td>
-       <td class="summary">
- Assign a PEM private key to this context.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#TLSContext.set_verify">TLSContext:set_verify</a>&nbsp;(flag1, ...)</td>
-       <td class="summary">
- Set the verification flags of this context.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#TLSContext.set_verify_depth">TLSContext:set_verify_depth</a>&nbsp;(depth)</td>
-       <td class="summary">
- Set the verification depth of this context.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="TLSContext.create"></a><strong>TLSContext:create</strong>&nbsp;(socket)</dt>
-<dd>
-
- Create a TLS Socket from a socket descriptor.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         socket: Socket Object
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-TLSSocket Object
-
-
-
-</dd>
-
-
-
-
-<dt><a name="TLSContext.set_cert"></a><strong>TLSContext:set_cert</strong>&nbsp;(path)</dt>
-<dd>
-
- Assign a PEM certificate to this context.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Certificate File path
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-This function calls SSL_CTX_use_certificate_chain_file().
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="TLSContext.set_ciphers"></a><strong>TLSContext:set_ciphers</strong>&nbsp;(cipherlist)</dt>
-<dd>
-
- Set the available ciphers for this context.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         cipherlist: String containing a list of ciphers
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-This function calls SSL_CTX_set_cipher_list().
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="TLSContext.set_key"></a><strong>TLSContext:set_key</strong>&nbsp;(path)</dt>
-<dd>
-
- Assign a PEM private key to this context.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Private Key File path
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-This function calls SSL_CTX_use_PrivateKey_file().
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="TLSContext.set_verify"></a><strong>TLSContext:set_verify</strong>&nbsp;(flag1, ...)</dt>
-<dd>
-
- Set the verification flags of this context.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         flag1: First Flag     ["none", "peer", "verify_fail_if_no_peer_cert",  
- "client_once"]
-       </li>
-       
-       <li>
-         ...: More Flags       [-"-]
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-This function calls SSL_CTX_set_verify().
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="TLSContext.set_verify_depth"></a><strong>TLSContext:set_verify_depth</strong>&nbsp;(depth)</dt>
-<dd>
-
- Set the verification depth of this context.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         depth: Depth
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-This function calls SSL_CTX_set_verify_depth().
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/nixio.TLSSocket.html b/documentation/api/modules/nixio.TLSSocket.html
deleted file mode 100644 (file)
index 5d6098a..0000000
+++ /dev/null
@@ -1,571 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li><strong>nixio.TLSSocket</strong></li>
-       
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Object Instance <code>nixio.TLSSocket</code></h1>
-
-<p>
- TLS Socket Object. 
- TLS Sockets contain the underlying socket and context in the fields 
- "socket" and "context".</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#TLSSocket.accept">TLSSocket:accept</a>&nbsp;()</td>
-       <td class="summary">
- Wait for a TLS handshake from a client.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#TLSSocket.connect">TLSSocket:connect</a>&nbsp;()</td>
-       <td class="summary">
- Initiate the TLS handshake as client with the server.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#TLSSocket.read  ">TLSSocket:read  </a>&nbsp;(length)</td>
-       <td class="summary">
- Receive a message on the socket (This is an alias for recv).</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#TLSSocket.recv">TLSSocket:recv</a>&nbsp;(length)</td>
-       <td class="summary">
- Receive a message on the socket.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#TLSSocket.send">TLSSocket:send</a>&nbsp;(buffer, offset, length)</td>
-       <td class="summary">
- Send a message to the socket.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#TLSSocket.shutdown">TLSSocket:shutdown</a>&nbsp;()</td>
-       <td class="summary">
- Shut down the TLS connection.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#TLSSocket.write">TLSSocket:write</a>&nbsp;(buffer, offset, length)</td>
-       <td class="summary">
- Send a message on the socket (This is an alias for send).</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="TLSSocket.accept"></a><strong>TLSSocket:accept</strong>&nbsp;()</dt>
-<dd>
-
- Wait for a TLS handshake from a client.
-
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function calls SSL_accept().
-       
-       <li>You have to call either connect or accept before transmitting data.
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#TLSSocket.connect">
-               TLSSocket:connect
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="TLSSocket.connect"></a><strong>TLSSocket:connect</strong>&nbsp;()</dt>
-<dd>
-
- Initiate the TLS handshake as client with the server.
-
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function calls SSL_connect().
-       
-       <li>You have to call either connect or accept before transmitting data.
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#TLSSocket.accept">
-               TLSSocket:accept
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="TLSSocket.read  "></a><strong>TLSSocket:read  </strong>&nbsp;(length)</dt>
-<dd>
-
- Receive a message on the socket (This is an alias for recv). 
- See the recv description for more details.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         length: Amount of data to read (in Bytes).
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-buffer containing data successfully read
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#TLSSocket.recv">
-               TLSSocket:recv
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="TLSSocket.recv"></a><strong>TLSSocket:recv</strong>&nbsp;(length)</dt>
-<dd>
-
- Receive a message on the socket.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         length: Amount of data to read (in Bytes).
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function calls SSL_read().
-       
-       <li><strong>Warning:</strong> It is not guaranteed that all requested data 
- is read at once. 
- You have to check the return value - the length of the buffer actually read - 
- or use the safe IO functions in the high-level IO utility module.
-       
-       <li>The length of the return buffer is limited by the (compile time)  
- nixio buffersize which is <em>nixio.const.buffersize</em> (8192 by default). 
- Any read request greater than that will be safely truncated to this value.  
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-buffer containing data successfully read
-
-
-
-</dd>
-
-
-
-
-<dt><a name="TLSSocket.send"></a><strong>TLSSocket:send</strong>&nbsp;(buffer, offset, length)</dt>
-<dd>
-
- Send a message to the socket.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         buffer: Buffer holding the data to be written.
-       </li>
-       
-       <li>
-         offset: Offset to start reading the buffer from. (optional)
-       </li>
-       
-       <li>
-         length: Length of chunk to read from the buffer. (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function calls SSL_write().
-       
-       <li><strong>Warning:</strong> It is not guaranteed that all data 
- in the buffer is written at once. 
- You have to check the return value - the number of bytes actually written - 
- or use the safe IO functions in the high-level IO utility module.
-       
-       <li>Unlike standard Lua indexing the lowest offset and default is 0.
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-number of bytes written
-
-
-
-</dd>
-
-
-
-
-<dt><a name="TLSSocket.shutdown"></a><strong>TLSSocket:shutdown</strong>&nbsp;()</dt>
-<dd>
-
- Shut down the TLS connection.
-
-
-
-
-
-<h3>Usage:</h3>
-This function calls SSL_shutdown().
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="TLSSocket.write"></a><strong>TLSSocket:write</strong>&nbsp;(buffer, offset, length)</dt>
-<dd>
-
- Send a message on the socket (This is an alias for send). 
- See the send description for a detailed description.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         buffer: Buffer holding the data to be written.
-       </li>
-       
-       <li>
-         offset: Offset to start reading the buffer from. (optional)
-       </li>
-       
-       <li>
-         length: Length of chunk to read from the buffer. (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-number of bytes written
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#TLSSocket.send">
-               TLSSocket:send
-       </a>
-       
-</ul>
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/nixio.UnifiedIO.html b/documentation/api/modules/nixio.UnifiedIO.html
deleted file mode 100644 (file)
index 6410ffb..0000000
+++ /dev/null
@@ -1,763 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li><strong>nixio.UnifiedIO</strong></li>
-       
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Object Instance <code>nixio.UnifiedIO</code></h1>
-
-<p>
- Unified high-level I/O utility API for Files, Sockets and TLS-Sockets. 
- These functions are added to the object function tables by doing <strong> 
- require "nixio.util"</strong>, can be used on all nixio IO  Descriptors and 
- are based on the shared low-level read() and write() functions.</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#UnifiedIO.blocksource">UnifiedIO:blocksource</a>&nbsp;(blocksize, limit)</td>
-       <td class="summary">
- Create a block-based iterator.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#UnifiedIO.close">UnifiedIO:close</a>&nbsp;()</td>
-       <td class="summary">
- Close the descriptor.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#UnifiedIO.copy">UnifiedIO:copy</a>&nbsp;(fdout, size)</td>
-       <td class="summary">
- Copy data from the current descriptor to another one.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#UnifiedIO.copyz">UnifiedIO:copyz</a>&nbsp;(fdout, size)</td>
-       <td class="summary">
- Copy data from the current descriptor to another one using kernel-space 
- copying if possible.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#UnifiedIO.is_file">UnifiedIO:is_file</a>&nbsp;()</td>
-       <td class="summary">
- Test whether the I/O-Descriptor is a file.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#UnifiedIO.is_socket">UnifiedIO:is_socket</a>&nbsp;()</td>
-       <td class="summary">
- Test whether the I/O-Descriptor is a socket.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#UnifiedIO.is_tls_socket">UnifiedIO:is_tls_socket</a>&nbsp;()</td>
-       <td class="summary">
- Test whether the I/O-Descriptor is a TLS socket.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#UnifiedIO.linesource">UnifiedIO:linesource</a>&nbsp;(limit)</td>
-       <td class="summary">
- Create a line-based iterator.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#UnifiedIO.readall">UnifiedIO:readall</a>&nbsp;(length)</td>
-       <td class="summary">
- Read a block of data and wait until all data is available.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#UnifiedIO.sink">UnifiedIO:sink</a>&nbsp;(close_when_done)</td>
-       <td class="summary">
- Create a sink.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#UnifiedIO.writeall">UnifiedIO:writeall</a>&nbsp;(block)</td>
-       <td class="summary">
- Write a block of data and wait until all data is written.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="UnifiedIO.blocksource"></a><strong>UnifiedIO:blocksource</strong>&nbsp;(blocksize, limit)</dt>
-<dd>
-
- Create a block-based iterator.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         blocksize: Advisory blocksize (optional)
-       </li>
-       
-       <li>
-         limit: Amount of data to consume (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function uses the low-level read function of the descriptor.
-       
-       <li>The blocksize given is only advisory and to be seen as an upper limit, 
- if an underlying read returns less bytes the chunk is nevertheless returned.
-       
-       <li>If the limit parameter is omitted, the iterator returns data 
- until an end-of-file, end-of-stream, connection shutdown or similar happens.
-       
-       <li>The iterator will not buffer so it is safe to mix with calls to read.
-       
-       <li>If the descriptor is non-blocking the iterator may fail with EAGAIN.
-       
-       <li>The iterator can be used as an LTN12 source.
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-Block-based Iterator
-
-
-
-</dd>
-
-
-
-
-<dt><a name="UnifiedIO.close"></a><strong>UnifiedIO:close</strong>&nbsp;()</dt>
-<dd>
-
- Close the descriptor.
-
-
-
-
-
-<h3>Usage:</h3>
-If the descriptor is a TLS-socket the underlying descriptor is 
- closed without touching the TLS connection.
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="UnifiedIO.copy"></a><strong>UnifiedIO:copy</strong>&nbsp;(fdout, size)</dt>
-<dd>
-
- Copy data from the current descriptor to another one.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         fdout: Target Descriptor
-       </li>
-       
-       <li>
-         size: Bytes to copy (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function uses the blocksource function of the source descriptor 
- and the sink function of the target descriptor.
-       
-       <li>If the limit parameter is omitted, data is copied 
- until an end-of-file, end-of-stream, connection shutdown or similar happens.
-       
-       <li>If the descriptor is non-blocking the function may fail with EAGAIN.
-       
-</ul>
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>bytes that were successfully written if no error occurred
-       
-       <li>- reserved for error code -
-       
-       <li>- reserved for error message -
-       
-       <li>bytes that were successfully written even if an error occurred
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="UnifiedIO.copyz"></a><strong>UnifiedIO:copyz</strong>&nbsp;(fdout, size)</dt>
-<dd>
-
- Copy data from the current descriptor to another one using kernel-space 
- copying if possible.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         fdout: Target Descriptor
-       </li>
-       
-       <li>
-         size: Bytes to copy (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function uses the sendfile() syscall to copy the data or the 
- blocksource function of the source descriptor and the sink function 
- of the target descriptor as a fallback mechanism.
-       
-       <li>If the limit parameter is omitted, data is copied 
- until an end-of-file, end-of-stream, connection shutdown or similar happens.
-       
-       <li>If the descriptor is non-blocking the function may fail with EAGAIN.
-       
-</ul>
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>bytes that were successfully written if no error occurred
-       
-       <li>- reserved for error code -
-       
-       <li>- reserved for error message -
-       
-       <li>bytes that were successfully written even if an error occurred
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="UnifiedIO.is_file"></a><strong>UnifiedIO:is_file</strong>&nbsp;()</dt>
-<dd>
-
- Test whether the I/O-Descriptor is a file. 
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-boolean
-
-
-
-</dd>
-
-
-
-
-<dt><a name="UnifiedIO.is_socket"></a><strong>UnifiedIO:is_socket</strong>&nbsp;()</dt>
-<dd>
-
- Test whether the I/O-Descriptor is a socket. 
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-boolean
-
-
-
-</dd>
-
-
-
-
-<dt><a name="UnifiedIO.is_tls_socket"></a><strong>UnifiedIO:is_tls_socket</strong>&nbsp;()</dt>
-<dd>
-
- Test whether the I/O-Descriptor is a TLS socket. 
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-boolean
-
-
-
-</dd>
-
-
-
-
-<dt><a name="UnifiedIO.linesource"></a><strong>UnifiedIO:linesource</strong>&nbsp;(limit)</dt>
-<dd>
-
- Create a line-based iterator. 
- Lines may end with either \n or \r\n, these control chars are not included 
- in the return value.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         limit: Line limit
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function uses the low-level read function of the descriptor.
-       
-       <li><strong>Note:</strong> This function uses an internal buffer to read 
- ahead. Do NOT mix calls to read(all) and the returned iterator. If you want 
- to stop reading line-based and want to use the read(all) functions instead 
- you can pass "true" to the iterator which will flush the buffer  
- and return the bufferd data.
-       
-       <li>If the limit parameter is omitted, this function uses the nixio 
- buffersize (8192B by default).
-       
-       <li>If the descriptor is non-blocking the iterator may fail with EAGAIN.
-       
-       <li>The iterator can be used as an LTN12 source.
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-Line-based Iterator
-
-
-
-</dd>
-
-
-
-
-<dt><a name="UnifiedIO.readall"></a><strong>UnifiedIO:readall</strong>&nbsp;(length)</dt>
-<dd>
-
- Read a block of data and wait until all data is available.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         length: Bytes to read (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function uses the low-level read function of the descriptor.
-       
-       <li>If the length parameter is omitted, this function returns all data 
- that can be read before an end-of-file, end-of-stream, connection shutdown 
- or similar happens.
-       
-       <li>If the descriptor is non-blocking this function may fail with EAGAIN.
-       
-</ul>
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>data that was successfully read if no error occurred
-       
-       <li>- reserved for error code -
-       
-       <li>- reserved for error message -
-       
-       <li>data that was successfully read even if an error occurred
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="UnifiedIO.sink"></a><strong>UnifiedIO:sink</strong>&nbsp;(close_when_done)</dt>
-<dd>
-
- Create a sink. 
- This sink will simply write all data that it receives and optionally 
- close the descriptor afterwards.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         close_when_done: (optional, boolean)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function uses the writeall function of the descriptor.
-       
-       <li>If the descriptor is non-blocking the sink may fail with EAGAIN.
-       
-       <li>The iterator can be used as an LTN12 sink.
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-Sink
-
-
-
-</dd>
-
-
-
-
-<dt><a name="UnifiedIO.writeall"></a><strong>UnifiedIO:writeall</strong>&nbsp;(block)</dt>
-<dd>
-
- Write a block of data and wait until all data is written.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         block: Bytes to write
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function uses the low-level write function of the descriptor.
-       
-       <li>If the descriptor is non-blocking this function may fail with EAGAIN.
-       
-</ul>
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>bytes that were successfully written if no error occurred
-       
-       <li>- reserved for error code -
-       
-       <li>- reserved for error message -
-       
-       <li>bytes that were successfully written even if an error occurred
-       
-</ol>
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/nixio.bin.html b/documentation/api/modules/nixio.bin.html
deleted file mode 100644 (file)
index 48e6fcd..0000000
+++ /dev/null
@@ -1,423 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li><strong>nixio.bin</strong></li>
-       
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>nixio.bin</code></h1>
-
-<p>
- Binary operations and conversion.</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#b64decode">b64decode</a>&nbsp;(buffer)</td>
-       <td class="summary">
- Base64 decode a given buffer.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#b64encode">b64encode</a>&nbsp;(buffer)</td>
-       <td class="summary">
- Base64 encode a given buffer.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#crc32">crc32</a>&nbsp;(buffer, initial)</td>
-       <td class="summary">
- Calculate the CRC32 value of a buffer.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#hexlify">hexlify</a>&nbsp;(buffer)</td>
-       <td class="summary">
- Return a hexadecimal ASCII represantation of the content of a buffer.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#unhexlify">unhexlify</a>&nbsp;(hexvalue)</td>
-       <td class="summary">
- Return a binary buffer from a hexadecimal ASCII representation.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="b64decode"></a><strong>b64decode</strong>&nbsp;(buffer)</dt>
-<dd>
-
- Base64 decode a given buffer.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         buffer: Base 64 Encoded data
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-binary data
-
-
-
-</dd>
-
-
-
-
-<dt><a name="b64encode"></a><strong>b64encode</strong>&nbsp;(buffer)</dt>
-<dd>
-
- Base64 encode a given buffer.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         buffer: Buffer
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-base64 encoded buffer
-
-
-
-</dd>
-
-
-
-
-<dt><a name="crc32"></a><strong>crc32</strong>&nbsp;(buffer, initial)</dt>
-<dd>
-
- Calculate the CRC32 value of a buffer. 
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         buffer: Buffer
-       </li>
-       
-       <li>
-         initial: Initial CRC32 value (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-crc32 value
-
-
-
-</dd>
-
-
-
-
-<dt><a name="hexlify"></a><strong>hexlify</strong>&nbsp;(buffer)</dt>
-<dd>
-
- Return a hexadecimal ASCII represantation of the content of a buffer. 
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         buffer: Buffer
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-representation using characters [0-9a-f]
-
-
-
-</dd>
-
-
-
-
-<dt><a name="unhexlify"></a><strong>unhexlify</strong>&nbsp;(hexvalue)</dt>
-<dd>
-
- Return a binary buffer from a hexadecimal ASCII representation. 
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         hexvalue: representation using characters [0-9a-f]
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-binary data
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/nixio.bit.html b/documentation/api/modules/nixio.bit.html
deleted file mode 100644 (file)
index 4197363..0000000
+++ /dev/null
@@ -1,740 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li><strong>nixio.bit</strong></li>
-       
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>nixio.bit</code></h1>
-
-<p>
- Bitfield operators and mainpulation functions. 
- Can be used as a drop-in replacement for bitlib.</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#arshift">arshift</a>&nbsp;(oper, shift)</td>
-       <td class="summary">
- Arithmetically right shift a number.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#band">band</a>&nbsp;(oper1, oper2, ...)</td>
-       <td class="summary">
- Bitwise AND several numbers.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#bnot">bnot</a>&nbsp;(oper)</td>
-       <td class="summary">
- Invert given number.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#bor">bor</a>&nbsp;(oper1, oper2, ...)</td>
-       <td class="summary">
- Bitwise OR several numbers.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#bxor">bxor</a>&nbsp;(oper1, oper2, ...)</td>
-       <td class="summary">
- Bitwise XOR several numbers.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cast">cast</a>&nbsp;(oper)</td>
-       <td class="summary">
- Cast a number to the bit-operating range.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#check">check</a>&nbsp;(bitfield, flag1, ...)</td>
-       <td class="summary">
- Checks whether given flags are set in a bitfield.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#div">div</a>&nbsp;(oper1, oper2, ...)</td>
-       <td class="summary">
- Integer division of 2 or more numbers.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#lshift">lshift</a>&nbsp;(oper, shift)</td>
-       <td class="summary">
- Left shift a number.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#rshift">rshift</a>&nbsp;(oper, shift)</td>
-       <td class="summary">
- Right shift a number.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#set">set</a>&nbsp;(bitfield, flag1, ...)</td>
-       <td class="summary">
- Sets one or more flags of a bitfield.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#unset">unset</a>&nbsp;(bitfield, flag1, ...)</td>
-       <td class="summary">
- Unsets one or more flags of a bitfield.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="arshift"></a><strong>arshift</strong>&nbsp;(oper, shift)</dt>
-<dd>
-
- Arithmetically right shift a number.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         oper: number
-       </li>
-       
-       <li>
-         shift: bits to shift 
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-number
-
-
-
-</dd>
-
-
-
-
-<dt><a name="band"></a><strong>band</strong>&nbsp;(oper1, oper2, ...)</dt>
-<dd>
-
- Bitwise AND several numbers.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         oper1: First Operand
-       </li>
-       
-       <li>
-         oper2: Second Operand
-       </li>
-       
-       <li>
-         ...: More Operands
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-number
-
-
-
-</dd>
-
-
-
-
-<dt><a name="bnot"></a><strong>bnot</strong>&nbsp;(oper)</dt>
-<dd>
-
- Invert given number.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         oper: Operand
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-number
-
-
-
-</dd>
-
-
-
-
-<dt><a name="bor"></a><strong>bor</strong>&nbsp;(oper1, oper2, ...)</dt>
-<dd>
-
- Bitwise OR several numbers.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         oper1: First Operand
-       </li>
-       
-       <li>
-         oper2: Second Operand
-       </li>
-       
-       <li>
-         ...: More Operands
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-number
-
-
-
-</dd>
-
-
-
-
-<dt><a name="bxor"></a><strong>bxor</strong>&nbsp;(oper1, oper2, ...)</dt>
-<dd>
-
- Bitwise XOR several numbers.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         oper1: First Operand
-       </li>
-       
-       <li>
-         oper2: Second Operand
-       </li>
-       
-       <li>
-         ...: More Operands
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-number
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cast"></a><strong>cast</strong>&nbsp;(oper)</dt>
-<dd>
-
- Cast a number to the bit-operating range.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         oper: number
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-number
-
-
-
-</dd>
-
-
-
-
-<dt><a name="check"></a><strong>check</strong>&nbsp;(bitfield, flag1, ...)</dt>
-<dd>
-
- Checks whether given flags are set in a bitfield.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         bitfield: Bitfield
-       </li>
-       
-       <li>
-         flag1: First Flag
-       </li>
-       
-       <li>
-         ...: More Flags
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true when all flags are set, otherwise false
-
-
-
-</dd>
-
-
-
-
-<dt><a name="div"></a><strong>div</strong>&nbsp;(oper1, oper2, ...)</dt>
-<dd>
-
- Integer division of 2 or more numbers.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         oper1: Operand 1
-       </li>
-       
-       <li>
-         oper2: Operand 2
-       </li>
-       
-       <li>
-         ...: More Operands
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-number
-
-
-
-</dd>
-
-
-
-
-<dt><a name="lshift"></a><strong>lshift</strong>&nbsp;(oper, shift)</dt>
-<dd>
-
- Left shift a number.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         oper: number
-       </li>
-       
-       <li>
-         shift: bits to shift 
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-number
-
-
-
-</dd>
-
-
-
-
-<dt><a name="rshift"></a><strong>rshift</strong>&nbsp;(oper, shift)</dt>
-<dd>
-
- Right shift a number.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         oper: number
-       </li>
-       
-       <li>
-         shift: bits to shift 
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-number
-
-
-
-</dd>
-
-
-
-
-<dt><a name="set"></a><strong>set</strong>&nbsp;(bitfield, flag1, ...)</dt>
-<dd>
-
- Sets one or more flags of a bitfield.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         bitfield: Bitfield
-       </li>
-       
-       <li>
-         flag1: First Flag
-       </li>
-       
-       <li>
-         ...: More Flags
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-altered bitfield
-
-
-
-</dd>
-
-
-
-
-<dt><a name="unset"></a><strong>unset</strong>&nbsp;(bitfield, flag1, ...)</dt>
-<dd>
-
- Unsets one or more flags of a bitfield.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         bitfield: Bitfield
-       </li>
-       
-       <li>
-         flag1: First Flag
-       </li>
-       
-       <li>
-         ...: More Flags
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-altered bitfield
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/nixio.crypto.html b/documentation/api/modules/nixio.crypto.html
deleted file mode 100644 (file)
index b91fe28..0000000
+++ /dev/null
@@ -1,315 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li><strong>nixio.crypto</strong></li>
-       
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>nixio.crypto</code></h1>
-
-<p>
- Cryptographical library.</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.crypto.hash">hash</a>&nbsp;(algo)</td>
-       <td class="summary">
- Create a hash object.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.crypto.hmac">hmac</a>&nbsp;(algo, key)</td>
-       <td class="summary">
- Create a HMAC object.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="nixio.crypto.hash"></a><strong>hash</strong>&nbsp;(algo)</dt>
-<dd>
-
- Create a hash object. 
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         algo: Algorithm ["sha1", "md5"]
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-CryptoHash Object
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.crypto.hmac"></a><strong>hmac</strong>&nbsp;(algo, key)</dt>
-<dd>
-
- Create a HMAC object. 
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         algo: Algorithm ["sha1", "md5"]
-       </li>
-       
-       <li>
-         key: HMAC-Key
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-CryptoHash Object
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/nixio.fs.html b/documentation/api/modules/nixio.fs.html
deleted file mode 100644 (file)
index c9d3459..0000000
+++ /dev/null
@@ -1,1558 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li><strong>nixio.fs</strong></li>
-       
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>nixio.fs</code></h1>
-
-<p>
- Low-level and high-level filesystem manipulation library.</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.access">access</a>&nbsp;(path, mode1, ...)</td>
-       <td class="summary">
- Check user's permission on a file.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.basename">basename</a>&nbsp;(path)</td>
-       <td class="summary">
- Strip the directory part from a path.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.chmod">chmod</a>&nbsp;(path, mode)</td>
-       <td class="summary">
- Change the file mode.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.chown">chown</a>&nbsp;(path, user, group)</td>
-       <td class="summary">
- (POSIX) Change owner and group of a file.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.copy">copy</a>&nbsp;(src, dest)</td>
-       <td class="summary">
- Copy a file, directory or symlink non-recursively preserving file mode, 
- timestamps, owner and group.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.copyr">copyr</a>&nbsp;(src, dest)</td>
-       <td class="summary">
- Copy a file, directory or symlink recursively preserving file mode, 
- timestamps, owner and group.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.datacopy">datacopy</a>&nbsp;(src, dest, limit)</td>
-       <td class="summary">
- Copy data between files.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.dir">dir</a>&nbsp;(path)</td>
-       <td class="summary">
- Iterate over the entries of a directory.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.dirname">dirname</a>&nbsp;(path)</td>
-       <td class="summary">
- Strip the base from a path.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.glob">glob</a>&nbsp;(pattern)</td>
-       <td class="summary">
- (POSIX) Find pathnames matching a pattern.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.lchown">lchown</a>&nbsp;(path, user, group)</td>
-       <td class="summary">
- (POSIX) Change owner and group of a file and do not resolve 
- if target is a symlink.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.link">link</a>&nbsp;(oldpath, newpath)</td>
-       <td class="summary">
- Create a hard link.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.lstat">lstat</a>&nbsp;(path, field)</td>
-       <td class="summary">
- Get file status and attributes and do not resolve if target is a symlink.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.mkdir">mkdir</a>&nbsp;(path, mode)</td>
-       <td class="summary">
- Create a new directory.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.mkdirr">mkdirr</a>&nbsp;(dest, mode)</td>
-       <td class="summary">
- Create a directory and all needed parent directories recursively.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.mkfifo">mkfifo</a>&nbsp;(path, mode)</td>
-       <td class="summary">
- (POSIX) Create a FIFO (named pipe).</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.move">move</a>&nbsp;(src, dest)</td>
-       <td class="summary">
- Rename a file, directory or symlink non-recursively across filesystems.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.mover">mover</a>&nbsp;(src, dest)</td>
-       <td class="summary">
- Rename a file, directory or symlink recursively across filesystems.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.readfile">readfile</a>&nbsp;(path, limit)</td>
-       <td class="summary">
- Read the contents of a file into a buffer.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.readlink">readlink</a>&nbsp;(path)</td>
-       <td class="summary">
- (POSIX) Read the target of a symbolic link.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.realpath">realpath</a>&nbsp;(path)</td>
-       <td class="summary">
- Return the cannonicalized absolute pathname.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.remove">remove</a>&nbsp;(path)</td>
-       <td class="summary">
- Remove a file or directory.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.rename">rename</a>&nbsp;(src, dest)</td>
-       <td class="summary">
- Renames a file or directory.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.rmdir">rmdir</a>&nbsp;(path)</td>
-       <td class="summary">
- Remove an empty directory.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.stat">stat</a>&nbsp;(path, field)</td>
-       <td class="summary">
- Get file status and attributes.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.statvfs">statvfs</a>&nbsp;(path)</td>
-       <td class="summary">
- (POSIX) Get filesystem statistics.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.symlink">symlink</a>&nbsp;(oldpath, newpath)</td>
-       <td class="summary">
- (POSIX) Create a symbolic link.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.unlink">unlink</a>&nbsp;(path)</td>
-       <td class="summary">
- Delete a name and - if no links are left - the associated file.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.utimes">utimes</a>&nbsp;(path, actime, mtime)</td>
-       <td class="summary">
- Change file last access and last modification time.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.writefile">writefile</a>&nbsp;(path, data)</td>
-       <td class="summary">
- Write a buffer into a file truncating the file first.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="nixio.fs.access"></a><strong>access</strong>&nbsp;(path, mode1, ...)</dt>
-<dd>
-
- Check user's permission on a file.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-       <li>
-         mode1: First Mode to check ["f", "r", "w", "x"]
-       </li>
-       
-       <li>
-         ...: More Modes to check      [-"-]
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.basename"></a><strong>basename</strong>&nbsp;(path)</dt>
-<dd>
-
- Strip the directory part from a path.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-This function cannot fail and will never return nil.
-
-
-
-<h3>Return value:</h3>
-basename
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.chmod"></a><strong>chmod</strong>&nbsp;(path, mode)</dt>
-<dd>
-
- Change the file mode.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-       <li>
-         mode: File mode        
- [decimal mode number, "[-r][-w][-xsS][-r][-w][-xsS][-r][-w][-xtT]"]
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>Windows only supports setting the write-protection through the 
- "Writable to others" bit.
-       
-       <li><strong>Notice:</strong> The mode-flag for the functions 
- open, mkdir, mkfifo are affected by the umask. 
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="">
-               umask
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.chown"></a><strong>chown</strong>&nbsp;(path, user, group)</dt>
-<dd>
-
- (POSIX) Change owner and group of a file.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-       <li>
-         user: User ID or Username             (optional)
-       </li>
-       
-       <li>
-         group: Group ID or Groupname  (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.copy"></a><strong>copy</strong>&nbsp;(src, dest)</dt>
-<dd>
-
- Copy a file, directory or symlink non-recursively preserving file mode, 
- timestamps, owner and group.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         src: Source path
-       </li>
-       
-       <li>
-         dest: Destination path
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-The destination must always be a full destination path e.g. do not 
- omit the basename even if source and destination basename are equal. 
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.copyr"></a><strong>copyr</strong>&nbsp;(src, dest)</dt>
-<dd>
-
- Copy a file, directory or symlink recursively preserving file mode, 
- timestamps, owner and group.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         src: Source path
-       </li>
-       
-       <li>
-         dest: Destination path
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-The destination must always be a full destination path e.g. do not 
- omit the basename even if source and destination basename are equal. 
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.datacopy"></a><strong>datacopy</strong>&nbsp;(src, dest, limit)</dt>
-<dd>
-
- Copy data between files.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         src: Source file path
-       </li>
-       
-       <li>
-         dest: Destination file path
-       </li>
-       
-       <li>
-         limit: Maximum bytes to copy (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.dir"></a><strong>dir</strong>&nbsp;(path)</dt>
-<dd>
-
- Iterate over the entries of a directory.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-The special entries "." and ".." are omitted.
-
-
-
-<h3>Return value:</h3>
-directory iterator returning one entry per call
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.dirname"></a><strong>dirname</strong>&nbsp;(path)</dt>
-<dd>
-
- Strip the base from a path.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-This function cannot fail and will never return nil.
-
-
-
-<h3>Return value:</h3>
-dirname
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.glob"></a><strong>glob</strong>&nbsp;(pattern)</dt>
-<dd>
-
- (POSIX) Find pathnames matching a pattern.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         pattern: Pattern
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>path iterator
-       
-       <li>number of matches
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.lchown"></a><strong>lchown</strong>&nbsp;(path, user, group)</dt>
-<dd>
-
- (POSIX) Change owner and group of a file and do not resolve 
- if target is a symlink.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-       <li>
-         user: User ID or Username             (optional)
-       </li>
-       
-       <li>
-         group: Group ID or Groupname  (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.link"></a><strong>link</strong>&nbsp;(oldpath, newpath)</dt>
-<dd>
-
- Create a hard link.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         oldpath: Path
-       </li>
-       
-       <li>
-         newpath: Path
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-This function calls link() on POSIX and CreateHardLink() on Windows.
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.lstat"></a><strong>lstat</strong>&nbsp;(path, field)</dt>
-<dd>
-
- Get file status and attributes and do not resolve if target is a symlink.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-       <li>
-         field: Only return a specific field, not the whole table (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing attributes (see stat for a detailed description)
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#nixio.fs.stat">
-               stat
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.mkdir"></a><strong>mkdir</strong>&nbsp;(path, mode)</dt>
-<dd>
-
- Create a new directory.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-       <li>
-         mode: File mode (optional, see chmod and umask)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#nixio.fs.chmod">
-               chmod
-       </a>
-       
-       <li><a href="">
-               umask
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.mkdirr"></a><strong>mkdirr</strong>&nbsp;(dest, mode)</dt>
-<dd>
-
- Create a directory and all needed parent directories recursively. 
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         dest: Destination path
-       </li>
-       
-       <li>
-         mode: File mode (optional, see chmod and umask)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#nixio.fs.chmod">
-               chmod
-       </a>
-       
-       <li><a href="">
-               umask
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.mkfifo"></a><strong>mkfifo</strong>&nbsp;(path, mode)</dt>
-<dd>
-
- (POSIX) Create a FIFO (named pipe).
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-       <li>
-         mode: File mode (optional, see chmod and umask)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#nixio.fs.chmod">
-               chmod
-       </a>
-       
-       <li><a href="">
-               umask
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.move"></a><strong>move</strong>&nbsp;(src, dest)</dt>
-<dd>
-
- Rename a file, directory or symlink non-recursively across filesystems.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         src: Source path
-       </li>
-       
-       <li>
-         dest: Destination path
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-The destination must always be a full destination path e.g. do not 
- omit the basename even if source and destination basename are equal. 
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.mover"></a><strong>mover</strong>&nbsp;(src, dest)</dt>
-<dd>
-
- Rename a file, directory or symlink recursively across filesystems.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         src: Source path
-       </li>
-       
-       <li>
-         dest: Destination path
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-The destination must always be a full destination path e.g. do not 
- omit the basename even if source and destination basename are equal. 
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.readfile"></a><strong>readfile</strong>&nbsp;(path, limit)</dt>
-<dd>
-
- Read the contents of a file into a buffer.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-       <li>
-         limit: Maximum bytes to read (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-file contents
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.readlink"></a><strong>readlink</strong>&nbsp;(path)</dt>
-<dd>
-
- (POSIX) Read the target of a symbolic link.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-target path
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.realpath"></a><strong>realpath</strong>&nbsp;(path)</dt>
-<dd>
-
- Return the cannonicalized absolute pathname.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-absolute path
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.remove"></a><strong>remove</strong>&nbsp;(path)</dt>
-<dd>
-
- Remove a file or directory.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.rename"></a><strong>rename</strong>&nbsp;(src, dest)</dt>
-<dd>
-
- Renames a file or directory.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         src: Source path
-       </li>
-       
-       <li>
-         dest: Destination path
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-It is normally not possible to rename files across filesystems.
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.rmdir"></a><strong>rmdir</strong>&nbsp;(path)</dt>
-<dd>
-
- Remove an empty directory.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.stat"></a><strong>stat</strong>&nbsp;(path, field)</dt>
-<dd>
-
- Get file status and attributes.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-       <li>
-         field: Only return a specific field, not the whole table (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing: <ul> 
- <li>atime = Last access timestamp</li> 
- <li>blksize = Blocksize (POSIX only)</li> 
- <li>blocks = Blocks used (POSIX only)</li> 
- <li>ctime = Creation timestamp</li> 
- <li>dev = Device ID</li> 
- <li>gid = Group ID</li> 
- <li>ino = Inode</li> 
- <li>modedec = Mode converted into a decimal number</li> 
- <li>modestr = Mode as string as returned by <code>ls -l</code></li> 
- <li>mtime = Last modification timestamp</li> 
- <li>nlink = Number of links</li> 
- <li>rdev = Device ID (if special file)</li> 
- <li>size = Size in bytes</li> 
- <li>type = ["reg", "dir", "chr", "blk", "fifo", "lnk", "sock"]</li> 
- <li>uid = User ID</li> 
- </ul>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.statvfs"></a><strong>statvfs</strong>&nbsp;(path)</dt>
-<dd>
-
- (POSIX) Get filesystem statistics.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path to any file within the filesystem.
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing: <ul> 
- <li>bavail = available blocks</li> 
- <li>bfree = free blocks</li> 
- <li>blocks = number of fragments</li> 
- <li>frsize = fragment size</li> 
- <li>favail = available inodes</li> 
- <li>ffree = free inodes</li> 
- <li>files = inodes</li> 
- <li>flag = flags</li> 
- <li>fsid = filesystem ID</li> 
- <li>namemax = maximum filename length</li> 
- </ul>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.symlink"></a><strong>symlink</strong>&nbsp;(oldpath, newpath)</dt>
-<dd>
-
- (POSIX) Create a symbolic link.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         oldpath: Path
-       </li>
-       
-       <li>
-         newpath: Path
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.unlink"></a><strong>unlink</strong>&nbsp;(path)</dt>
-<dd>
-
- Delete a name and - if no links are left - the associated file.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.utimes"></a><strong>utimes</strong>&nbsp;(path, actime, mtime)</dt>
-<dd>
-
- Change file last access and last modification time.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-       <li>
-         actime: Last access timestamp (optional, default: current time)
-       </li>
-       
-       <li>
-         mtime: Last modification timestamp (optional, default: actime)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.writefile"></a><strong>writefile</strong>&nbsp;(path, data)</dt>
-<dd>
-
- Write a buffer into a file truncating the file first.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-       <li>
-         data: Data to write
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/api/modules/nixio.html b/documentation/api/modules/nixio.html
deleted file mode 100644 (file)
index bf93619..0000000
+++ /dev/null
@@ -1,2401 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li><strong>nixio</strong></li>
-       
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>nixio</code></h1>
-
-<p>
- General POSIX IO library.</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.bind">bind</a>&nbsp;(host, port, family, socktype)</td>
-       <td class="summary">
- Create a new socket and bind it to a network address.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.chdir">chdir</a>&nbsp;(path)</td>
-       <td class="summary">
- Change the working directory.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.closelog">closelog</a>&nbsp;()</td>
-       <td class="summary">
- (POSIX) Close the connection to the system logger.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.connect">connect</a>&nbsp;(host, port, family, socktype)</td>
-       <td class="summary">
- Create a new socket and connect to a network address.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.crypt">crypt</a>&nbsp;(key, salt)</td>
-       <td class="summary">
- (POSIX) Encrypt a user password.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.dup">dup</a>&nbsp;(oldfd, newfd)</td>
-       <td class="summary">
- Duplicate a file descriptor.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.errno">errno</a>&nbsp;()</td>
-       <td class="summary">
- Get the last system error code.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.exec">exec</a>&nbsp;(executable, ...)</td>
-       <td class="summary">
- Execute a file to replace the current process.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.exece">exece</a>&nbsp;(executable, arguments, environment)</td>
-       <td class="summary">
- Execute a file with a custom environment to replace the current process.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.execp">execp</a>&nbsp;(executable, ...)</td>
-       <td class="summary">
- Invoke the shell and execute a file to replace the current process.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fork">fork</a>&nbsp;()</td>
-       <td class="summary">
- (POSIX) Clone the current process.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.getaddrinfo">getaddrinfo</a>&nbsp;(host, family, service)</td>
-       <td class="summary">
- Look up a hostname and service via DNS.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.getcwd">getcwd</a>&nbsp;()</td>
-       <td class="summary">
- Get the current working directory.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.getenv">getenv</a>&nbsp;(variable)</td>
-       <td class="summary">
- Get the current environment table or a specific environment variable.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.getgid">getgid</a>&nbsp;()</td>
-       <td class="summary">
- (POSIX) Get the group id of the current process.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.getgr">getgr</a>&nbsp;(group)</td>
-       <td class="summary">
- (POSIX) Get all or a specific user group.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.getifaddrs">getifaddrs</a>&nbsp;()</td>
-       <td class="summary">
- (Linux, BSD) Get a list of available network interfaces and their addresses.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.getnameinfo">getnameinfo</a>&nbsp;(ipaddr)</td>
-       <td class="summary">
- Reverse look up an IP-Address via DNS.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.getpid">getpid</a>&nbsp;()</td>
-       <td class="summary">
- Get the ID of the current process.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.getppid">getppid</a>&nbsp;()</td>
-       <td class="summary">
- (POSIX) Get the parent process id of the current process.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.getproto">getproto</a>&nbsp;(proto)</td>
-       <td class="summary">
- Get all or a specific proto entry.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.getprotobyname">getprotobyname</a>&nbsp;(name)</td>
-       <td class="summary">
- Get protocol entry by name.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.getprotobynumber">getprotobynumber</a>&nbsp;(proto)</td>
-       <td class="summary">
- Get protocol entry by number.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.getpw">getpw</a>&nbsp;(user)</td>
-       <td class="summary">
- (POSIX) Get all or a specific user account.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.getsp">getsp</a>&nbsp;(user)</td>
-       <td class="summary">
- (Linux, Solaris) Get all or a specific shadow password entry.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.getuid">getuid</a>&nbsp;()</td>
-       <td class="summary">
- (POSIX) Get the user id of the current process.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.kill">kill</a>&nbsp;(target, signal)</td>
-       <td class="summary">
- (POSIX) Send a signal to one or more processes.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.nanosleep">nanosleep</a>&nbsp;(seconds, nanoseconds)</td>
-       <td class="summary">
- Sleep for a specified amount of time.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.nice">nice</a>&nbsp;(nice)</td>
-       <td class="summary">
- (POSIX) Change priority of current process.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.open">open</a>&nbsp;(path, flags, mode)</td>
-       <td class="summary">
- Open a file.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.open_flags">open_flags</a>&nbsp;(flag1, ...)</td>
-       <td class="summary">
- Generate flags for a call to open().</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.openlog">openlog</a>&nbsp;(ident, flag1, ...)</td>
-       <td class="summary">
- (POSIX) Open a connection to the system logger.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.pipe">pipe</a>&nbsp;()</td>
-       <td class="summary">
- Create a pipe.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.poll">poll</a>&nbsp;(fds, timeout)</td>
-       <td class="summary">
- Wait for some event on a file descriptor.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.poll_flags">poll_flags</a>&nbsp;(mode1, ...)</td>
-       <td class="summary">
- Generate events-bitfield or parse revents-bitfield for poll.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.sendfile">sendfile</a>&nbsp;(socket, file, length)</td>
-       <td class="summary">
- (POSIX) Send data from a file to a socket in kernel-space.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.setenv">setenv</a>&nbsp;(variable, value)</td>
-       <td class="summary">
- Set or unset a environment variable.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.setgid">setgid</a>&nbsp;(gid)</td>
-       <td class="summary">
- (POSIX) Set the group id of the current process.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.setlogmask">setlogmask</a>&nbsp;(priority)</td>
-       <td class="summary">
- (POSIX) Set the logmask of the system logger for current process.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.setsid">setsid</a>&nbsp;()</td>
-       <td class="summary">
- (POSIX) Create a new session and set the process group ID.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.setuid">setuid</a>&nbsp;(gid)</td>
-       <td class="summary">
- (POSIX) Set the user id of the current process.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.signal">signal</a>&nbsp;(signal, handler)</td>
-       <td class="summary">
- Ignore or use set the default handler for a signal.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.socket">socket</a>&nbsp;(domain, type)</td>
-       <td class="summary">
- Create a new socket.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.splice">splice</a>&nbsp;(fdin, fdout, length, flags)</td>
-       <td class="summary">
- (Linux) Send data from / to a pipe in kernel-space.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.splice_flags">splice_flags</a>&nbsp;(flag1, ...)</td>
-       <td class="summary">
- (Linux) Generate a flag bitfield for a call to splice.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.strerror">strerror</a>&nbsp;(errno)</td>
-       <td class="summary">
- Get the error message for the corresponding error code.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.sysinfo">sysinfo</a>&nbsp;()</td>
-       <td class="summary">
- (Linux) Get overall system statistics.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.syslog">syslog</a>&nbsp;(priority)</td>
-       <td class="summary">
- (POSIX) Write a message to the system logger.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.times">times</a>&nbsp;()</td>
-       <td class="summary">
- (POSIX) Get process times.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.tls">tls</a>&nbsp;(mode)</td>
-       <td class="summary">
- Create a new TLS context.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.umask">umask</a>&nbsp;(mask)</td>
-       <td class="summary">
- Sets the file mode creation mask.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.uname">uname</a>&nbsp;()</td>
-       <td class="summary">
- (POSIX) Get information about current system and kernel.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.waitpid">waitpid</a>&nbsp;(pid, flag1, ...)</td>
-       <td class="summary">
- (POSIX) Wait for a process to change state.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="nixio.bind"></a><strong>bind</strong>&nbsp;(host, port, family, socktype)</dt>
-<dd>
-
- Create a new socket and bind it to a network address. 
- This function is a shortcut for calling nixio.socket and then bind() 
- on the socket object.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         host: Hostname or IP-Address (optional, default: all addresses)
-       </li>
-       
-       <li>
-         port: Port or service description
-       </li>
-       
-       <li>
-         family: Address family [<strong>"any"</strong>, "inet", "inet6"]
-       </li>
-       
-       <li>
-         socktype: Socket Type [<strong>"stream"</strong>, "dgram"]
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This functions calls getaddrinfo(), socket(), 
- setsockopt() and bind() but NOT listen().
-       
-       <li>The <em>reuseaddr</em>-option is automatically set before binding.
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-Socket Object
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.chdir"></a><strong>chdir</strong>&nbsp;(path)</dt>
-<dd>
-
- Change the working directory.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: New working directory
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.closelog"></a><strong>closelog</strong>&nbsp;()</dt>
-<dd>
-
- (POSIX) Close the connection to the system logger.
-
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.connect"></a><strong>connect</strong>&nbsp;(host, port, family, socktype)</dt>
-<dd>
-
- Create a new socket and connect to a network address. 
- This function is a shortcut for calling nixio.socket and then connect() 
- on the socket object.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         host: Hostname or IP-Address (optional, default: localhost)
-       </li>
-       
-       <li>
-         port: Port or service description
-       </li>
-       
-       <li>
-         family: Address family [<strong>"any"</strong>, "inet", "inet6"]
-       </li>
-       
-       <li>
-         socktype: Socket Type [<strong>"stream"</strong>, "dgram"]
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-This functions calls getaddrinfo(), socket() and connect().
-
-
-
-<h3>Return value:</h3>
-Socket Object
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.crypt"></a><strong>crypt</strong>&nbsp;(key, salt)</dt>
-<dd>
-
- (POSIX) Encrypt a user password.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         key: Key
-       </li>
-       
-       <li>
-         salt: Salt
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-password hash
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.dup"></a><strong>dup</strong>&nbsp;(oldfd, newfd)</dt>
-<dd>
-
- Duplicate a file descriptor.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         oldfd: Old descriptor [File Object, Socket Object (POSIX only)]
-       </li>
-       
-       <li>
-         newfd: New descriptor to serve as copy (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-This funcation calls dup2() if <em>newfd</em> is set, otherwise dup().
-
-
-
-<h3>Return value:</h3>
-File Object of new descriptor
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.errno"></a><strong>errno</strong>&nbsp;()</dt>
-<dd>
-
- Get the last system error code.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Error code
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.exec"></a><strong>exec</strong>&nbsp;(executable, ...)</dt>
-<dd>
-
- Execute a file to replace the current process.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         executable: Executable
-       </li>
-       
-       <li>
-         ...: Parameters
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>The name of the executable is automatically passed as argv[0]
-       
-       <li>This function does not return on success.
-       
-</ul>
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.exece"></a><strong>exece</strong>&nbsp;(executable, arguments, environment)</dt>
-<dd>
-
- Execute a file with a custom environment to replace the current process.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         executable: Executable
-       </li>
-       
-       <li>
-         arguments: Argument Table
-       </li>
-       
-       <li>
-         environment: Environment Table (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>The name of the executable is automatically passed as argv[0]
-       
-       <li>This function does not return on success.
-       
-</ul>
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.execp"></a><strong>execp</strong>&nbsp;(executable, ...)</dt>
-<dd>
-
- Invoke the shell and execute a file to replace the current process.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         executable: Executable
-       </li>
-       
-       <li>
-         ...: Parameters
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>The name of the executable is automatically passed as argv[0]
-       
-       <li>This function does not return on success.
-       
-</ul>
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fork"></a><strong>fork</strong>&nbsp;()</dt>
-<dd>
-
- (POSIX) Clone the current process.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-the child process id for the parent process, 0 for the child process
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.getaddrinfo"></a><strong>getaddrinfo</strong>&nbsp;(host, family, service)</dt>
-<dd>
-
- Look up a hostname and service via DNS.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         host: hostname to lookup      (optional)
-       </li>
-       
-       <li>
-         family: address family [<strong>"any"</strong>, "inet", "inet6"]  
-       </li>
-       
-       <li>
-         service: service name or port (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing one or more tables containing: <ul> 
- <li>family = ["inet", "inet6"]</li> 
- <li>socktype = ["stream", "dgram", "raw"]</li> 
- <li>address = Resolved IP-Address</li> 
- <li>port = Resolved Port (if service was given)</li> 
- </ul>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.getcwd"></a><strong>getcwd</strong>&nbsp;()</dt>
-<dd>
-
- Get the current working directory.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-workign directory
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.getenv"></a><strong>getenv</strong>&nbsp;(variable)</dt>
-<dd>
-
- Get the current environment table or a specific environment variable.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         variable: Variable (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-environment table or single environment variable
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.getgid"></a><strong>getgid</strong>&nbsp;()</dt>
-<dd>
-
- (POSIX) Get the group id of the current process.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-process group id
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.getgr"></a><strong>getgr</strong>&nbsp;(group)</dt>
-<dd>
-
- (POSIX) Get all or a specific user group.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         group: Group ID or groupname (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing: <ul> 
- <li>name = Group Name</li> 
- <li>gid = Group ID</li> 
- <li>passwd = Password</li> 
- <li>mem = {Member #1, Member #2, ...}</li> 
- </ul>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.getifaddrs"></a><strong>getifaddrs</strong>&nbsp;()</dt>
-<dd>
-
- (Linux, BSD) Get a list of available network interfaces and their addresses.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing one or more tables containing: <ul> 
- <li>name = Interface Name</li> 
- <li>family = ["inet", "inet6", "packet"]</li> 
- <li>addr = Interface Address (IPv4, IPv6, MAC, ...)</li> 
- <li>broadaddr = Broadcast Address</li> 
- <li>dstaddr = Destination Address (Point-to-Point)</li> 
- <li>netmask = Netmask (if available)</li> 
- <li>prefix = Prefix (if available)</li> 
- <li>flags = Table of interface flags (up, multicast, loopback, ...)</li> 
- <li>data = Statistics (Linux, "packet"-family)</li> 
- <li>hatype = Hardware Type Identifier (Linix, "packet"-family)</li> 
- <li>ifindex = Interface Index (Linux, "packet"-family)</li> 
- </ul>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.getnameinfo"></a><strong>getnameinfo</strong>&nbsp;(ipaddr)</dt>
-<dd>
-
- Reverse look up an IP-Address via DNS.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         ipaddr: IPv4 or IPv6-Address
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-FQDN
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.getpid"></a><strong>getpid</strong>&nbsp;()</dt>
-<dd>
-
- Get the ID of the current process.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-process id
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.getppid"></a><strong>getppid</strong>&nbsp;()</dt>
-<dd>
-
- (POSIX) Get the parent process id of the current process.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-parent process id
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.getproto"></a><strong>getproto</strong>&nbsp;(proto)</dt>
-<dd>
-
- Get all or a specific proto entry.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         proto: protocol number or name to lookup (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table (or if no parameter is given, a table of tables) 
-                  containing the following fields: <ul> 
- <li>name = Protocol Name</li> 
- <li>proto = Protocol Number</li> 
- <li>aliases = Table of alias names</li> 
- </ul>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.getprotobyname"></a><strong>getprotobyname</strong>&nbsp;(name)</dt>
-<dd>
-
- Get protocol entry by name.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         name: protocol name to lookup
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-This function returns nil if the given protocol is unknown.
-
-
-
-<h3>Return value:</h3>
-Table containing the following fields: <ul> 
- <li>name = Protocol Name</li> 
- <li>proto = Protocol Number</li> 
- <li>aliases = Table of alias names</li> 
- </ul>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.getprotobynumber"></a><strong>getprotobynumber</strong>&nbsp;(proto)</dt>
-<dd>
-
- Get protocol entry by number.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         proto: protocol number to lookup
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-This function returns nil if the given protocol is unknown.
-
-
-
-<h3>Return value:</h3>
-Table containing the following fields: <ul> 
- <li>name = Protocol Name</li> 
- <li>proto = Protocol Number</li> 
- <li>aliases = Table of alias names</li> 
- </ul>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.getpw"></a><strong>getpw</strong>&nbsp;(user)</dt>
-<dd>
-
- (POSIX) Get all or a specific user account.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         user: User ID or username (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing: <ul> 
- <li>name = Name</li> 
- <li>uid = ID</li> 
- <li>gid = Group ID</li> 
- <li>passwd = Password</li> 
- <li>dir = Home directory</li> 
- <li>gecos = Information</li> 
- <li>shell = Shell</li> 
- </ul>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.getsp"></a><strong>getsp</strong>&nbsp;(user)</dt>
-<dd>
-
- (Linux, Solaris) Get all or a specific shadow password entry.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         user: username (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing: <ul> 
- <li>namp = Name</li> 
- <li>expire = Expiration Date</li> 
- <li>flag = Flags</li> 
- <li>inact = Inactivity Date</li> 
- <li>lstchg = Last change</li> 
- <li>max = Maximum</li> 
- <li>min = Minimum</li> 
- <li>warn = Warning</li> 
- <li>pwdp = Password Hash</li> 
- </ul>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.getuid"></a><strong>getuid</strong>&nbsp;()</dt>
-<dd>
-
- (POSIX) Get the user id of the current process.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-process user id
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.kill"></a><strong>kill</strong>&nbsp;(target, signal)</dt>
-<dd>
-
- (POSIX) Send a signal to one or more processes.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         target: Target process of process group.
-       </li>
-       
-       <li>
-         signal: Signal to send
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.nanosleep"></a><strong>nanosleep</strong>&nbsp;(seconds, nanoseconds)</dt>
-<dd>
-
- Sleep for a specified amount of time.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         seconds: Seconds to wait (optional)
-       </li>
-       
-       <li>
-         nanoseconds: Nanoseconds to wait (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>Not all systems support nanosecond precision but you can expect 
- to have at least maillisecond precision.
-       
-       <li>This function is not signal-protected and may fail with EINTR.
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.nice"></a><strong>nice</strong>&nbsp;(nice)</dt>
-<dd>
-
- (POSIX) Change priority of current process.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         nice: Nice Value
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.open"></a><strong>open</strong>&nbsp;(path, flags, mode)</dt>
-<dd>
-
- Open a file.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Filesystem path to open
-       </li>
-       
-       <li>
-         flags: Flag string or number (see open_flags). 
- [<strong>"r"</strong>, "r+", "w", "w+", "a", "a+"]
-       </li>
-       
-       <li>
-         mode: File mode for newly created files (see chmod, umask).
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-Although this function also supports the traditional fopen()  
- file flags it does not create a file stream but uses the open() syscall.
-
-
-
-<h3>Return value:</h3>
-File Object
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#nixio.umask">
-               umask
-       </a>
-       
-       <li><a href="#nixio.open_flags">
-               open_flags
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="nixio.open_flags"></a><strong>open_flags</strong>&nbsp;(flag1, ...)</dt>
-<dd>
-
- Generate flags for a call to open().
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         flag1: First Flag ["append", "creat", "excl", "nonblock", "ndelay", 
- "sync", "trunc", "rdonly", "wronly", "rdwr"]
-       </li>
-       
-       <li>
-         ...: More Flags [-"-]
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function cannot fail and will never return nil.
-       
-       <li>The "nonblock" and "ndelay" flags are aliases.
-       
-       <li>The "nonblock", "ndelay" and "sync" flags are no-ops on Windows.
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-flag to be used as second parameter to open
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.openlog"></a><strong>openlog</strong>&nbsp;(ident, flag1, ...)</dt>
-<dd>
-
- (POSIX) Open a connection to the system logger.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         ident: Identifier
-       </li>
-       
-       <li>
-         flag1: Flag 1 ["cons", "nowait", "pid", "perror", "ndelay", "odelay"]
-       </li>
-       
-       <li>
-         ...: More flags [-"-]
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.pipe"></a><strong>pipe</strong>&nbsp;()</dt>
-<dd>
-
- Create a pipe.
-
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>File Object of the read end
-       
-       <li>File Object of the write end
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.poll"></a><strong>poll</strong>&nbsp;(fds, timeout)</dt>
-<dd>
-
- Wait for some event on a file descriptor. 
- poll() sets the revents-field of the tables provided by fds to a bitfield 
- indicating the events that occurred.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         fds: Table containing one or more tables containing <ul> 
- <li> fd = I/O Descriptor [Socket Object, File Object (POSIX)]</li> 
- <li> events = events to wait for (bitfield generated with poll_flags)</li> 
- </ul>
-       </li>
-       
-       <li>
-         timeout: Timeout in milliseconds
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function works in-place on the provided table and only 
- writes the revents field, you can use other fields on your demand.
-       
-       <li>All metamethods on the tables provided as fds are ignored.
-       
-       <li>The revents-fields are not reset when the call times out. 
- You have to check the first return value to be 0 to handle this case.
-       
-       <li>If you want to wait on a TLS-Socket you have to use the underlying 
- socket instead.
-       
-       <li>On Windows poll is emulated through select(), can only be used 
- on socket descriptors and cannot take more than 64 descriptors per call.
-       
-       <li>This function is not signal-protected and may fail with EINTR.
-       
-</ul>
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>number of ready IO descriptors
-       
-       <li>the fds-table with revents-fields set
-       
-</ol>
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#nixio.poll_flags">
-               poll_flags
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="nixio.poll_flags"></a><strong>poll_flags</strong>&nbsp;(mode1, ...)</dt>
-<dd>
-
- Generate events-bitfield or parse revents-bitfield for poll.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         mode1: revents-Flag bitfield returned from poll to parse OR  
- ["in", "out", "err", "pri" (POSIX), "hup" (POSIX), "nval" (POSIX)]
-       </li>
-       
-       <li>
-         ...: More mode strings for generating the flag [-"-]
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-table with boolean fields reflecting the mode parameter  
- <strong>OR</strong> bitfield to use for the events-Flag field
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#nixio.poll">
-               poll
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="nixio.sendfile"></a><strong>sendfile</strong>&nbsp;(socket, file, length)</dt>
-<dd>
-
- (POSIX) Send data from a file to a socket in kernel-space.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         socket: Socket Object
-       </li>
-       
-       <li>
-         file: File Object
-       </li>
-       
-       <li>
-         length: Amount of data to send (in Bytes).
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-bytes sent
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.setenv"></a><strong>setenv</strong>&nbsp;(variable, value)</dt>
-<dd>
-
- Set or unset a environment variable.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         variable: Variable
-       </li>
-       
-       <li>
-         value: Value (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-The environment variable will be unset if value is omitted.
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.setgid"></a><strong>setgid</strong>&nbsp;(gid)</dt>
-<dd>
-
- (POSIX) Set the group id of the current process.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         gid: New Group ID
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.setlogmask"></a><strong>setlogmask</strong>&nbsp;(priority)</dt>
-<dd>
-
- (POSIX) Set the logmask of the system logger for current process.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         priority: Priority ["emerg", "alert", "crit", "err", "warning", 
- "notice", "info", "debug"]
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.setsid"></a><strong>setsid</strong>&nbsp;()</dt>
-<dd>
-
- (POSIX) Create a new session and set the process group ID.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-session id
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.setuid"></a><strong>setuid</strong>&nbsp;(gid)</dt>
-<dd>
-
- (POSIX) Set the user id of the current process.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         gid: New User ID
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.signal"></a><strong>signal</strong>&nbsp;(signal, handler)</dt>
-<dd>
-
- Ignore or use set the default handler for a signal.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         signal: Signal
-       </li>
-       
-       <li>
-         handler: ["ign", "dfl"]
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.socket"></a><strong>socket</strong>&nbsp;(domain, type)</dt>
-<dd>
-
- Create a new socket.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         domain: Domain ["inet", "inet6", "unix"]
-       </li>
-       
-       <li>
-         type: Type   ["stream", "dgram", "raw"]
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Socket Object
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.splice"></a><strong>splice</strong>&nbsp;(fdin, fdout, length, flags)</dt>
-<dd>
-
- (Linux) Send data from / to a pipe in kernel-space.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         fdin: Input I/O descriptor 
-       </li>
-       
-       <li>
-         fdout: Output I/O descriptor
-       </li>
-       
-       <li>
-         length: Amount of data to send (in Bytes).
-       </li>
-       
-       <li>
-         flags: (optional, bitfield generated by splice_flags)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-bytes sent
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#nixio.splice_flags">
-               splice_flags
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="nixio.splice_flags"></a><strong>splice_flags</strong>&nbsp;(flag1, ...)</dt>
-<dd>
-
- (Linux) Generate a flag bitfield for a call to splice.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         flag1: First Flag     ["move", "nonblock", "more"]
-       </li>
-       
-       <li>
-         ...: More flags       [-"-]
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Flag bitfield
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#nixio.splice">
-               splice
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="nixio.strerror"></a><strong>strerror</strong>&nbsp;(errno)</dt>
-<dd>
-
- Get the error message for the corresponding error code.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         errno: System error code
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Error message
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.sysinfo"></a><strong>sysinfo</strong>&nbsp;()</dt>
-<dd>
-
- (Linux) Get overall system statistics.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing: <ul> 
- <li>uptime = system uptime in seconds</li> 
- <li>loads = {loadavg1, loadavg5, loadavg15}</li> 
- <li>totalram = total RAM</li> 
- <li>freeram = free RAM</li> 
- <li>sharedram = shared RAM</li> 
- <li>bufferram = buffered RAM</li> 
- <li>totalswap = total SWAP</li> 
- <li>freeswap = free SWAP</li> 
- <li>procs = number of running processes</li> 
- </ul>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.syslog"></a><strong>syslog</strong>&nbsp;(priority)</dt>
-<dd>
-
- (POSIX) Write a message to the system logger.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         priority: Priority ["emerg", "alert", "crit", "err", "warning", 
- "notice", "info", "debug"]
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.times"></a><strong>times</strong>&nbsp;()</dt>
-<dd>
-
- (POSIX) Get process times.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing: <ul> 
- <li>utime = user time</li> 
- <li>utime = system time</li> 
- <li>cutime = children user time</li> 
- <li>cstime = children system time</li> 
- </ul>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.tls"></a><strong>tls</strong>&nbsp;(mode)</dt>
-<dd>
-
- Create a new TLS context.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         mode: TLS-Mode ["client", "server"]
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-TLSContext Object
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.umask"></a><strong>umask</strong>&nbsp;(mask)</dt>
-<dd>
-
- Sets the file mode creation mask.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         mask: New creation mask (see chmod for format specifications)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>the old umask as decimal mode number
-       
-       <li>the old umask as mode string
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.uname"></a><strong>uname</strong>&nbsp;()</dt>
-<dd>
-
- (POSIX) Get information about current system and kernel.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing: <ul> 
- <li>sysname = operating system</li> 
- <li>nodename = network name (usually hostname)</li> 
- <li>release = OS release</li> 
- <li>version = OS version</li> 
- <li>machine = hardware identifier</li> 
- </ul>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.waitpid"></a><strong>waitpid</strong>&nbsp;(pid, flag1, ...)</dt>
-<dd>
-
- (POSIX) Wait for a process to change state.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         pid: Process ID       (optional, default: any childprocess)
-       </li>
-       
-       <li>
-         flag1: Flag   (optional) ["nohang", "untraced", "continued"]
-       </li>
-       
-       <li>
-         ...: More Flags [-"-]
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-If the "nohang" is given this function becomes non-blocking.
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>process id of child or 0 if no child has changed state
-       
-       <li>["exited", "signaled", "stopped"]
-       
-       <li>[exit code, terminate signal, stop signal]
-       
-</ol>
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/documentation/i18n.md b/documentation/i18n.md
deleted file mode 100644 (file)
index 226a406..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-# General
-Translations are saved in the folder po/ for each module and application. You find the reference in po/templates/<package>.pot. The actual translation files can be found at po/[lang]/[package].po .
-
-In order to use the commands below you need to have the _gettext'' utilities (''msgcat'', ''msgfmt'', ''msgmerge_) installed on your system.
-
-# Rebuild po files
-If you want to rebuild the translations after you made changes to a package this is an easy way:
-       
-       ./build/i18n-scan.pl applications/[application] > applications/[application]/po/templates/[application_basename].pot
-       ./build/i18n-update.pl applications/[application]/po
-
-       Example:
-       ./build/i18n-scan.pl applications/luci-app-firewall > applications/luci-app-firewall/po/templates/firewall.pot
-       ./build/i18n-update.pl applications/luci-app-firewall/po
-       (note that the directory argument can be omitted for i18n-update.pl to update all apps)
-       
-*Note:* Some packages share translation files, in this case you need to scan through all their folders. The first command from above should then be:
-       
-       ./build/i18n-scan.pl applications/[package-1] applications/[package-2] applications/[package-n] > [location of shared template]/[application].pot
diff --git a/documentation/jsapi/LuCI.Class.html b/documentation/jsapi/LuCI.Class.html
deleted file mode 100644 (file)
index 28916f1..0000000
+++ /dev/null
@@ -1,2322 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8">
-    <title>Class: Class</title>
-    
-    
-    <script src="scripts/prettify/prettify.js"></script>
-    <script src="scripts/prettify/lang-css.js"></script>
-    <script src="scripts/jquery.min.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/bootstrap.min.css">
-    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
-    
-    
-    <script>
-    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
-    </script>
-    
-
-    
-</head>
-<body>
-<div id="wrap" class="clearfix">
-    
-<div class="navigation">
-    <h3 class="applicationName"><a href="index.html"></a></h3>
-
-    <div class="search">
-        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
-    </div>
-    <ul class="list">
-    
-        <li class="item" data-name="LuCI">
-            <span class="title">
-                <a href="LuCI.html">LuCI</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
-            
-                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
-            
-                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
-            
-                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
-            
-                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
-            
-                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
-            
-                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
-            
-                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
-            
-                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
-            
-                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
-            
-                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
-            
-                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
-            
-                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
-            
-                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
-            
-                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
-            
-                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
-            
-                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
-            
-                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
-            
-                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Class">
-            <span class="title">
-                <a href="LuCI.Class.html">LuCI.Class</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
-            
-                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
-            
-                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
-            
-                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
-            
-                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
-            
-                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.dom">
-            <span class="title">
-                <a href="LuCI.dom.html">LuCI.dom</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
-            
-                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
-            
-                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
-            
-                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
-            
-                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
-            
-                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
-            
-                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
-            
-                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
-            
-                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
-            
-                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.fs">
-            <span class="title">
-                <a href="LuCI.fs.html">LuCI.fs</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
-            
-                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
-            
-                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
-            
-                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
-            
-                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
-            
-                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
-            
-                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
-            
-                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Headers">
-            <span class="title">
-                <a href="LuCI.Headers.html">LuCI.Headers</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
-            
-                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network">
-            <span class="title">
-                <a href="LuCI.Network.html">LuCI.Network</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
-            
-                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
-            
-                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
-            
-                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
-            
-                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
-            
-                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
-            
-                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
-            
-                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
-            
-                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
-            
-                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
-            
-                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
-            
-                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
-            
-                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
-            
-                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
-            
-                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
-            
-                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
-            
-                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Device">
-            <span class="title">
-                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
-            
-                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
-            
-                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
-            
-                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
-            
-                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Hosts">
-            <span class="title">
-                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Protocol">
-            <span class="title">
-                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiDevice">
-            <span class="title">
-                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiNetwork">
-            <span class="title">
-                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Poll">
-            <span class="title">
-                <a href="LuCI.Poll.html">LuCI.Poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request">
-            <span class="title">
-                <a href="LuCI.Request.html">LuCI.Request</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
-            
-                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
-            
-                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
-            
-                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request.poll">
-            <span class="title">
-                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Response">
-            <span class="title">
-                <a href="LuCI.Response.html">LuCI.Response</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
-            
-                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
-            
-                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
-            
-                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
-            
-                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
-            
-                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
-            
-                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
-            
-                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.rpc">
-            <span class="title">
-                <a href="LuCI.rpc.html">LuCI.rpc</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
-            
-                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
-            
-                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
-            
-                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
-            
-                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
-            
-                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
-            
-                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.uci">
-            <span class="title">
-                <a href="LuCI.uci.html">LuCI.uci</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
-            
-                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
-            
-                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
-            
-                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
-            
-                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
-            
-                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
-            
-                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
-            
-                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
-            
-                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
-            
-                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
-            
-                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
-            
-                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
-            
-                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
-            
-                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
-            
-                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
-            
-                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
-            
-                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
-            
-                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.view">
-            <span class="title">
-                <a href="LuCI.view.html">LuCI.view</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
-            
-                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
-            
-                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
-            
-                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
-            
-                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
-            
-                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.XHR">
-            <span class="title">
-                <a href="LuCI.XHR.html">LuCI.XHR</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
-            
-                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
-            
-                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
-            
-                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
-            
-                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
-            
-                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-    </ul>
-</div>
-    <div class="main">
-        <h1 class="page-title" data-filename="LuCI.Class.html">Class: Class</h1>
-        
-
-
-
-<section>
-    
-<header>
-    <h2>
-        <span class="ancestors"><a href="LuCI.html">LuCI</a>.</span>
-    
-    Class
-    </h2>
-    
-        <div class="class-description"><p><code>LuCI.Class</code> is the abstract base class all LuCI classes inherit from.</p>
-<p>It provides simple means to create subclasses of given classes and
-implements prototypal inheritance.</p></div>
-    
-</header>  
-
-<article>
-    <div class="container-overview">
-    
-    
-    
-        
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="Class">
-            
-            new LuCI.Class<span class="signature">()</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 59
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-    
-    </div>
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-        <h3 class="subsection-title">Methods</h3>
-        
-        <dl>
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id=".extend">
-            
-            <span class="type-signature static">static</span>LuCI.Class.extend<span class="signature">(properties)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{<a href="LuCI.Class.html">LuCI.Class</a>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 87
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Extends this base class with the properties described in
-<code>properties</code> and returns a new subclassed Class instance</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>properties</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Object.&lt;string, *></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>An object describing the properties to add to the new
-subclass.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        <a href="LuCI.Class.html">LuCI.Class</a>
-                        
-                    
-            </td>
-            <td class="description last">Returns a new LuCI.Class sublassed from this class, extended
-by the given properties and with its prototype set to this base
-class to enable inheritance. The resulting value represents a
-class constructor and can be instantiated with <code>new</code>.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id=".instantiate">
-            
-            <span class="type-signature static">static</span>LuCI.Class.instantiate<span class="signature">(params, <span class="optional">new_args</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{<a href="LuCI.Class.html">LuCI.Class</a>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 169
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Calls the class constructor using <code>new</code> with the given argument
-array being passed as variadic parameters to the constructor.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>params</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Array.&lt;*></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>An array of arbitrary values which will be passed as arguments
-to the constructor function.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>new_args</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">*</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                        <span class="repeatable">repeatable</span>
-                    
-                
-                <p>Specifies arguments to be passed to the subclass constructor
-as-is in order to instantiate the new subclass.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        <a href="LuCI.Class.html">LuCI.Class</a>
-                        
-                    
-            </td>
-            <td class="description last">Returns a new LuCI.Class instance extended by the given
-properties with its prototype set to this base class to
-enable inheritance.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id=".isSubclass">
-            
-            <span class="type-signature static">static</span>LuCI.Class.isSubclass<span class="signature">(classValue)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 195
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Checks whether the given class value is a subclass of this class.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>classValue</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type"><a href="LuCI.Class.html">LuCI.Class</a></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The class object to test.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> when the given <code>classValue</code> is a subclass of this
-class or <code>false</code> if the given value is not a valid class or not
-a subclass of this class'.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id=".singleton">
-            
-            <span class="type-signature static">static</span>LuCI.Class.singleton<span class="signature">(properties, <span class="optional">new_args</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{<a href="LuCI.Class.html">LuCI.Class</a>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 145
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Extends this base class with the properties described in
-<code>properties</code>, instantiates the resulting subclass using
-the additional optional arguments passed to this function
-and returns the resulting subclassed Class instance.</p>
-<p>This function serves as a convenience shortcut for
-<a href="LuCI.Class.html#.extend"><code>Class.extend()</code></a> and subsequent
-<code>new</code>.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>properties</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Object.&lt;string, *></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>An object describing the properties to add to the new
-subclass.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>new_args</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">*</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                        <span class="repeatable">repeatable</span>
-                    
-                
-                <p>Specifies arguments to be passed to the subclass constructor
-as-is in order to instantiate the new subclass.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        <a href="LuCI.Class.html">LuCI.Class</a>
-                        
-                    
-            </td>
-            <td class="description last">Returns a new LuCI.Class instance extended by the given
-properties with its prototype set to this base class to
-enable inheritance.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="super">
-            
-            super<span class="signature">(key, <span class="optional">callArgs</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{*|null}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 267
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Walks up the parent class chain and looks for a class member
-called <code>key</code> in any of the parent classes this class inherits
-from. Returns the member value of the superclass or calls the
-member as function and returns its return value when the
-optional <code>callArgs</code> array is given.</p>
-<p>This function has two signatures and is sensitive to the
-amount of arguments passed to it:</p>
-<ul>
-<li><code>super('key')</code> -
-Returns the value of <code>key</code> when found within one of the
-parent classes.</li>
-<li><code>super('key', ['arg1', 'arg2'])</code> -
-Calls the <code>key()</code> method with parameters <code>arg1</code> and <code>arg2</code>
-when found within one of the parent classes.</li>
-</ul>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>key</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The name of the superclass member to retrieve.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>callArgs</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Array.&lt;*></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>An optional array of function call parameters to use. When
-this parameter is specified, the found member value is called
-as function using the values of this array as arguments.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    <h5>Throws:</h5>
-    
-            
-
-<dl>
-    <dt>
-        <div class="param-desc">
-        <p>Throws a <code>ReferenceError</code> when <code>callArgs</code> are specified and
-the found member named by <code>key</code> is not a function value.</p>
-        </div>
-    </dt>
-    <dt>
-        <dl>
-            <dt>
-                Type
-            </dt>
-            <dd>
-                
-<span class="param-type">ReferenceError</span>
-
-
-            </dd>
-        </dl>
-    </dt>
-</dl>
-
-
-        
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        *
-                         | 
-                    
-                        null
-                        
-                    
-            </td>
-            <td class="description last">Returns the value of the found member or the return value of
-the call to the found method. Returns <code>null</code> when no member
-was found in the parent class chain or when the call to the
-superclass method returned <code>null</code>.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="varargs">
-            
-            varargs<span class="signature">(args, offset, <span class="optional">extra_args</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;*>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 225
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Extract all values from the given argument array beginning from
-<code>offset</code> and prepend any further given optional parameters to
-the beginning of the resulting array copy.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>args</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Array.&lt;*></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The array to extract the values from.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>offset</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The offset from which to extract the values. An offset of <code>0</code>
-would copy all values till the end.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>extra_args</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">*</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                        <span class="repeatable">repeatable</span>
-                    
-                
-                <p>Extra arguments to add to prepend to the resultung array.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Array.&lt;*>
-                        
-                    
-            </td>
-            <td class="description last">Returns a new array consisting of the optional extra arguments
-and the values extracted from the <code>args</code> array beginning with
-<code>offset</code>.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        </dl>
-    
-    
-    
-    
-    
-
-    
-</article>
-
-</section>  
-
-
-
-
-
-        
-
-        <footer>
-            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
-        </footer>
-    </div>
-</div>
-<script>prettyPrint();</script>
-<script src="scripts/jaguar.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/documentation/jsapi/LuCI.Headers.html b/documentation/jsapi/LuCI.Headers.html
deleted file mode 100644 (file)
index efb898b..0000000
+++ /dev/null
@@ -1,1495 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8">
-    <title>Class: Headers</title>
-    
-    
-    <script src="scripts/prettify/prettify.js"></script>
-    <script src="scripts/prettify/lang-css.js"></script>
-    <script src="scripts/jquery.min.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/bootstrap.min.css">
-    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
-    
-    
-    <script>
-    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
-    </script>
-    
-
-    
-</head>
-<body>
-<div id="wrap" class="clearfix">
-    
-<div class="navigation">
-    <h3 class="applicationName"><a href="index.html"></a></h3>
-
-    <div class="search">
-        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
-    </div>
-    <ul class="list">
-    
-        <li class="item" data-name="LuCI">
-            <span class="title">
-                <a href="LuCI.html">LuCI</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
-            
-                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
-            
-                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
-            
-                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
-            
-                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
-            
-                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
-            
-                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
-            
-                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
-            
-                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
-            
-                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
-            
-                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
-            
-                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
-            
-                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
-            
-                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
-            
-                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
-            
-                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
-            
-                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
-            
-                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
-            
-                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Class">
-            <span class="title">
-                <a href="LuCI.Class.html">LuCI.Class</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
-            
-                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
-            
-                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
-            
-                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
-            
-                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
-            
-                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.dom">
-            <span class="title">
-                <a href="LuCI.dom.html">LuCI.dom</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
-            
-                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
-            
-                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
-            
-                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
-            
-                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
-            
-                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
-            
-                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
-            
-                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
-            
-                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
-            
-                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.fs">
-            <span class="title">
-                <a href="LuCI.fs.html">LuCI.fs</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
-            
-                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
-            
-                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
-            
-                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
-            
-                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
-            
-                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
-            
-                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
-            
-                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Headers">
-            <span class="title">
-                <a href="LuCI.Headers.html">LuCI.Headers</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
-            
-                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network">
-            <span class="title">
-                <a href="LuCI.Network.html">LuCI.Network</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
-            
-                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
-            
-                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
-            
-                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
-            
-                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
-            
-                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
-            
-                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
-            
-                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
-            
-                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
-            
-                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
-            
-                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
-            
-                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
-            
-                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
-            
-                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
-            
-                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
-            
-                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
-            
-                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Device">
-            <span class="title">
-                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
-            
-                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
-            
-                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
-            
-                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
-            
-                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Hosts">
-            <span class="title">
-                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Protocol">
-            <span class="title">
-                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiDevice">
-            <span class="title">
-                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiNetwork">
-            <span class="title">
-                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Poll">
-            <span class="title">
-                <a href="LuCI.Poll.html">LuCI.Poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request">
-            <span class="title">
-                <a href="LuCI.Request.html">LuCI.Request</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
-            
-                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
-            
-                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
-            
-                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request.poll">
-            <span class="title">
-                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Response">
-            <span class="title">
-                <a href="LuCI.Response.html">LuCI.Response</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
-            
-                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
-            
-                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
-            
-                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
-            
-                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
-            
-                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
-            
-                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
-            
-                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.rpc">
-            <span class="title">
-                <a href="LuCI.rpc.html">LuCI.rpc</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
-            
-                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
-            
-                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
-            
-                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
-            
-                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
-            
-                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
-            
-                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.uci">
-            <span class="title">
-                <a href="LuCI.uci.html">LuCI.uci</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
-            
-                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
-            
-                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
-            
-                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
-            
-                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
-            
-                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
-            
-                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
-            
-                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
-            
-                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
-            
-                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
-            
-                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
-            
-                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
-            
-                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
-            
-                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
-            
-                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
-            
-                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
-            
-                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
-            
-                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.view">
-            <span class="title">
-                <a href="LuCI.view.html">LuCI.view</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
-            
-                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
-            
-                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
-            
-                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
-            
-                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
-            
-                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.XHR">
-            <span class="title">
-                <a href="LuCI.XHR.html">LuCI.XHR</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
-            
-                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
-            
-                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
-            
-                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
-            
-                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
-            
-                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-    </ul>
-</div>
-    <div class="main">
-        <h1 class="page-title" data-filename="LuCI.Headers.html">Class: Headers</h1>
-        
-
-
-
-<section>
-    
-<header>
-    <h2>
-        <span class="ancestors"><a href="LuCI.html">LuCI</a>.</span>
-    
-    Headers
-    </h2>
-    
-        <div class="class-description"><p>The <code>Headers</code> class is an internal utility class exposed in HTTP
-response objects using the <code>response.headers</code> property.</p></div>
-    
-</header>  
-
-<article>
-    <div class="container-overview">
-    
-    
-    
-        
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="Headers">
-            
-            new LuCI.Headers<span class="signature">()</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 324
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-    
-    </div>
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-        <h3 class="subsection-title">Methods</h3>
-        
-        <dl>
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="get">
-            
-            get<span class="signature">(name)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string|null}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 363
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Returns the value of the given header name.
-Note: Header-Names are case-insensitive.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<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">
-                
-                <p>The header name to read</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                         | 
-                    
-                        null
-                        
-                    
-            </td>
-            <td class="description last">The value of the given header name or <code>null</code> if the header isn't present.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="has">
-            
-            has<span class="signature">(name)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 347
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Checks whether the given header name is present.
-Note: Header-Names are case-insensitive.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<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">
-                
-                <p>The header name to check</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> if the header name is present, <code>false</code> otherwise</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        </dl>
-    
-    
-    
-    
-    
-
-    
-</article>
-
-</section>  
-
-
-
-
-
-        
-
-        <footer>
-            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
-        </footer>
-    </div>
-</div>
-<script>prettyPrint();</script>
-<script src="scripts/jaguar.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/documentation/jsapi/LuCI.Network.Device.html b/documentation/jsapi/LuCI.Network.Device.html
deleted file mode 100644 (file)
index 71d88df..0000000
+++ /dev/null
@@ -1,3440 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8">
-    <title>Class: Device</title>
-    
-    
-    <script src="scripts/prettify/prettify.js"></script>
-    <script src="scripts/prettify/lang-css.js"></script>
-    <script src="scripts/jquery.min.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/bootstrap.min.css">
-    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
-    
-    
-    <script>
-    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
-    </script>
-    
-
-    
-</head>
-<body>
-<div id="wrap" class="clearfix">
-    
-<div class="navigation">
-    <h3 class="applicationName"><a href="index.html"></a></h3>
-
-    <div class="search">
-        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
-    </div>
-    <ul class="list">
-    
-        <li class="item" data-name="LuCI">
-            <span class="title">
-                <a href="LuCI.html">LuCI</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
-            
-                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
-            
-                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
-            
-                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
-            
-                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
-            
-                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
-            
-                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
-            
-                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
-            
-                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
-            
-                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
-            
-                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
-            
-                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
-            
-                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
-            
-                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
-            
-                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
-            
-                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
-            
-                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
-            
-                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
-            
-                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Class">
-            <span class="title">
-                <a href="LuCI.Class.html">LuCI.Class</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
-            
-                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
-            
-                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
-            
-                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
-            
-                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
-            
-                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.dom">
-            <span class="title">
-                <a href="LuCI.dom.html">LuCI.dom</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
-            
-                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
-            
-                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
-            
-                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
-            
-                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
-            
-                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
-            
-                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
-            
-                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
-            
-                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
-            
-                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.fs">
-            <span class="title">
-                <a href="LuCI.fs.html">LuCI.fs</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
-            
-                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
-            
-                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
-            
-                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
-            
-                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
-            
-                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
-            
-                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
-            
-                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Headers">
-            <span class="title">
-                <a href="LuCI.Headers.html">LuCI.Headers</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
-            
-                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network">
-            <span class="title">
-                <a href="LuCI.Network.html">LuCI.Network</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
-            
-                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
-            
-                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
-            
-                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
-            
-                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
-            
-                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
-            
-                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
-            
-                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
-            
-                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
-            
-                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
-            
-                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
-            
-                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
-            
-                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
-            
-                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
-            
-                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
-            
-                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
-            
-                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Device">
-            <span class="title">
-                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
-            
-                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
-            
-                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
-            
-                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
-            
-                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Hosts">
-            <span class="title">
-                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Protocol">
-            <span class="title">
-                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiDevice">
-            <span class="title">
-                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiNetwork">
-            <span class="title">
-                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Poll">
-            <span class="title">
-                <a href="LuCI.Poll.html">LuCI.Poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request">
-            <span class="title">
-                <a href="LuCI.Request.html">LuCI.Request</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
-            
-                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
-            
-                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
-            
-                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request.poll">
-            <span class="title">
-                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Response">
-            <span class="title">
-                <a href="LuCI.Response.html">LuCI.Response</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
-            
-                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
-            
-                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
-            
-                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
-            
-                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
-            
-                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
-            
-                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
-            
-                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.rpc">
-            <span class="title">
-                <a href="LuCI.rpc.html">LuCI.rpc</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
-            
-                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
-            
-                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
-            
-                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
-            
-                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
-            
-                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
-            
-                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.uci">
-            <span class="title">
-                <a href="LuCI.uci.html">LuCI.uci</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
-            
-                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
-            
-                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
-            
-                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
-            
-                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
-            
-                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
-            
-                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
-            
-                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
-            
-                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
-            
-                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
-            
-                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
-            
-                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
-            
-                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
-            
-                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
-            
-                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
-            
-                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
-            
-                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
-            
-                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.view">
-            <span class="title">
-                <a href="LuCI.view.html">LuCI.view</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
-            
-                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
-            
-                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
-            
-                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
-            
-                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
-            
-                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.XHR">
-            <span class="title">
-                <a href="LuCI.XHR.html">LuCI.XHR</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
-            
-                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
-            
-                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
-            
-                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
-            
-                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
-            
-                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-    </ul>
-</div>
-    <div class="main">
-        <h1 class="page-title" data-filename="LuCI.Network.Device.html">Class: Device</h1>
-        
-
-
-
-<section>
-    
-<header>
-    <h2>
-        <span class="ancestors"><a href="LuCI.html">LuCI</a><a href="LuCI.Network.html">.Network</a>.</span>
-    
-    Device
-    </h2>
-    
-        <div class="class-description"><p>A <code>Network.Device</code> class instance represents an underlying Linux network
-device and allows querying device details such as packet statistics or MTU.</p></div>
-    
-</header>  
-
-<article>
-    <div class="container-overview">
-    
-    
-    
-        
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="Device">
-            
-            new LuCI.Network.Device<span class="signature">()</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2593
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-    
-    </div>
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-        <h3 class="subsection-title">Methods</h3>
-        
-        <dl>
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getBridgeID">
-            
-            getBridgeID<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2800
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the bridge ID</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the ID of this network bridge or <code>null</code> if this network
-device is not a Linux bridge.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getBridgeSTP">
-            
-            getBridgeSTP<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2812
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the bridge STP setting</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> when this device is a Linux bridge and has <code>stp</code>
-enabled, else <code>false</code>.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getI18n">
-            
-            getI18n<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2727
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get a long description string for the device.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns a string containing the type description and device name
-for non-wifi devices or operation mode and ssid for wifi ones.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getIP6Addrs">
-            
-            getIP6Addrs<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;string>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2671
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the IPv6 addresses configured on the device.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Array.&lt;string>
-                        
-                    
-            </td>
-            <td class="description last">Returns an array of IPv6 address strings.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getIPAddrs">
-            
-            getIPAddrs<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;string>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2660
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the IPv4 addresses configured on the device.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Array.&lt;string>
-                        
-                    
-            </td>
-            <td class="description last">Returns an array of IPv4 address strings.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getMAC">
-            
-            getMAC<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2639
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the MAC address of the device.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the MAC address of the device or <code>null</code> if not applicable,
-e.g. for non-ethernet tunnel devices.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getMTU">
-            
-            getMTU<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{number}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2650
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the MTU of the device.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        number
-                        
-                    
-            </td>
-            <td class="description last">Returns the MTU of the device.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getName">
-            
-            getName<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2628
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the name of the network device.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the name of the device, e.g. <code>eth0</code> or <code>wlan0</code>.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getNetwork">
-            
-            getNetwork<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2907
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the primary logical interface this device is assigned to.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
-                        
-                    
-            </td>
-            <td class="description last">Returns a <code>Network.Protocol</code> instance representing the logical
-interface this device is attached to or <code>null</code> if it is not
-assigned to any logical interface.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getNetworks">
-            
-            getNetworks<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2918
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the logical interfaces this device is assigned to.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Array.&lt;<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>>
-                        
-                    
-            </td>
-            <td class="description last">Returns an array of <code>Network.Protocol</code> instances representing the
-logical interfaces this device is assigned to.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getPorts">
-            
-            getPorts<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|Array.&lt;<a href="LuCI.Network.Device.html">LuCI.Network.Device</a>>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2778
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the associated bridge ports of the device.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        Array.&lt;<a href="LuCI.Network.Device.html">LuCI.Network.Device</a>>
-                        
-                    
-            </td>
-            <td class="description last">Returns an array of <code>Network.Device</code> instances representing the ports
-(slave interfaces) of the bridge or <code>null</code> when this device isn't
-a Linux bridge.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getRXBytes">
-            
-            getRXBytes<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{number}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2872
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the amount of received bytes.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        number
-                        
-                    
-            </td>
-            <td class="description last">Returns the amount of bytes received by the network device.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getRXPackets">
-            
-            getRXPackets<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{number}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2894
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the amount of received packets.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        number
-                        
-                    
-            </td>
-            <td class="description last">Returns the amount of packets received by the network device.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getShortName">
-            
-            getShortName<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2713
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get a short description string for the device.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the device name for non-wifi devices or a string containing
-the operation mode and SSID for wifi devices.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getTXBytes">
-            
-            getTXBytes<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{number}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2861
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the amount of transmitted bytes.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        number
-                        
-                    
-            </td>
-            <td class="description last">Returns the amount of bytes transmitted by the network device.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getTXPackets">
-            
-            getTXPackets<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{number}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2883
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the amount of transmitted packets.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        number
-                        
-                    
-            </td>
-            <td class="description last">Returns the amount of packets transmitted by the network device.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getType">
-            
-            getType<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2689
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the type of the device..</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns a string describing the type of the network device:
-<ul>
-<li><code>alias</code> if it is an abstract alias device (<code>@</code> notation)</li>
-<li><code>wifi</code> if it is a wireless interface (e.g. <code>wlan0</code>)</li>
-<li><code>bridge</code> if it is a bridge device (e.g. <code>br-lan</code>)</li>
-<li><code>tunnel</code> if it is a tun or tap device (e.g. <code>tun0</code>)</li>
-<li><code>vlan</code> if it is a vlan device (e.g. <code>eth0.1</code>)</li>
-<li><code>switch</code> if it is a switch device (e.g.<code>eth1</code> connected to switch0)</li>
-<li><code>ethernet</code> for all other device types</li>
-</ul></td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getTypeI18n">
-            
-            getTypeI18n<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2745
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get a string describing the device type.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns a string describing the type, e.g. &quot;Wireless Adapter&quot; or
-&quot;Bridge&quot;.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getWifiNetwork">
-            
-            getWifiNetwork<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|<a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2942
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the related wireless network this device is related to.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
-                        
-                    
-            </td>
-            <td class="description last">Returns a <code>Network.WifiNetwork</code> instance representing the wireless
-network corresponding to this network device or <code>null</code> if this device
-is not a wireless device.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="isBridge">
-            
-            isBridge<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2840
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Checks whether this device is a Linux bridge.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> when the network device is present and a Linux bridge,
-else <code>false</code>.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="isBridgePort">
-            
-            isBridgePort<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2851
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Checks whether this device is part of a Linux bridge.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> when this network device is part of a bridge,
-else <code>false</code>.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="isUp">
-            
-            isUp<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2824
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Checks whether this device is up.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> when the associated device is running pr <code>false</code>
-when it is down or absent.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        </dl>
-    
-    
-    
-    
-    
-
-    
-</article>
-
-</section>  
-
-
-
-
-
-        
-
-        <footer>
-            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
-        </footer>
-    </div>
-</div>
-<script>prettyPrint();</script>
-<script src="scripts/jaguar.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/documentation/jsapi/LuCI.Network.Hosts.html b/documentation/jsapi/LuCI.Network.Hosts.html
deleted file mode 100644 (file)
index fc392d8..0000000
+++ /dev/null
@@ -1,2421 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8">
-    <title>Class: Hosts</title>
-    
-    
-    <script src="scripts/prettify/prettify.js"></script>
-    <script src="scripts/prettify/lang-css.js"></script>
-    <script src="scripts/jquery.min.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/bootstrap.min.css">
-    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
-    
-    
-    <script>
-    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
-    </script>
-    
-
-    
-</head>
-<body>
-<div id="wrap" class="clearfix">
-    
-<div class="navigation">
-    <h3 class="applicationName"><a href="index.html"></a></h3>
-
-    <div class="search">
-        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
-    </div>
-    <ul class="list">
-    
-        <li class="item" data-name="LuCI">
-            <span class="title">
-                <a href="LuCI.html">LuCI</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
-            
-                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
-            
-                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
-            
-                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
-            
-                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
-            
-                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
-            
-                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
-            
-                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
-            
-                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
-            
-                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
-            
-                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
-            
-                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
-            
-                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
-            
-                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
-            
-                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
-            
-                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
-            
-                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
-            
-                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
-            
-                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Class">
-            <span class="title">
-                <a href="LuCI.Class.html">LuCI.Class</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
-            
-                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
-            
-                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
-            
-                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
-            
-                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
-            
-                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.dom">
-            <span class="title">
-                <a href="LuCI.dom.html">LuCI.dom</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
-            
-                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
-            
-                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
-            
-                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
-            
-                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
-            
-                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
-            
-                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
-            
-                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
-            
-                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
-            
-                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.fs">
-            <span class="title">
-                <a href="LuCI.fs.html">LuCI.fs</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
-            
-                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
-            
-                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
-            
-                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
-            
-                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
-            
-                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
-            
-                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
-            
-                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Headers">
-            <span class="title">
-                <a href="LuCI.Headers.html">LuCI.Headers</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
-            
-                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network">
-            <span class="title">
-                <a href="LuCI.Network.html">LuCI.Network</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
-            
-                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
-            
-                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
-            
-                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
-            
-                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
-            
-                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
-            
-                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
-            
-                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
-            
-                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
-            
-                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
-            
-                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
-            
-                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
-            
-                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
-            
-                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
-            
-                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
-            
-                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
-            
-                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Device">
-            <span class="title">
-                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
-            
-                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
-            
-                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
-            
-                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
-            
-                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Hosts">
-            <span class="title">
-                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Protocol">
-            <span class="title">
-                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiDevice">
-            <span class="title">
-                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiNetwork">
-            <span class="title">
-                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Poll">
-            <span class="title">
-                <a href="LuCI.Poll.html">LuCI.Poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request">
-            <span class="title">
-                <a href="LuCI.Request.html">LuCI.Request</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
-            
-                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
-            
-                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
-            
-                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request.poll">
-            <span class="title">
-                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Response">
-            <span class="title">
-                <a href="LuCI.Response.html">LuCI.Response</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
-            
-                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
-            
-                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
-            
-                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
-            
-                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
-            
-                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
-            
-                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
-            
-                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.rpc">
-            <span class="title">
-                <a href="LuCI.rpc.html">LuCI.rpc</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
-            
-                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
-            
-                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
-            
-                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
-            
-                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
-            
-                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
-            
-                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.uci">
-            <span class="title">
-                <a href="LuCI.uci.html">LuCI.uci</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
-            
-                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
-            
-                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
-            
-                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
-            
-                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
-            
-                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
-            
-                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
-            
-                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
-            
-                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
-            
-                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
-            
-                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
-            
-                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
-            
-                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
-            
-                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
-            
-                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
-            
-                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
-            
-                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
-            
-                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.view">
-            <span class="title">
-                <a href="LuCI.view.html">LuCI.view</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
-            
-                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
-            
-                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
-            
-                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
-            
-                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
-            
-                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.XHR">
-            <span class="title">
-                <a href="LuCI.XHR.html">LuCI.XHR</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
-            
-                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
-            
-                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
-            
-                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
-            
-                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
-            
-                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-    </ul>
-</div>
-    <div class="main">
-        <h1 class="page-title" data-filename="LuCI.Network.Hosts.html">Class: Hosts</h1>
-        
-
-
-
-<section>
-    
-<header>
-    <h2>
-        <span class="ancestors"><a href="LuCI.html">LuCI</a><a href="LuCI.Network.html">.Network</a>.</span>
-    
-    Hosts
-    </h2>
-    
-        <div class="class-description"><p>The <code>LuCI.Network.Hosts</code> class encapsulates host information aggregated
-from multiple sources and provides convenience functions to access the
-host information by different criteria.</p></div>
-    
-</header>  
-
-<article>
-    <div class="container-overview">
-    
-    
-    
-        
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="Hosts">
-            
-            new LuCI.Network.Hosts<span class="signature">()</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1628
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-    
-    </div>
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-        <h3 class="subsection-title">Methods</h3>
-        
-        <dl>
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getHostnameByIP6Addr">
-            
-            getHostnameByIP6Addr<span class="signature">(ipaddr)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1725
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Lookup the hostname associated with the given IPv6 address.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>ipaddr</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The IPv6 address to lookup.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the hostname associated with the given IPv6 or <code>null</code> if
-no matching host could be found or if no hostname is known for
-the corresponding host.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getHostnameByIPAddr">
-            
-            getHostnameByIPAddr<span class="signature">(ipaddr)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1689
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Lookup the hostname associated with the given IPv4 address.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>ipaddr</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The IPv4 address to lookup.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the hostname associated with the given IPv4 or <code>null</code> if
-no matching host could be found or if no hostname is known for
-the corresponding host.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getHostnameByMACAddr">
-            
-            getHostnameByMACAddr<span class="signature">(mac)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1644
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Lookup the hostname associated with the given MAC address.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>mac</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The MAC address to lookup.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the hostname associated with the given MAC or <code>null</code> if
-no matching host could be found or if no hostname is known for
-the corresponding host.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getIP6AddrByMACAddr">
-            
-            getIP6AddrByMACAddr<span class="signature">(mac)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1674
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Lookup the IPv6 address associated with the given MAC address.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>mac</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The MAC address to lookup.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the IPv6 address associated with the given MAC or <code>null</code> if
-no matching host could be found or if no IPv6 address is known for
-the corresponding host.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getIPAddrByMACAddr">
-            
-            getIPAddrByMACAddr<span class="signature">(mac)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1659
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Lookup the IPv4 address associated with the given MAC address.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>mac</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The MAC address to lookup.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the IPv4 address associated with the given MAC or <code>null</code> if
-no matching host could be found or if no IPv4 address is known for
-the corresponding host.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getMACAddrByIP6Addr">
-            
-            getMACAddrByIP6Addr<span class="signature">(ipaddr)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1743
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Lookup the MAC address associated with the given IPv6 address.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>ipaddr</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The IPv6 address to lookup.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the MAC address associated with the given IPv6 or <code>null</code> if
-no matching host could be found or if no MAC address is known for
-the corresponding host.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getMACAddrByIPAddr">
-            
-            getMACAddrByIPAddr<span class="signature">(ipaddr)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1707
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Lookup the MAC address associated with the given IPv4 address.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>ipaddr</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The IPv4 address to lookup.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the MAC address associated with the given IPv4 or <code>null</code> if
-no matching host could be found or if no MAC address is known for
-the corresponding host.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getMACHints">
-            
-            getMACHints<span class="signature">(<span class="optional">preferIp6</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;Array.&lt;string>>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1771
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Return an array of (MAC address, name hint) tuples sorted by
-MAC address.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               <th>Default</th>
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>preferIp6</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">boolean</span>
-
-
-            
-            </td>
-            
-            
-                <td class="default">
-                
-                    false
-                
-                </td>
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>Whether to prefer IPv6 addresses (<code>true</code>) or IPv4 addresses (<code>false</code>)
-as name hint when no hostname is known for a specific MAC address.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Array.&lt;Array.&lt;string>>
-                        
-                    
-            </td>
-            <td class="description last">Returns an array of arrays containing a name hint for each found
-MAC address on the system. The array is sorted ascending by MAC.
-Each item of the resulting array is a two element array with the
-MAC being the first element and the name hint being the second
-element. The name hint is either the hostname, an IPv4 or an IPv6
-address related to the MAC address.
-If no hostname but both IPv4 and IPv6 addresses are known, the
-<code>preferIP6</code> flag specifies whether the IPv6 or the IPv4 address
-is used as hint.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        </dl>
-    
-    
-    
-    
-    
-
-    
-</article>
-
-</section>  
-
-
-
-
-
-        
-
-        <footer>
-            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
-        </footer>
-    </div>
-</div>
-<script>prettyPrint();</script>
-<script src="scripts/jaguar.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/documentation/jsapi/LuCI.Network.Protocol.html b/documentation/jsapi/LuCI.Network.Protocol.html
deleted file mode 100644 (file)
index 20239bc..0000000
+++ /dev/null
@@ -1,5394 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8">
-    <title>Class: Protocol</title>
-    
-    
-    <script src="scripts/prettify/prettify.js"></script>
-    <script src="scripts/prettify/lang-css.js"></script>
-    <script src="scripts/jquery.min.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/bootstrap.min.css">
-    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
-    
-    
-    <script>
-    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
-    </script>
-    
-
-    
-</head>
-<body>
-<div id="wrap" class="clearfix">
-    
-<div class="navigation">
-    <h3 class="applicationName"><a href="index.html"></a></h3>
-
-    <div class="search">
-        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
-    </div>
-    <ul class="list">
-    
-        <li class="item" data-name="LuCI">
-            <span class="title">
-                <a href="LuCI.html">LuCI</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
-            
-                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
-            
-                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
-            
-                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
-            
-                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
-            
-                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
-            
-                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
-            
-                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
-            
-                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
-            
-                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
-            
-                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
-            
-                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
-            
-                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
-            
-                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
-            
-                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
-            
-                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
-            
-                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
-            
-                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
-            
-                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Class">
-            <span class="title">
-                <a href="LuCI.Class.html">LuCI.Class</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
-            
-                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
-            
-                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
-            
-                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
-            
-                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
-            
-                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.dom">
-            <span class="title">
-                <a href="LuCI.dom.html">LuCI.dom</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
-            
-                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
-            
-                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
-            
-                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
-            
-                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
-            
-                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
-            
-                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
-            
-                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
-            
-                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
-            
-                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.fs">
-            <span class="title">
-                <a href="LuCI.fs.html">LuCI.fs</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
-            
-                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
-            
-                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
-            
-                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
-            
-                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
-            
-                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
-            
-                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
-            
-                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Headers">
-            <span class="title">
-                <a href="LuCI.Headers.html">LuCI.Headers</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
-            
-                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network">
-            <span class="title">
-                <a href="LuCI.Network.html">LuCI.Network</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
-            
-                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
-            
-                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
-            
-                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
-            
-                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
-            
-                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
-            
-                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
-            
-                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
-            
-                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
-            
-                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
-            
-                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
-            
-                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
-            
-                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
-            
-                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
-            
-                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
-            
-                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
-            
-                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Device">
-            <span class="title">
-                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
-            
-                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
-            
-                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
-            
-                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
-            
-                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Hosts">
-            <span class="title">
-                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Protocol">
-            <span class="title">
-                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiDevice">
-            <span class="title">
-                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiNetwork">
-            <span class="title">
-                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Poll">
-            <span class="title">
-                <a href="LuCI.Poll.html">LuCI.Poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request">
-            <span class="title">
-                <a href="LuCI.Request.html">LuCI.Request</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
-            
-                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
-            
-                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
-            
-                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request.poll">
-            <span class="title">
-                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Response">
-            <span class="title">
-                <a href="LuCI.Response.html">LuCI.Response</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
-            
-                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
-            
-                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
-            
-                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
-            
-                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
-            
-                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
-            
-                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
-            
-                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.rpc">
-            <span class="title">
-                <a href="LuCI.rpc.html">LuCI.rpc</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
-            
-                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
-            
-                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
-            
-                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
-            
-                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
-            
-                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
-            
-                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.uci">
-            <span class="title">
-                <a href="LuCI.uci.html">LuCI.uci</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
-            
-                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
-            
-                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
-            
-                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
-            
-                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
-            
-                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
-            
-                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
-            
-                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
-            
-                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
-            
-                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
-            
-                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
-            
-                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
-            
-                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
-            
-                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
-            
-                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
-            
-                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
-            
-                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
-            
-                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.view">
-            <span class="title">
-                <a href="LuCI.view.html">LuCI.view</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
-            
-                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
-            
-                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
-            
-                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
-            
-                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
-            
-                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.XHR">
-            <span class="title">
-                <a href="LuCI.XHR.html">LuCI.XHR</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
-            
-                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
-            
-                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
-            
-                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
-            
-                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
-            
-                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-    </ul>
-</div>
-    <div class="main">
-        <h1 class="page-title" data-filename="LuCI.Network.Protocol.html">Class: Protocol</h1>
-        
-
-
-
-<section>
-    
-<header>
-    <h2>
-        <span class="ancestors"><a href="LuCI.html">LuCI</a><a href="LuCI.Network.html">.Network</a>.</span>
-    
-    Protocol
-    </h2>
-    
-        <div class="class-description"><p>The <code>Network.Protocol</code> class serves as base for protocol specific
-subclasses which describe logical UCI networks defined by <code>config interface</code> sections in <code>/etc/config/network</code>.</p></div>
-    
-</header>  
-
-<article>
-    <div class="container-overview">
-    
-    
-    
-        
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="Protocol">
-            
-            new LuCI.Network.Protocol<span class="signature">()</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1794
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-    
-    </div>
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-        <h3 class="subsection-title">Methods</h3>
-        
-        <dl>
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="addDevice">
-            
-            addDevice<span class="signature">(device)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2383
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Add the given network device to the logical interface.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>device</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type"><a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a></span>
-|
-
-<span class="param-type"><a href="LuCI.Network.Device.html">LuCI.Network.Device</a></span>
-|
-
-<span class="param-type"><a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a></span>
-|
-
-<span class="param-type"><a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a></span>
-|
-
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The object or device name to add to the logical interface. In case the
-given argument is not a string, it is resolved though the
-<a href="LuCI.Network.html#getIfnameOf"><code>Network.getIfnameOf()</code></a> function.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> if the device name has been added or <code>false</code> if any
-argument was invalid, if the device was already part of the logical
-interface or if the logical interface is virtual.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="containsDevice">
-            
-            containsDevice<span class="signature">(device)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2552
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Checks whether this logical interface contains the given device
-object.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>device</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type"><a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a></span>
-|
-
-<span class="param-type"><a href="LuCI.Network.Device.html">LuCI.Network.Device</a></span>
-|
-
-<span class="param-type"><a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a></span>
-|
-
-<span class="param-type"><a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a></span>
-|
-
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The object or device name to check. In case the given argument is not
-a string, it is resolved though the
-<a href="LuCI.Network.html#getIfnameOf"><code>Network.getIfnameOf()</code></a> function.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> when this logical interface contains the given network
-device or <code>false</code> if not.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="deleteDevice">
-            
-            deleteDevice<span class="signature">(device)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2410
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Remove the given network device from the logical interface.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>device</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type"><a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a></span>
-|
-
-<span class="param-type"><a href="LuCI.Network.Device.html">LuCI.Network.Device</a></span>
-|
-
-<span class="param-type"><a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a></span>
-|
-
-<span class="param-type"><a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a></span>
-|
-
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The object or device name to remove from the logical interface. In case
-the given argument is not a string, it is resolved though the
-<a href="LuCI.Network.html#getIfnameOf"><code>Network.getIfnameOf()</code></a> function.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> if the device name has been added or <code>false</code> if any
-argument was invalid, if the device was already part of the logical
-interface or if the logical interface is virtual.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="get">
-            
-            get<span class="signature">(opt)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string|Array.&lt;string>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1827
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Read the given UCI option value of this network.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>opt</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The UCI option name to read.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        string
-                         | 
-                    
-                        Array.&lt;string>
-                        
-                    
-            </td>
-            <td class="description last">Returns the UCI option value or <code>null</code> if the requested option is
-not found.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getDevice">
-            
-            getDevice<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{<a href="LuCI.Network.Device.html">LuCI.Network.Device</a>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2437
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Returns the Linux network device associated with this logical
-interface.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
-                        
-                    
-            </td>
-            <td class="description last">Returns a <code>Network.Device</code> class instance representing the
-expected Linux network device according to the configuration.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getDevices">
-            
-            getDevices<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|Array.&lt;<a href="LuCI.Network.Device.html">LuCI.Network.Device</a>>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2498
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Returns a list of network sub-devices associated with this logical
-interface.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        Array.&lt;<a href="LuCI.Network.Device.html">LuCI.Network.Device</a>>
-                        
-                    
-            </td>
-            <td class="description last">Returns an array of of <code>Network.Device</code> class instances representing
-the sub-devices attached to this logical interface or <code>null</code> if the
-logical interface does not support sub-devices, e.g. because it is
-virtual and not a bridge.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getDNS6Addrs">
-            
-            getDNS6Addrs<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;string>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2152
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Query the IPv6 DNS servers associated with the logical interface.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Array.&lt;string>
-                        
-                    
-            </td>
-            <td class="description last">Returns an array of IPv6 DNS servers registered by the remote
-protocol backend.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getDNSAddrs">
-            
-            getDNSAddrs<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;string>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2064
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Query the IPv4 DNS servers associated with the logical interface.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Array.&lt;string>
-                        
-                    
-            </td>
-            <td class="description last">Returns an array of IPv4 DNS servers registered by the remote
-protocol backend.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getErrors">
-            
-            getErrors<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;string>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2196
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Query interface error messages published in <code>ubus</code> runtime state.</p>
-<p>Interface errors are emitted by remote protocol handlers if the setup
-of the underlying logical interface failed, e.g. due to bad
-configuration or network connectivity issues.</p>
-<p>This function will translate the found error codes to human readable
-messages using the descriptions registered by
-<a href="LuCI.Network.html#registerErrorCode"><code>Network.registerErrorCode()</code></a>
-and fall back to <code>&quot;Unknown error (%s)&quot;</code> where <code>%s</code> is replaced by the
-error code in case no translation can be found.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Array.&lt;string>
-                        
-                    
-            </td>
-            <td class="description last">Returns an array of translated interface error messages.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getExpiry">
-            
-            getExpiry<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{number}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1947
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the logical interface expiry time in seconds.</p>
-<p>For protocols that have a concept of a lease, such as DHCP or
-DHCPv6, this function returns the remaining time in seconds
-until the lease expires.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        number
-                        
-                    
-            </td>
-            <td class="description last">Returns the amount of seconds until the lease expires or <code>-1</code>
-if it isn't applicable to the associated protocol.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getGateway6Addr">
-            
-            getGateway6Addr<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2132
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Query the gateway (nexthop) of the IPv6 default route associated with
-this logical interface.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns a string containing the IPv6 nexthop address of the associated
-default route or <code>null</code> if no default route was found.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getGatewayAddr">
-            
-            getGatewayAddr<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2044
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Query the gateway (nexthop) of the default route associated with
-this logical interface.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns a string containing the IPv4 nexthop address of the associated
-default route or <code>null</code> if no default route was found.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getI18n">
-            
-            <span class="type-signature ">abstract</span>getI18n<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1892
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Return a human readable description for the protcol, such as
-<code>Static address</code> or <code>DHCP client</code>.</p>
-<p>This function should be overwritten by subclasses.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the description string.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getIfname">
-            
-            getIfname<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1852
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the associared Linux network device of this network.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the name of the associated network device or <code>null</code> if
-it could not be determined.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getIP6Addr">
-            
-            getIP6Addr<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2083
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Query the first (primary) IPv6 address of the logical interface.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the primary IPv6 address registered by the protocol handler
-in CIDR notation or <code>null</code> if no IPv6 addresses were set.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getIP6Addrs">
-            
-            getIP6Addrs<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;string>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2105
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Query all IPv6 addresses of the logical interface.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Array.&lt;string>
-                        
-                    
-            </td>
-            <td class="description last">Returns an array of IPv6 addresses in CIDR notation which have been
-registered by the protocol handler. The order of the resulting array
-follows the order of the addresses in <code>ubus</code> runtime information.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getIP6Prefix">
-            
-            getIP6Prefix<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2171
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Query the routed IPv6 prefix associated with the logical interface.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the routed IPv6 prefix registered by the remote protocol
-handler or <code>null</code> if no prefix is present.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getIPAddr">
-            
-            getIPAddr<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1999
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Query the first (primary) IPv4 address of the logical interface.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the primary IPv4 address registered by the protocol handler
-or <code>null</code> if no IPv4 addresses were set.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getIPAddrs">
-            
-            getIPAddrs<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;string>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2012
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Query all IPv4 addresses of the logical interface.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Array.&lt;string>
-                        
-                    
-            </td>
-            <td class="description last">Returns an array of IPv4 addresses in CIDR notation which have been
-registered by the protocol handler. The order of the resulting array
-follows the order of the addresses in <code>ubus</code> runtime information.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getL2Device">
-            
-            getL2Device<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{<a href="LuCI.Network.Device.html">LuCI.Network.Device</a>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2470
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Returns the layer 2 linux network device currently associated
-with this logical interface.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
-                        
-                    
-            </td>
-            <td class="description last">Returns a <code>Network.Device</code> class instance representing the Linux
-network device currently associated with the logical interface.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getL3Device">
-            
-            getL3Device<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{<a href="LuCI.Network.Device.html">LuCI.Network.Device</a>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2483
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Returns the layer 3 linux network device currently associated
-with this logical interface.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
-                        
-                    
-            </td>
-            <td class="description last">Returns a <code>Network.Device</code> class instance representing the Linux
-network device currently associated with the logical interface.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getMetric">
-            
-            getMetric<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{number}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1967
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the metric value of the logical interface.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        number
-                        
-                    
-            </td>
-            <td class="description last">Returns the current metric value used for device and network
-routes spawned by the associated logical interface.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getName">
-            
-            getName<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1922
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the name of the associated logical interface.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the logical interface name, such as <code>lan</code> or <code>wan</code>.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getNetmask">
-            
-            getNetmask<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2030
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Query the first (primary) IPv4 netmask of the logical interface.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the netmask of the primary IPv4 address registered by the
-protocol handler or <code>null</code> if no IPv4 addresses were set.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getOpkgPackage">
-            
-            <span class="type-signature ">abstract</span>getOpkgPackage<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2236
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the name of the opkg package providing the protocol functionality.</p>
-<p>This function should be overwritten by protocol specific subclasses.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the name of the opkg package required for the protocol to
-function, e.g. <code>odhcp6c</code> for the <code>dhcpv6</code> prototocol.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getProtocol">
-            
-            <span class="type-signature ">abstract</span>getProtocol<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1878
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the name of this network protocol class.</p>
-<p>This function will be overwritten by subclasses created by
-<a href="LuCI.Network.html#registerProtocol"><code>Network.registerProtocol()</code></a>.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the name of the network protocol implementation, e.g.
-<code>static</code> or <code>dhcp</code>.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getType">
-            
-            getType<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1912
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the type of the underlying interface.</p>
-<p>This function actually is a convenience wrapper around
-<code>proto.get(&quot;type&quot;)</code> and is mainly used by other <code>LuCI.Network</code> code
-to check whether the interface is declared as bridge in UCI.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the value of the <code>type</code> option of the associated logical
-interface or <code>null</code> if no <code>type</code> option is set.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getUptime">
-            
-            getUptime<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{number}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1932
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the uptime of the logical interface.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        number
-                        
-                    
-            </td>
-            <td class="description last">Returns the uptime of the associated interface in seconds.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getZoneName">
-            
-            getZoneName<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1983
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the requested firewall zone name of the logical interface.</p>
-<p>Some protocol implementations request a specific firewall zone
-to trigger inclusion of their resulting network devices into the
-firewall rule set.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the requested firewall zone name as published in the
-<code>ubus</code> runtime information or <code>null</code> if the remote protocol
-handler didn't request a zone.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="isAlias">
-            
-            isAlias<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2324
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Checks whether this interface is an alias interface.</p>
-<p>Alias interfaces are interfaces layering on top of another interface
-and are denoted by a special <code>@interfacename</code> notation in the
-underlying <code>ifname</code> option.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the name of the parent interface if this logical interface
-is an alias or <code>null</code> if it is not an alias interface.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="isBridge">
-            
-            isBridge<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2221
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Checks whether the underlying logical interface is declared as bridge.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> when the interface is declared with <code>option type bridge</code>
-and when the associated protocol implementation is not marked virtual
-or <code>false</code> when the logical interface is no bridge.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="isDynamic">
-            
-            isDynamic<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2309
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Checks whether this logical interface is dynamic.</p>
-<p>A dynamic interface is an interface which has been created at runtime,
-e.g. as sub-interface of another interface, but which is not backed by
-any user configuration. Such dynamic interfaces cannot be edited but
-only brought down or restarted.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns a boolean indicating whether this interface is dynamic (<code>true</code>)
-or not (<code>false</code>).</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="isEmpty">
-            
-            isEmpty<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2344
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Checks whether this logical interface is &quot;empty&quot;, meaning that ut
-has no network devices attached.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> if this logical interface is empty, else <code>false</code>.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="isFloating">
-            
-            isFloating<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2293
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Checks whether this protocol is &quot;floating&quot;.</p>
-<p>A &quot;floating&quot; protocol is a protocol which spawns its own interfaces
-on demand, like a virtual one but which relies on an existinf lower
-level interface to initiate the connection.</p>
-<p>An example for such a protocol is &quot;pppoe&quot;.</p>
-<p>This function exists for backwards compatibility with older code
-but should not be used anymore.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-        <dt class="important tag-deprecated">Deprecated</dt><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd>
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns a boolean indicating whether this protocol is floating (<code>true</code>)
-or not (<code>false</code>).</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="isInstalled">
-            
-            <span class="type-signature ">abstract</span>isInstalled<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2252
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Checks whether the protocol functionality is installed.</p>
-<p>This function exists for compatibility with old code, it always
-returns <code>true</code>.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-        <dt class="important tag-deprecated">Deprecated</dt><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd>
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> if the protocol support is installed, else <code>false</code>.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="isUp">
-            
-            isUp<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2366
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Checks whether this logical interface is configured and running.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> when the interface is active or <code>false</code> when it is not.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="isVirtual">
-            
-            isVirtual<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2272
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Checks whether this protocol is &quot;virtual&quot;.</p>
-<p>A &quot;virtual&quot; protocol is a protocol which spawns its own interfaces
-on demand instead of using existing physical interfaces.</p>
-<p>Examples for virtual protocols are <code>6in4</code> which <code>gre</code> spawn tunnel
-network device on startup, examples for non-virtual protcols are
-<code>dhcp</code> or <code>static</code> which apply IP configuration to existing interfaces.</p>
-<p>This function should be overwritten by subclasses.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns a boolean indicating whether the underlying protocol spawns
-dynamic interfaces (<code>true</code>) or not (<code>false</code>).</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="set">
-            
-            set<span class="signature">(opt, val)</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1841
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Set the given UCI option of this network to the given value.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>opt</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The name of the UCI option to set.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>val</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">null</span>
-|
-
-<span class="param-type">string</span>
-|
-
-<span class="param-type">Array.&lt;string></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The value to set or <code>null</code> to remove the given option from the
-configuration.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-        </dl>
-    
-    
-    
-    
-    
-
-    
-</article>
-
-</section>  
-
-
-
-
-
-        
-
-        <footer>
-            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
-        </footer>
-    </div>
-</div>
-<script>prettyPrint();</script>
-<script src="scripts/jaguar.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/documentation/jsapi/LuCI.Network.WifiDevice.html b/documentation/jsapi/LuCI.Network.WifiDevice.html
deleted file mode 100644 (file)
index 89d050e..0000000
+++ /dev/null
@@ -1,2787 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8">
-    <title>Class: WifiDevice</title>
-    
-    
-    <script src="scripts/prettify/prettify.js"></script>
-    <script src="scripts/prettify/lang-css.js"></script>
-    <script src="scripts/jquery.min.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/bootstrap.min.css">
-    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
-    
-    
-    <script>
-    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
-    </script>
-    
-
-    
-</head>
-<body>
-<div id="wrap" class="clearfix">
-    
-<div class="navigation">
-    <h3 class="applicationName"><a href="index.html"></a></h3>
-
-    <div class="search">
-        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
-    </div>
-    <ul class="list">
-    
-        <li class="item" data-name="LuCI">
-            <span class="title">
-                <a href="LuCI.html">LuCI</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
-            
-                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
-            
-                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
-            
-                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
-            
-                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
-            
-                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
-            
-                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
-            
-                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
-            
-                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
-            
-                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
-            
-                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
-            
-                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
-            
-                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
-            
-                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
-            
-                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
-            
-                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
-            
-                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
-            
-                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
-            
-                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Class">
-            <span class="title">
-                <a href="LuCI.Class.html">LuCI.Class</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
-            
-                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
-            
-                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
-            
-                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
-            
-                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
-            
-                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.dom">
-            <span class="title">
-                <a href="LuCI.dom.html">LuCI.dom</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
-            
-                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
-            
-                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
-            
-                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
-            
-                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
-            
-                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
-            
-                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
-            
-                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
-            
-                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
-            
-                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.fs">
-            <span class="title">
-                <a href="LuCI.fs.html">LuCI.fs</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
-            
-                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
-            
-                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
-            
-                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
-            
-                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
-            
-                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
-            
-                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
-            
-                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Headers">
-            <span class="title">
-                <a href="LuCI.Headers.html">LuCI.Headers</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
-            
-                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network">
-            <span class="title">
-                <a href="LuCI.Network.html">LuCI.Network</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
-            
-                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
-            
-                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
-            
-                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
-            
-                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
-            
-                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
-            
-                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
-            
-                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
-            
-                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
-            
-                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
-            
-                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
-            
-                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
-            
-                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
-            
-                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
-            
-                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
-            
-                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
-            
-                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Device">
-            <span class="title">
-                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
-            
-                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
-            
-                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
-            
-                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
-            
-                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Hosts">
-            <span class="title">
-                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Protocol">
-            <span class="title">
-                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiDevice">
-            <span class="title">
-                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiNetwork">
-            <span class="title">
-                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Poll">
-            <span class="title">
-                <a href="LuCI.Poll.html">LuCI.Poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request">
-            <span class="title">
-                <a href="LuCI.Request.html">LuCI.Request</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
-            
-                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
-            
-                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
-            
-                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request.poll">
-            <span class="title">
-                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Response">
-            <span class="title">
-                <a href="LuCI.Response.html">LuCI.Response</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
-            
-                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
-            
-                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
-            
-                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
-            
-                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
-            
-                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
-            
-                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
-            
-                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.rpc">
-            <span class="title">
-                <a href="LuCI.rpc.html">LuCI.rpc</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
-            
-                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
-            
-                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
-            
-                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
-            
-                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
-            
-                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
-            
-                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.uci">
-            <span class="title">
-                <a href="LuCI.uci.html">LuCI.uci</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
-            
-                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
-            
-                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
-            
-                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
-            
-                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
-            
-                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
-            
-                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
-            
-                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
-            
-                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
-            
-                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
-            
-                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
-            
-                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
-            
-                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
-            
-                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
-            
-                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
-            
-                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
-            
-                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
-            
-                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.view">
-            <span class="title">
-                <a href="LuCI.view.html">LuCI.view</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
-            
-                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
-            
-                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
-            
-                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
-            
-                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
-            
-                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.XHR">
-            <span class="title">
-                <a href="LuCI.XHR.html">LuCI.XHR</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
-            
-                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
-            
-                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
-            
-                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
-            
-                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
-            
-                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-    </ul>
-</div>
-    <div class="main">
-        <h1 class="page-title" data-filename="LuCI.Network.WifiDevice.html">Class: WifiDevice</h1>
-        
-
-
-
-<section>
-    
-<header>
-    <h2>
-        <span class="ancestors"><a href="LuCI.html">LuCI</a><a href="LuCI.Network.html">.Network</a>.</span>
-    
-    WifiDevice
-    </h2>
-    
-        <div class="class-description"><p>A <code>Network.WifiDevice</code> class instance represents a wireless radio device
-present on the system and provides wireless capability information as
-well as methods for enumerating related wireless networks.</p></div>
-    
-</header>  
-
-<article>
-    <div class="container-overview">
-    
-    
-    
-        
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="WifiDevice">
-            
-            new LuCI.Network.WifiDevice<span class="signature">()</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2957
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-    
-    </div>
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-        <h3 class="subsection-title">Methods</h3>
-        
-        <dl>
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="addWifiNetwork">
-            
-            addWifiNetwork<span class="signature">(<span class="optional">options</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;(null|<a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>)>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3222
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Adds a new wireless network associated with this radio device to the
-configuration and sets its options to the provided values.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>options</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Object.&lt;string, (string|Array.&lt;string>)></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>The options to set for the newly added wireless network.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;(null|<a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>)>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to a <code>WifiNetwork</code> instance describing
-the newly added wireless network or <code>null</code> if the given options
-were invalid.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="deleteWifiNetwork">
-            
-            deleteWifiNetwork<span class="signature">(network)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;boolean>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3247
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Deletes the wireless network with the given name associated with this
-radio device.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>network</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The name of the wireless network to lookup. This may be either an uci
-configuration section ID, a network ID in the form <code>radio#.network#</code>
-or a Linux network device name like <code>wlan0</code> which is resolved to the
-corresponding configuration section through <code>ubus</code> runtime information.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;boolean>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to <code>true</code> when the wireless network was
-successfully deleted from the configuration or <code>false</code> when the given
-network could not be found or if the found network was not associated
-with this wireless radio device.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="get">
-            
-            get<span class="signature">(opt)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string|Array.&lt;string>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 2997
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Read the given UCI option value of this wireless device.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>opt</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The UCI option name to read.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        string
-                         | 
-                    
-                        Array.&lt;string>
-                        
-                    
-            </td>
-            <td class="description last">Returns the UCI option value or <code>null</code> if the requested option is
-not found.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getHTModes">
-            
-            getHTModes<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;string>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3075
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Gets a list of supported htmodes.</p>
-<p>The htmode values describe the wide-frequency options supported by
-the wireless phy.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Array.&lt;string>
-                        
-                    
-            </td>
-            <td class="description last">Returns an array of valid htmode values for this radio. Currently
-known mode values are:
-<ul>
-<li><code>HT20</code> - applicable to IEEE 802.11n, 20 MHz wide channels</li>
-<li><code>HT40</code> - applicable to IEEE 802.11n, 40 MHz wide channels</li>
-<li><code>VHT20</code> - applicable to IEEE 802.11ac, 20 MHz wide channels</li>
-<li><code>VHT40</code> - applicable to IEEE 802.11ac, 40 MHz wide channels</li>
-<li><code>VHT80</code> - applicable to IEEE 802.11ac, 80 MHz wide channels</li>
-<li><code>VHT160</code> - applicable to IEEE 802.11ac, 160 MHz wide channels</li>
-</ul></td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getHWModes">
-            
-            getHWModes<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;string>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3054
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Gets a list of supported hwmodes.</p>
-<p>The hwmode values describe the frequency band and wireless standard
-versions supported by the wireless phy.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Array.&lt;string>
-                        
-                    
-            </td>
-            <td class="description last">Returns an array of valid hwmode values for this radio. Currently
-known mode values are:
-<ul>
-<li><code>a</code> - Legacy 802.11a mode, 5 GHz, up to 54 Mbit/s</li>
-<li><code>b</code> - Legacy 802.11b mode, 2.4 GHz, up to 11 Mbit/s</li>
-<li><code>g</code> - Legacy 802.11g mode, 2.4 GHz, up to 54 Mbit/s</li>
-<li><code>n</code> - IEEE 802.11n mode, 2.4 or 5 GHz, up to 600 Mbit/s</li>
-<li><code>ac</code> - IEEE 802.11ac mode, 5 GHz, up to 6770 Mbit/s</li>
-</ul></td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getI18n">
-            
-            getI18n<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3086
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get a string describing the wireless radio hardware.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the description string.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getName">
-            
-            getName<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3035
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the configuration name of this wireless radio.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the UCI section name (e.g. <code>radio0</code>) of the corresponding
-radio configuration which also serves as unique logical identifier
-for the wireless phy.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getScanList">
-            
-            getScanList<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;Array.&lt;<a href="LuCI.Network.html#.WifiScanResult">LuCI.Network.WifiScanResult</a>>>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3147
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Trigger a wireless scan on this radio device and obtain a list of
-nearby networks.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;Array.&lt;<a href="LuCI.Network.html#.WifiScanResult">LuCI.Network.WifiScanResult</a>>>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to an array of scan result objects
-describing the networks found in the vincinity.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getWifiNetwork">
-            
-            getWifiNetwork<span class="signature">(network)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;<a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3180
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the wifi network of the given name belonging to this radio device</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>network</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The name of the wireless network to lookup. This may be either an uci
-configuration section ID, a network ID in the form <code>radio#.network#</code>
-or a Linux network device name like <code>wlan0</code> which is resolved to the
-corresponding configuration section through <code>ubus</code> runtime information.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;<a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to a <code>Network.WifiNetwork</code> instance
-representing the wireless network and rejecting with <code>null</code> if
-the given network could not be found or is not associated with
-this radio device.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getWifiNetworks">
-            
-            getWifiNetworks<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;Array.&lt;<a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>>>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3199
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get all wireless networks associated with this wireless radio device.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;Array.&lt;<a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>>>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to an array of <code>Network.WifiNetwork</code>
-instances respresenting the wireless networks associated with this
-radio device.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="isDisabled">
-            
-            isDisabled<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3023
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Checks whether this wireless radio is disabled.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> when the wireless radio is marked as disabled in <code>ubus</code>
-runtime state or when the <code>disabled</code> option is set in the corresponding
-UCI configuration.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="isUp">
-            
-            isUp<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3158
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Check whether the wireless radio is marked as up in the <code>ubus</code>
-runtime state.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> when the radio device is up, else <code>false</code>.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="set">
-            
-            set<span class="signature">(opt, val)</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3011
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Set the given UCI option of this network to the given value.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>opt</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The name of the UCI option to set.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>val</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">null</span>
-|
-
-<span class="param-type">string</span>
-|
-
-<span class="param-type">Array.&lt;string></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The value to set or <code>null</code> to remove the given option from the
-configuration.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-        </dl>
-    
-    
-    
-    
-    
-
-    
-</article>
-
-</section>  
-
-
-
-
-
-        
-
-        <footer>
-            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
-        </footer>
-    </div>
-</div>
-<script>prettyPrint();</script>
-<script src="scripts/jaguar.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/documentation/jsapi/LuCI.Network.WifiNetwork.html b/documentation/jsapi/LuCI.Network.WifiNetwork.html
deleted file mode 100644 (file)
index 20ba744..0000000
+++ /dev/null
@@ -1,4908 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8">
-    <title>Class: WifiNetwork</title>
-    
-    
-    <script src="scripts/prettify/prettify.js"></script>
-    <script src="scripts/prettify/lang-css.js"></script>
-    <script src="scripts/jquery.min.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/bootstrap.min.css">
-    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
-    
-    
-    <script>
-    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
-    </script>
-    
-
-    
-</head>
-<body>
-<div id="wrap" class="clearfix">
-    
-<div class="navigation">
-    <h3 class="applicationName"><a href="index.html"></a></h3>
-
-    <div class="search">
-        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
-    </div>
-    <ul class="list">
-    
-        <li class="item" data-name="LuCI">
-            <span class="title">
-                <a href="LuCI.html">LuCI</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
-            
-                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
-            
-                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
-            
-                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
-            
-                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
-            
-                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
-            
-                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
-            
-                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
-            
-                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
-            
-                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
-            
-                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
-            
-                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
-            
-                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
-            
-                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
-            
-                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
-            
-                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
-            
-                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
-            
-                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
-            
-                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Class">
-            <span class="title">
-                <a href="LuCI.Class.html">LuCI.Class</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
-            
-                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
-            
-                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
-            
-                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
-            
-                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
-            
-                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.dom">
-            <span class="title">
-                <a href="LuCI.dom.html">LuCI.dom</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
-            
-                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
-            
-                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
-            
-                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
-            
-                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
-            
-                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
-            
-                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
-            
-                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
-            
-                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
-            
-                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.fs">
-            <span class="title">
-                <a href="LuCI.fs.html">LuCI.fs</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
-            
-                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
-            
-                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
-            
-                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
-            
-                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
-            
-                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
-            
-                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
-            
-                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Headers">
-            <span class="title">
-                <a href="LuCI.Headers.html">LuCI.Headers</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
-            
-                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network">
-            <span class="title">
-                <a href="LuCI.Network.html">LuCI.Network</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
-            
-                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
-            
-                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
-            
-                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
-            
-                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
-            
-                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
-            
-                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
-            
-                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
-            
-                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
-            
-                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
-            
-                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
-            
-                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
-            
-                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
-            
-                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
-            
-                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
-            
-                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
-            
-                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Device">
-            <span class="title">
-                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
-            
-                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
-            
-                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
-            
-                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
-            
-                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Hosts">
-            <span class="title">
-                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Protocol">
-            <span class="title">
-                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiDevice">
-            <span class="title">
-                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiNetwork">
-            <span class="title">
-                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Poll">
-            <span class="title">
-                <a href="LuCI.Poll.html">LuCI.Poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request">
-            <span class="title">
-                <a href="LuCI.Request.html">LuCI.Request</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
-            
-                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
-            
-                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
-            
-                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request.poll">
-            <span class="title">
-                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Response">
-            <span class="title">
-                <a href="LuCI.Response.html">LuCI.Response</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
-            
-                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
-            
-                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
-            
-                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
-            
-                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
-            
-                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
-            
-                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
-            
-                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.rpc">
-            <span class="title">
-                <a href="LuCI.rpc.html">LuCI.rpc</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
-            
-                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
-            
-                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
-            
-                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
-            
-                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
-            
-                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
-            
-                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.uci">
-            <span class="title">
-                <a href="LuCI.uci.html">LuCI.uci</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
-            
-                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
-            
-                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
-            
-                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
-            
-                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
-            
-                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
-            
-                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
-            
-                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
-            
-                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
-            
-                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
-            
-                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
-            
-                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
-            
-                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
-            
-                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
-            
-                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
-            
-                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
-            
-                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
-            
-                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.view">
-            <span class="title">
-                <a href="LuCI.view.html">LuCI.view</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
-            
-                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
-            
-                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
-            
-                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
-            
-                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
-            
-                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.XHR">
-            <span class="title">
-                <a href="LuCI.XHR.html">LuCI.XHR</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
-            
-                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
-            
-                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
-            
-                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
-            
-                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
-            
-                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-    </ul>
-</div>
-    <div class="main">
-        <h1 class="page-title" data-filename="LuCI.Network.WifiNetwork.html">Class: WifiNetwork</h1>
-        
-
-
-
-<section>
-    
-<header>
-    <h2>
-        <span class="ancestors"><a href="LuCI.html">LuCI</a><a href="LuCI.Network.html">.Network</a>.</span>
-    
-    WifiNetwork
-    </h2>
-    
-        <div class="class-description"><p>A <code>Network.WifiNetwork</code> instance represents a wireless network (vif)
-configured on top of a radio device and provides functions for querying
-the runtime state of the network. Most radio devices support multiple
-such networks in parallel.</p></div>
-    
-</header>  
-
-<article>
-    <div class="container-overview">
-    
-    
-    
-        
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="WifiNetwork">
-            
-            new LuCI.Network.WifiNetwork<span class="signature">()</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3280
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-    
-    </div>
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-        <h3 class="subsection-title">Methods</h3>
-        
-        <dl>
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="get">
-            
-            get<span class="signature">(opt)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string|Array.&lt;string>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3313
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Read the given UCI option value of this wireless network.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>opt</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The UCI option name to read.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        string
-                         | 
-                    
-                        Array.&lt;string>
-                        
-                    
-            </td>
-            <td class="description last">Returns the UCI option value or <code>null</code> if the requested option is
-not found.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getActiveBSSID">
-            
-            getActiveBSSID<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3566
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Query the current BSSID from runtime information.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the current BSSID or Mesh ID as reported by <code>ubus</code> runtime
-information.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getActiveEncryption">
-            
-            getActiveEncryption<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3577
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Query the current encryption settings from runtime information.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns a string describing the current encryption or <code>-</code> if the the
-encryption state could not be found in <code>ubus</code> runtime information.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getActiveMode">
-            
-            getActiveMode<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3514
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Query the current operation mode from runtime information.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the human readable mode name as reported by <code>ubus</code> runtime
-state. Possible returned values are:
-<ul>
-<li><code>Master</code></li>
-<li><code>Ad-Hoc</code></li>
-<li><code>Client</code></li>
-<li><code>Monitor</code></li>
-<li><code>Master (VLAN)</code></li>
-<li><code>WDS</code></li>
-<li><code>Mesh Point</code></li>
-<li><code>P2P Client</code></li>
-<li><code>P2P Go</code></li>
-<li><code>Unknown</code></li>
-</ul></td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getActiveModeI18n">
-            
-            getActiveModeI18n<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3535
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Query the current operation mode from runtime information as
-translated string.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the translated, human readable mode name as reported by
-<code>ubus</code> runtime state.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getActiveSSID">
-            
-            getActiveSSID<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3555
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Query the current SSID from runtime information.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the current SSID or Mesh ID as reported by <code>ubus</code> runtime
-information.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getAssocList">
-            
-            getAssocList<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;Array.&lt;<a href="LuCI.Network.html#.WifiPeerEntry">LuCI.Network.WifiPeerEntry</a>>>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3757
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Fetch the list of associated peers.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;Array.&lt;<a href="LuCI.Network.html#.WifiPeerEntry">LuCI.Network.WifiPeerEntry</a>>>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to an array of wireless peers associated
-with this network.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getBitRate">
-            
-            getBitRate<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|number}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3787
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Query the current average bitrate of all peers associated to this
-wireless network.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        number
-                        
-                    
-            </td>
-            <td class="description last">Returns the average bit rate among all peers associated to the network
-as reported by <code>ubus</code> runtime information or <code>null</code> if the information
-is not available.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getBSSID">
-            
-            getBSSID<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3392
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the configured BSSID of the wireless network.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the BSSID value or <code>null</code> if none has been specified.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getChannel">
-            
-            getChannel<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|number}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3803
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Query the current wireless channel.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        number
-                        
-                    
-            </td>
-            <td class="description last">Returns the wireless channel as reported by <code>ubus</code> runtime information
-or <code>null</code> if it cannot be determined.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getCountryCode">
-            
-            getCountryCode<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3836
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Query the current country code.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the wireless country code as reported by <code>ubus</code> runtime
-information or <code>00</code> if it cannot be determined.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getDevice">
-            
-            getDevice<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{<a href="LuCI.Network.Device.html">LuCI.Network.Device</a>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3982
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the associated Linux network device.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
-                        
-                    
-            </td>
-            <td class="description last">Returns a <code>Network.Device</code> instance representing the Linux network
-device associted with this wireless network.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getFrequency">
-            
-            getFrequency<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3769
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Query the current operating frequency of the wireless network.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the current operating frequency of the network from <code>ubus</code>
-runtime information in GHz or <code>null</code> if the information is not
-available.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getI18n">
-            
-            getI18n<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3930
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get a description string for this wireless network.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns a string describing this network, consisting of the
-term <code>Wireless Network</code>, followed by the active operation mode,
-the SSID, BSSID or internal network ID and the Linux network device
-name, depending on which information is available.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getID">
-            
-            getID<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3417
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the internal network ID of this wireless network.</p>
-<p>The network ID is a LuCI specific identifer in the form
-<code>radio#.network#</code> to identify wireless networks by their corresponding
-radio and network index numbers.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the LuCI specific network ID.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getIfname">
-            
-            getIfname<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3439
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the Linux network device name.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the current Linux network device name as resolved from
-<code>ubus</code> runtime information or <code>null</code> if this network has no
-associated network device, e.g. when not configured or up.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getMeshID">
-            
-            getMeshID<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3379
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the configured Mesh ID of the wireless network.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the configured mesh ID value or <code>null</code> when this network
-is not in mesh mode.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getMode">
-            
-            getMode<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3354
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the configured operation mode of the wireless network.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the configured operation mode. Possible values are:
-<ul>
-<li><code>ap</code> - Master (Access Point) mode</li>
-<li><code>sta</code> - Station (client) mode</li>
-<li><code>adhoc</code> - Ad-Hoc (IBSS) mode</li>
-<li><code>mesh</code> - Mesh (IEEE 802.11s) mode</li>
-<li><code>monitor</code> - Monitor mode</li>
-</ul></td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getName">
-            
-            getName<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3427
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the configuration ID of this wireless network.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the corresponding UCI section ID of the network.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getNetwork">
-            
-            getNetwork<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3946
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the primary logical interface this wireless network is attached to.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
-                        
-                    
-            </td>
-            <td class="description last">Returns a <code>Network.Protocol</code> instance representing the logical
-interface or <code>null</code> if this network is not attached to any logical
-interface.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getNetworkNames">
-            
-            getNetworkNames<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;string>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3403
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the names of the logical interfaces this wireless network is
-attached to.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Array.&lt;string>
-                        
-                    
-            </td>
-            <td class="description last">Returns an array of logical interface names.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getNetworks">
-            
-            getNetworks<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3957
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the logical interfaces this wireless network is attached to.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Array.&lt;<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>>
-                        
-                    
-            </td>
-            <td class="description last">Returns an array of <code>Network.Protocol</code> instances representing the
-logical interfaces this wireless network is attached to.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getNoise">
-            
-            getNoise<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{number}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3825
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Query the current radio noise floor.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        number
-                        
-                    
-            </td>
-            <td class="description last">Returns the radio noise floor in dBm as reported by <code>ubus</code> runtime
-information or <code>0</code> if it cannot be determined.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getShortName">
-            
-            getShortName<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3915
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get a short description string for this wireless network.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns a string describing this network, consisting of the
-active operation mode, followed by either the SSID, BSSID or
-internal network ID, depending on which information is available.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getSignal">
-            
-            getSignal<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|number}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3814
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Query the current wireless signal.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        number
-                        
-                    
-            </td>
-            <td class="description last">Returns the wireless signal in dBm as reported by <code>ubus</code> runtime
-information or <code>null</code> if it cannot be determined.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getSignalLevel">
-            
-            getSignalLevel<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{number}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3874
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Calculate the current signal.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-        <dt class="important tag-deprecated">Deprecated</dt><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd>
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        number
-                        
-                    
-            </td>
-            <td class="description last">Returns the calculated signal level, which is the difference between
-noise and signal (SNR), divided by 5.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getSignalPercent">
-            
-            getSignalPercent<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{number}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3897
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Calculate the current signal quality percentage.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        number
-                        
-                    
-            </td>
-            <td class="description last">Returns the calculated signal quality in percent. The value is
-calculated from the <code>quality</code> and <code>quality_max</code> indicators reported
-by <code>ubus</code> runtime state.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getSSID">
-            
-            getSSID<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3365
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the configured SSID of the wireless network.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the configured SSID value or <code>null</code> when this network is
-in mesh mode.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getTXPower">
-            
-            getTXPower<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|number}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3847
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Query the current radio TX power.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        number
-                        
-                    
-            </td>
-            <td class="description last">Returns the wireless network transmit power in dBm as reported by
-<code>ubus</code> runtime information or <code>null</code> if it cannot be determined.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getTXPowerOffset">
-            
-            getTXPowerOffset<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{number}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3862
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Query the radio TX power offset.</p>
-<p>Some wireless radios have a fixed power offset, e.g. due to the
-use of external amplifiers.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        number
-                        
-                    
-            </td>
-            <td class="description last">Returns the wireless network transmit power offset in dBm as reported
-by <code>ubus</code> runtime information or <code>0</code> if there is no offset, or if it
-cannot be determined.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getWifiDevice">
-            
-            getWifiDevice<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|<a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3467
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the corresponding wifi radio device.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
-                        
-                    
-            </td>
-            <td class="description last">Returns a <code>Network.WifiDevice</code> instance representing the corresponding
-wifi radio device or <code>null</code> if the related radio device could not be
-found.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getWifiDeviceName">
-            
-            getWifiDeviceName<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3455
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get the name of the corresponding wifi radio device.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the name of the radio device this network is configured on
-or <code>null</code> if it cannot be determined.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="isDisabled">
-            
-            isDisabled<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3339
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Checks whether this wireless network is disabled.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> when the wireless radio is marked as disabled in <code>ubus</code>
-runtime state or when the <code>disabled</code> option is set in the corresponding
-UCI configuration.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="isUp">
-            
-            isUp<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3488
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Check whether the radio network is up.</p>
-<p>This function actually queries the up state of the related radio
-device and assumes this network to be up as well when the parent
-radio is up. This is due to the fact that OpenWrt does not control
-virtual interfaces individually but within one common hostapd
-instance.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> when the network is up, else <code>false</code>.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="set">
-            
-            set<span class="signature">(opt, val)</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 3327
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Set the given UCI option of this network to the given value.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>opt</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The name of the UCI option to set.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>val</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">null</span>
-|
-
-<span class="param-type">string</span>
-|
-
-<span class="param-type">Array.&lt;string></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The value to set or <code>null</code> to remove the given option from the
-configuration.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-        </dl>
-    
-    
-    
-    
-    
-
-    
-</article>
-
-</section>  
-
-
-
-
-
-        
-
-        <footer>
-            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
-        </footer>
-    </div>
-</div>
-<script>prettyPrint();</script>
-<script src="scripts/jaguar.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/documentation/jsapi/LuCI.Network.html b/documentation/jsapi/LuCI.Network.html
deleted file mode 100644 (file)
index 5b4d1e8..0000000
+++ /dev/null
@@ -1,7032 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8">
-    <title>Class: Network</title>
-    
-    
-    <script src="scripts/prettify/prettify.js"></script>
-    <script src="scripts/prettify/lang-css.js"></script>
-    <script src="scripts/jquery.min.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/bootstrap.min.css">
-    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
-    
-    
-    <script>
-    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
-    </script>
-    
-
-    
-</head>
-<body>
-<div id="wrap" class="clearfix">
-    
-<div class="navigation">
-    <h3 class="applicationName"><a href="index.html"></a></h3>
-
-    <div class="search">
-        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
-    </div>
-    <ul class="list">
-    
-        <li class="item" data-name="LuCI">
-            <span class="title">
-                <a href="LuCI.html">LuCI</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
-            
-                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
-            
-                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
-            
-                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
-            
-                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
-            
-                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
-            
-                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
-            
-                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
-            
-                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
-            
-                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
-            
-                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
-            
-                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
-            
-                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
-            
-                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
-            
-                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
-            
-                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
-            
-                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
-            
-                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
-            
-                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Class">
-            <span class="title">
-                <a href="LuCI.Class.html">LuCI.Class</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
-            
-                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
-            
-                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
-            
-                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
-            
-                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
-            
-                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.dom">
-            <span class="title">
-                <a href="LuCI.dom.html">LuCI.dom</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
-            
-                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
-            
-                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
-            
-                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
-            
-                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
-            
-                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
-            
-                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
-            
-                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
-            
-                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
-            
-                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.fs">
-            <span class="title">
-                <a href="LuCI.fs.html">LuCI.fs</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
-            
-                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
-            
-                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
-            
-                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
-            
-                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
-            
-                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
-            
-                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
-            
-                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Headers">
-            <span class="title">
-                <a href="LuCI.Headers.html">LuCI.Headers</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
-            
-                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network">
-            <span class="title">
-                <a href="LuCI.Network.html">LuCI.Network</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
-            
-                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
-            
-                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
-            
-                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
-            
-                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
-            
-                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
-            
-                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
-            
-                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
-            
-                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
-            
-                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
-            
-                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
-            
-                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
-            
-                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
-            
-                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
-            
-                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
-            
-                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
-            
-                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Device">
-            <span class="title">
-                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
-            
-                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
-            
-                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
-            
-                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
-            
-                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Hosts">
-            <span class="title">
-                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Protocol">
-            <span class="title">
-                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiDevice">
-            <span class="title">
-                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiNetwork">
-            <span class="title">
-                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Poll">
-            <span class="title">
-                <a href="LuCI.Poll.html">LuCI.Poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request">
-            <span class="title">
-                <a href="LuCI.Request.html">LuCI.Request</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
-            
-                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
-            
-                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
-            
-                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request.poll">
-            <span class="title">
-                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Response">
-            <span class="title">
-                <a href="LuCI.Response.html">LuCI.Response</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
-            
-                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
-            
-                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
-            
-                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
-            
-                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
-            
-                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
-            
-                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
-            
-                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.rpc">
-            <span class="title">
-                <a href="LuCI.rpc.html">LuCI.rpc</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
-            
-                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
-            
-                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
-            
-                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
-            
-                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
-            
-                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
-            
-                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.uci">
-            <span class="title">
-                <a href="LuCI.uci.html">LuCI.uci</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
-            
-                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
-            
-                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
-            
-                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
-            
-                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
-            
-                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
-            
-                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
-            
-                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
-            
-                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
-            
-                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
-            
-                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
-            
-                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
-            
-                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
-            
-                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
-            
-                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
-            
-                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
-            
-                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
-            
-                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.view">
-            <span class="title">
-                <a href="LuCI.view.html">LuCI.view</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
-            
-                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
-            
-                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
-            
-                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
-            
-                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
-            
-                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.XHR">
-            <span class="title">
-                <a href="LuCI.XHR.html">LuCI.XHR</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
-            
-                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
-            
-                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
-            
-                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
-            
-                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
-            
-                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-    </ul>
-</div>
-    <div class="main">
-        <h1 class="page-title" data-filename="LuCI.Network.html">Class: Network</h1>
-        
-
-
-
-<section>
-    
-<header>
-    <h2>
-        <span class="ancestors"><a href="LuCI.html">LuCI</a>.</span>
-    
-    Network
-    </h2>
-    
-        <div class="class-description"><p>The <code>LuCI.Network</code> class combines data from multiple <code>ubus</code> apis to
-provide an abstraction of the current network configuration state.</p>
-<p>It provides methods to enumerate interfaces and devices, to query
-current configuration details and to manipulate settings.</p></div>
-    
-</header>  
-
-<article>
-    <div class="container-overview">
-    
-    
-    
-        
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="Network">
-            
-            new LuCI.Network<span class="signature">()</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 628
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-    
-    </div>
-    
-    
-    
-    
-    
-    
-    
-    
-        <h3 class="subsection-title">Classes</h3>
-        
-        <dl>
-            <dt><a href="LuCI.Network.Device.html">Device</a></dt>
-            <dd></dd>
-        
-            <dt><a href="LuCI.Network.Hosts.html">Hosts</a></dt>
-            <dd></dd>
-        
-            <dt><a href="LuCI.Network.Protocol.html">Protocol</a></dt>
-            <dd></dd>
-        
-            <dt><a href="LuCI.Network.WifiDevice.html">WifiDevice</a></dt>
-            <dd></dd>
-        
-            <dt><a href="LuCI.Network.WifiNetwork.html">WifiNetwork</a></dt>
-            <dd></dd>
-        </dl>
-    
-    
-    
-    
-    
-    
-    
-        <h3 class="subsection-title">Methods</h3>
-        
-        <dl>
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="addNetwork">
-            
-            addNetwork<span class="signature">(name, <span class="optional">options</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;(null|<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>)>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 884
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Adds a new network of the given name and update it with the given
-uci option values.</p>
-<p>If a network with the given name already exist but is empty, then
-this function will update its option, otherwise it will do nothing.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<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">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The name of the network to add. Must be in the format <code>[a-zA-Z0-9_]+</code>.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>options</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Object.&lt;string, (string|Array.&lt;string>)></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>An object of uci option values to set on the new network or to
-update in an existing, empty network.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;(null|<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>)>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to the <code>Protocol</code> subclass instance
-describing the added network or resolving to <code>null</code> if the name
-was invalid or if a non-empty network of the given name already
-existed.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="addWifiNetwork">
-            
-            addWifiNetwork<span class="signature">(options)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;(null|<a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>)>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1352
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Adds a new wireless network to the configuration and sets its options
-to the provided values.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>options</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Object.&lt;string, (string|Array.&lt;string>)></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The options to set for the newly added wireless network. This object
-must at least contain a <code>device</code> property which is set to the radio
-name the new network belongs to.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;(null|<a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>)>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to a <code>WifiNetwork</code> instance describing
-the newly added wireless network or <code>null</code> if the given options
-were invalid or if the associated radio device could not be found.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="deleteNetwork">
-            
-            deleteNetwork<span class="signature">(name)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;boolean>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 962
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Deletes the given network and its references from the network and
-firewall configuration.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<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">
-                
-                <p>The name of the network to delete.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;boolean>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to either <code>true</code> if the network and
-references to it were successfully deleted from the configuration or
-<code>false</code> if the given network could not be found.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="deleteWifiNetwork">
-            
-            deleteWifiNetwork<span class="signature">(netname)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;boolean>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1390
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Deletes the given wireless network from the configuration.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>netname</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The name of the network to remove. This may be either a
-network ID in the form <code>radio#.network#</code> or a Linux network device
-name like <code>wlan0</code> which is resolved to the corresponding configuration
-section through <code>ubus</code> runtime information.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;boolean>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to <code>true</code> if the wireless network has been
-successfully deleted from the configuration or <code>false</code> if it could not
-be found.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="flushCache">
-            
-            flushCache<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;Object>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 728
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Flushes the local network state cache and fetches updated information
-from the remote <code>ubus</code> apis.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;Object>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to the internal network state object.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="formatWifiEncryption">
-            
-            formatWifiEncryption<span class="signature">(encryption)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 719
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Converts a given <a href="LuCI.Network.html#.WifiEncryption"><code>encryption entry</code></a>
-into a human readable string such as <code>mixed WPA/WPA2 PSK (TKIP, CCMP)</code>
-or <code>WPA3 SAE (CCMP)</code>.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>encryption</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type"><a href="LuCI.Network.html#.WifiEncryption">LuCI.Network.WifiEncryption</a></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The wireless encryption entry to convert.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the description string for the given encryption entry or
-<code>null</code> if the given entry was invalid.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getDevice">
-            
-            getDevice<span class="signature">(name)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;(null|<a href="LuCI.Network.Device.html">LuCI.Network.Device</a>)>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1087
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get a <a href="LuCI.Network.Device.html"><code>Device</code></a> instance describing the
-given network device.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<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">
-                
-                <p>The name of the network device to get, e.g. <code>eth0</code> or <code>br-lan</code>.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;(null|<a href="LuCI.Network.Device.html">LuCI.Network.Device</a>)>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to the <code>Device</code> instance describing
-the network device or <code>null</code> if the given device name could not
-be found.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getDevices">
-            
-            getDevices<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;Array.&lt;<a href="LuCI.Network.Device.html">LuCI.Network.Device</a>>>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1110
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get a sorted list of all found network devices.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;Array.&lt;<a href="LuCI.Network.Device.html">LuCI.Network.Device</a>>>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to a sorted array of <code>Device</code> class
-instances describing the network devices found on the system.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getDSLModemType">
-            
-            getDSLModemType<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;(null|string)>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1594
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Queries the internal DSL modem type from board information.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;(null|string)>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to the type of the internal modem
-(e.g. <code>vdsl</code>) or to <code>null</code> if no internal modem is present.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getHostHints">
-            
-            getHostHints<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;<a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1611
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Queries aggregated information about known hosts.</p>
-<p>This function aggregates information from various sources such as
-DHCP lease databases, ARP and IPv6 neighbour entries, wireless
-association list etc. and returns a <a href="LuCI.Network.Hosts.html"><code>Hosts</code></a>
-class instance describing the found hosts.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;<a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>>
-                        
-                    
-            </td>
-            <td class="description last">Returns a <code>Hosts</code> instance describing host known on the system.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getIfnameOf">
-            
-            getIfnameOf<span class="signature">(obj)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1583
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Obtains the the network device name of the given object.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>obj</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type"><a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a></span>
-|
-
-<span class="param-type"><a href="LuCI.Network.Device.html">LuCI.Network.Device</a></span>
-|
-
-<span class="param-type"><a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a></span>
-|
-
-<span class="param-type"><a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a></span>
-|
-
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The object to get the device name from.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns a string containing the device name or <code>null</code> if the given
-object could not be converted to a name.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getNetwork">
-            
-            getNetwork<span class="signature">(name)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;(null|<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>)>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 921
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get a <a href="LuCI.Network.Protocol.html"><code>Protocol</code></a> instance describing
-the network with the given name.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<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">
-                
-                <p>The logical interface name of the network get, e.g. <code>lan</code> or <code>wan</code>.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;(null|<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>)>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to a
-<a href="LuCI.Network.Protocol.html"><code>Protocol</code></a> subclass instance describing
-the network or <code>null</code> if the network did not exist.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getNetworks">
-            
-            getNetworks<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;Array.&lt;<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>>>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 946
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Gets an array containing all known networks.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;Array.&lt;<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>>>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to a name-sorted array of
-<a href="LuCI.Network.Protocol.html"><code>Protocol</code></a> subclass instances
-describing all known networks.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getProtocol">
-            
-            getProtocol<span class="signature">(protoname, <span class="optional">netname</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 750
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Instantiates the given <a href="LuCI.Network.Protocol.html"><code>Protocol</code></a> backend,
-optionally using the given network name.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               <th>Default</th>
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>protoname</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-                <td class="default">
-                
-                </td>
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The protocol backend to use, e.g. <code>static</code> or <code>dhcp</code>.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>netname</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-                <td class="default">
-                
-                    __dummy__
-                
-                </td>
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>The network name to use for the instantiated protocol. This should be
-usually set to one of the interfaces described in /etc/config/network
-but it is allowed to omit it, e.g. to query protocol capabilities
-without the need for an existing interface.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
-                        
-                    
-            </td>
-            <td class="description last">Returns the instantiated protocol backend class or <code>null</code> if the given
-protocol isn't known.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getProtocols">
-            
-            getProtocols<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 765
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Obtains instances of all known <a href="LuCI.Network.Protocol.html"><code>Protocol</code></a>
-backend classes.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Array.&lt;<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>>
-                        
-                    
-            </td>
-            <td class="description last">Returns an array of protocol class instances.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getSwitchTopologies">
-            
-            getSwitchTopologies<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;Object.&lt;string, <a href="LuCI.Network.html#.SwitchTopology">LuCI.Network.SwitchTopology</a>>>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1538
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Returns the topologies of all swconfig switches found on the system.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;Object.&lt;string, <a href="LuCI.Network.html#.SwitchTopology">LuCI.Network.SwitchTopology</a>>>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to an object containing the topologies
-of each switch. The object keys correspond to the name of the switches
-such as <code>switch0</code>, the values are
-<a href="LuCI.Network.html#.SwitchTopology"><code>SwitchTopology</code></a> objects describing
-the layout.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getWAN6Networks">
-            
-            getWAN6Networks<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;Array.&lt;<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>>>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1493
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get IPv6 wan networks.</p>
-<p>This function looks up all networks having a default <code>::/0</code> route
-and returns them as array.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;Array.&lt;<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>>>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to an array of <code>Protocol</code> subclass
-instances describing the found IPv6 default route interfaces.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getWANNetworks">
-            
-            getWANNetworks<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;Array.&lt;<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>>>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1472
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get IPv4 wan networks.</p>
-<p>This function looks up all networks having a default <code>0.0.0.0/0</code> route
-and returns them as array.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;Array.&lt;<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>>>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to an array of <code>Protocol</code> subclass
-instances describing the found default route interfaces.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getWifiDevice">
-            
-            getWifiDevice<span class="signature">(devname)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;(null|<a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>)>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1240
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get a <a href="LuCI.Network.WifiDevice.html"><code>WifiDevice</code></a> instance describing
-the given wireless radio.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>devname</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The configuration name of the wireless radio to lookup, e.g. <code>radio0</code>
-for the first mac80211 phy on the system.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;(null|<a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>)>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to the <code>WifiDevice</code> instance describing
-the underlying radio device or <code>null</code> if the wireless radio could not
-be found.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getWifiDevices">
-            
-            getWifiDevices<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;Array.&lt;<a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>>>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1260
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Obtain a list of all configured radio devices.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;Array.&lt;<a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>>>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to an array of <code>WifiDevice</code> instances
-describing the wireless radios configured in the system.
-The order of the array corresponds to the order of the radios in
-the configuration.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getWifiNetwork">
-            
-            getWifiNetwork<span class="signature">(netname)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;(null|<a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>)>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1289
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Get a <a href="LuCI.Network.WifiNetwork.html"><code>WifiNetwork</code></a> instance describing
-the given wireless network.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>netname</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The name of the wireless network to lookup. This may be either an uci
-configuration section ID, a network ID in the form <code>radio#.network#</code>
-or a Linux network device name like <code>wlan0</code> which is resolved to the
-corresponding configuration section through <code>ubus</code> runtime information.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;(null|<a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>)>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to the <code>WifiNetwork</code> instance describing
-the wireless network or <code>null</code> if the corresponding network could not
-be found.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="isIgnoredDevice">
-            
-            isIgnoredDevice<span class="signature">(name)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1223
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Test if a given network device name is in the list of patterns for
-device names to ignore.</p>
-<p>Ignored device names are usually Linux network devices which are
-spawned implicitly by kernel modules such as <code>tunl0</code> or <code>hwsim0</code>
-and which are unsuitable for use in network configuration.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<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">
-                
-                <p>The device name to test.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> if the given name is in the ignore pattern list,
-else returns <code>false</code>.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="maskToPrefix">
-            
-            maskToPrefix<span class="signature">(netmask, <span class="optional">v6</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|number}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 664
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Converts the given netmask to a prefix size in bits.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               <th>Default</th>
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>netmask</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-                <td class="default">
-                
-                </td>
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The netmask to convert into a bit count.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>v6</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">boolean</span>
-
-
-            
-            </td>
-            
-            
-                <td class="default">
-                
-                    false
-                
-                </td>
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>Whether to parse the given netmask as IPv4 (<code>false</code>) or IPv6 (<code>true</code>)
-address.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        number
-                        
-                    
-            </td>
-            <td class="description last">Returns the number of prefix bits contained in the netmask or <code>null</code>
-if the given netmask value was invalid.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="prefixToMask">
-            
-            prefixToMask<span class="signature">(bits, <span class="optional">v6</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 646
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Converts the given prefix size in bits to a netmask.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               <th>Default</th>
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>bits</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-                <td class="default">
-                
-                </td>
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The prefix size in bits.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>v6</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">boolean</span>
-
-
-            
-            </td>
-            
-            
-                <td class="default">
-                
-                    false
-                
-                </td>
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>Whether to convert the bits value into an IPv4 netmask (<code>false</code>) or
-an IPv6 netmask (<code>true</code>).</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns a string containing the netmask corresponding to the bit count
-or <code>null</code> when the given amount of bits exceeds the maximum possible
-value of <code>32</code> for IPv4 or <code>128</code> for IPv6.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="registerErrorCode">
-            
-            registerErrorCode<span class="signature">(code, message)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 853
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Registers a new human readable translation string for a <code>Protocol</code>
-error code.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>code</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The <code>ubus</code> protocol error code to register a translation for, e.g.
-<code>NO_DEVICE</code>.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>message</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The message to use as translation for the given protocol error code.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> if the error code description has been added or <code>false</code>
-if either the arguments were invalid or if there already was a
-description for the given code.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="registerPatternVirtual">
-            
-            registerPatternVirtual<span class="signature">(pat)</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 833
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Registers a new regular expression pattern to recognize
-virtual interfaces.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>pat</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">RegExp</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>A <code>RegExp</code> instance to match a virtual interface name
-such as <code>6in4-wan</code> or <code>tun0</code>.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="registerProtocol">
-            
-            registerProtocol<span class="signature">(protoname, methods)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{<a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 792
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Registers a new <a href="LuCI.Network.Protocol.html"><code>Protocol</code></a> subclass
-with the given methods and returns the resulting subclass value.</p>
-<p>This functions internally calls
-<a href="LuCI.Class.html#.extend"><code>Class.extend()</code></a> on the <code>Network.Protocol</code>
-base class.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>protoname</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The name of the new protocol to register.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>methods</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Object.&lt;string, *></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The member methods and values of the new <code>Protocol</code> subclass to
-be passed to <a href="LuCI.Class.html#.extend"><code>Class.extend()</code></a>.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
-                        
-                    
-            </td>
-            <td class="description last">Returns the new <code>Protocol</code> subclass.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="renameNetwork">
-            
-            renameNetwork<span class="signature">(oldName, newName)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;boolean>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            network.js, line 1026
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Rename the given network and its references to a new name.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>oldName</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The current name of the network.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>newName</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The name to rename the network to, must be in the format
-<code>[a-z-A-Z0-9_]+</code>.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;boolean>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to either <code>true</code> if the network was
-successfully renamed or <code>false</code> if the new name was invalid, if
-a network with the new name already exists or if the network to
-rename could not be found.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        </dl>
-    
-    
-    
-        <h3 class="subsection-title">Type Definitions</h3>
-        
-        <dl>
-                
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id=".SwitchTopology">LuCI.Network.SwitchTopology<span class="type-signature type object.<string, (object|array)>">Object.&lt;string, (Object|Array)></span> </h4>
-    </div>
-    
-    
-</dt>
-<dd>
-    
-    <div class="description">
-        <p>Describes an swconfig switch topology by specifying the CPU
-connections and external port labels of a switch.</p>
-    </div>
-    
-    
-    
-<dl class="details">
-    
-        
-        <h5 class="subsection-title">Properties:</h5>
-        
-        <dl>
-
-<table class="props">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>netdevs</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Object.&lt;number, string></span>
-
-
-            
-            </td>
-            
-            
-            
-            
-            
-            <td class="description last"><p>The <code>netdevs</code> property points to an object describing the CPU port
-connections of the switch. The numeric key of the enclosed object is
-the port number, the value contains the Linux network device name the
-port is hardwired to.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>ports</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Array.&lt;Object.&lt;string, (boolean|number|string)>></span>
-
-
-            
-            </td>
-            
-            
-            
-            
-            
-            <td class="description last"><p>The <code>ports</code> property points to an array describing the populated
-ports of the switch in the external label order. Each array item is
-an object containg the following keys:</p>
-<ul>
-<li><code>num</code> - the internal switch port number</li>
-<li><code>label</code> - the label of the port, e.g. <code>LAN 1</code> or <code>CPU (eth0)</code></li>
-<li><code>device</code> - the connected Linux network device name (CPU ports only)</li>
-<li><code>tagged</code> - a boolean indicating whether the port must be tagged to
-function (CPU ports only)</li>
-</ul></td>
-        </tr>
-       
-       
-       </tbody>
-</table></dl>
-        
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-</dd>
-
-            
-                
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id=".WifiEncryption">LuCI.Network.WifiEncryption<span class="type-signature type object.<string, (boolean|array.<(number|string)>)>">Object.&lt;string, (boolean|Array.&lt;(number|string)>)></span> </h4>
-    </div>
-    
-    
-</dt>
-<dd>
-    
-    <div class="description">
-        <p>An encryption entry describes active wireless encryption settings
-such as the used key management protocols, active ciphers and
-protocol versions.</p>
-    </div>
-    
-    
-    
-<dl class="details">
-    
-        
-        <h5 class="subsection-title">Properties:</h5>
-        
-        <dl>
-
-<table class="props">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               <th>Argument</th>
-               
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>enabled</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">boolean</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>Specifies whether any kind of encryption, such as <code>WEP</code> or <code>WPA</code> is
-enabled. If set to <code>false</code>, then no encryption is active and the
-corresponding network is open.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>wep</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Array.&lt;string></span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    &lt;optional><br>
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>When the <code>wep</code> property exists, the network uses WEP encryption.
-In this case, the property is set to an array of active WEP modes
-which might be either <code>open</code>, <code>shared</code> or both.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>wpa</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Array.&lt;number></span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    &lt;optional><br>
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>When the <code>wpa</code> property exists, the network uses WPA security.
-In this case, the property is set to an array containing the WPA
-protocol versions used, e.g. <code>[ 1, 2 ]</code> for WPA/WPA2 mixed mode or
-<code>[ 3 ]</code> for WPA3-SAE.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>authentication</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Array.&lt;string></span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    &lt;optional><br>
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>The <code>authentication</code> property only applies to WPA encryption and
-is defined when the <code>wpa</code> property is set as well. It points to
-an array of active authentication suites used by the network, e.g.
-<code>[ &quot;psk&quot; ]</code> for a WPA(2)-PSK network or <code>[ &quot;psk&quot;, &quot;sae&quot; ]</code> for
-mixed WPA2-PSK/WPA3-SAE encryption.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>ciphers</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Array.&lt;string></span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    &lt;optional><br>
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>If either WEP or WPA encryption is active, then the <code>ciphers</code>
-property will be set to an array describing the active encryption
-ciphers used by the network, e.g. <code>[ &quot;tkip&quot;, &quot;ccmp&quot; ]</code> for a
-WPA/WPA2-PSK mixed network or <code>[ &quot;wep-40&quot;, &quot;wep-104&quot; ]</code> for an
-WEP network.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table></dl>
-        
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-</dd>
-
-            
-                
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id=".WifiPeerEntry">LuCI.Network.WifiPeerEntry<span class="type-signature type object.<string, (boolean|number|string|luci.network.wifirateentry)>">Object.&lt;string, (boolean|number|string|<a href="LuCI.Network.html#.WifiRateEntry">LuCI.Network.WifiRateEntry</a>)></span> </h4>
-    </div>
-    
-    
-</dt>
-<dd>
-    
-    <div class="description">
-        <p>A wireless peer entry describes the properties of a remote wireless
-peer associated with a local network.</p>
-    </div>
-    
-    
-    
-<dl class="details">
-    
-        
-        <h5 class="subsection-title">Properties:</h5>
-        
-        <dl>
-
-<table class="props">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               <th>Argument</th>
-               
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>mac</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>The MAC address (BSSID).</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>signal</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>The received signal strength.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>signal_avg</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    &lt;optional><br>
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>The average signal strength if supported by the driver.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>noise</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    &lt;optional><br>
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>The current noise floor of the radio. May be <code>0</code> or absent if not
-supported by the driver.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>inactive</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>The amount of milliseconds the peer has been inactive, e.g. due
-to powersave.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>connected_time</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>The amount of milliseconds the peer is associated to this network.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>thr</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    &lt;optional><br>
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>The estimated throughput of the peer, May be <code>0</code> or absent if not
-supported by the driver.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>authorized</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">boolean</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>Specifies whether the peer is authorized to associate to this network.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>authenticated</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">boolean</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>Specifies whether the peer completed authentication to this network.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>preamble</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>The preamble mode used by the peer. May be <code>long</code> or <code>short</code>.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>wme</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">boolean</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>Specifies whether the peer supports WME/WMM capabilities.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>mfp</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">boolean</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>Specifies whether management frame protection is active.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>tdls</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">boolean</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>Specifies whether TDLS is active.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>mesh llid</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    &lt;optional><br>
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>The mesh LLID, may be <code>0</code> or absent if not applicable or supported
-by the driver.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>mesh plid</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    &lt;optional><br>
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>The mesh PLID, may be <code>0</code> or absent if not applicable or supported
-by the driver.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>mesh plink</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    &lt;optional><br>
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>The mesh peer link state description, may be an empty string (<code>''</code>)
-or absent if not applicable or supported by the driver.</p>
-<p>The following states are known:</p>
-<ul>
-<li><code>LISTEN</code></li>
-<li><code>OPN_SNT</code></li>
-<li><code>OPN_RCVD</code></li>
-<li><code>CNF_RCVD</code></li>
-<li><code>ESTAB</code></li>
-<li><code>HOLDING</code></li>
-<li><code>BLOCKED</code></li>
-<li><code>UNKNOWN</code></li>
-</ul></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>mesh local PS</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    &lt;optional><br>
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>The local powersafe mode for the peer link, may be an empty
-string (<code>''</code>) or absent if not applicable or supported by
-the driver.</p>
-<p>The following modes are known:</p>
-<ul>
-<li><code>ACTIVE</code> (no power save)</li>
-<li><code>LIGHT SLEEP</code></li>
-<li><code>DEEP SLEEP</code></li>
-<li><code>UNKNOWN</code></li>
-</ul></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>mesh peer PS</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    &lt;optional><br>
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>The remote powersafe mode for the peer link, may be an empty
-string (<code>''</code>) or absent if not applicable or supported by
-the driver.</p>
-<p>The following modes are known:</p>
-<ul>
-<li><code>ACTIVE</code> (no power save)</li>
-<li><code>LIGHT SLEEP</code></li>
-<li><code>DEEP SLEEP</code></li>
-<li><code>UNKNOWN</code></li>
-</ul></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>mesh non-peer PS</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    &lt;optional><br>
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>The powersafe mode for all non-peer neigbours, may be an empty
-string (<code>''</code>) or absent if not applicable or supported by the driver.</p>
-<p>The following modes are known:</p>
-<ul>
-<li><code>ACTIVE</code> (no power save)</li>
-<li><code>LIGHT SLEEP</code></li>
-<li><code>DEEP SLEEP</code></li>
-<li><code>UNKNOWN</code></li>
-</ul></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>rx</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type"><a href="LuCI.Network.html#.WifiRateEntry">LuCI.Network.WifiRateEntry</a></span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>Describes the receiving wireless rate from the peer.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>tx</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type"><a href="LuCI.Network.html#.WifiRateEntry">LuCI.Network.WifiRateEntry</a></span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>Describes the transmitting wireless rate to the peer.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table></dl>
-        
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-</dd>
-
-            
-                
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id=".WifiRateEntry">LuCI.Network.WifiRateEntry<span class="type-signature type object.<string, (boolean|number)>">Object.&lt;string, (boolean|number)></span> </h4>
-    </div>
-    
-    
-</dt>
-<dd>
-    
-    <div class="description">
-        <p>A wireless rate entry describes the properties of a wireless
-transmission rate to or from a peer.</p>
-    </div>
-    
-    
-    
-<dl class="details">
-    
-        
-        <h5 class="subsection-title">Properties:</h5>
-        
-        <dl>
-
-<table class="props">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               <th>Argument</th>
-               
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>drop_misc</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    &lt;optional><br>
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>The amount of received misc. packages that have been dropped, e.g.
-due to corruption or missing authentication. Only applicable to
-receiving rates.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>packets</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>The amount of packets that have been received or sent.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>bytes</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>The amount of bytes that have been received or sent.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>failed</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    &lt;optional><br>
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>The amount of failed tranmission attempts. Only applicable to
-transmit rates.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>retries</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    &lt;optional><br>
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>The amount of retried transmissions. Only applicable to transmit
-rates.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>is_ht</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">boolean</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>Specifies whether this rate is an HT (IEEE 802.11n) rate.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>is_vht</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">boolean</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>Specifies whether this rate is an VHT (IEEE 802.11ac) rate.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>mhz</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>The channel width in MHz used for the transmission.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>rate</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>The bitrate in bit/s of the transmission.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>mcs</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    &lt;optional><br>
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>The MCS index of the used transmission rate. Only applicable to
-HT or VHT rates.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>40mhz</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    &lt;optional><br>
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>Specifies whether the tranmission rate used 40MHz wide channel.
-Only applicable to HT or VHT rates.</p>
-<p>Note: this option exists for backwards compatibility only and its
-use is discouraged. The <code>mhz</code> field should be used instead to
-determine the channel width.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>short_gi</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">boolean</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    &lt;optional><br>
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>Specifies whether a short guard interval is used for the transmission.
-Only applicable to HT or VHT rates.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>nss</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    &lt;optional><br>
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>Specifies the number of spatial streams used by the transmission.
-Only applicable to VHT rates.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table></dl>
-        
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-</dd>
-
-            
-                
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id=".WifiScanResult">LuCI.Network.WifiScanResult<span class="type-signature type object.<string, (number|string|luci.network.wifiencryption)>">Object.&lt;string, (number|string|<a href="LuCI.Network.html#.WifiEncryption">LuCI.Network.WifiEncryption</a>)></span> </h4>
-    </div>
-    
-    
-</dt>
-<dd>
-    
-    <div class="description">
-        <p>A wireless scan result object describes a neighbouring wireless
-network found in the vincinity.</p>
-    </div>
-    
-    
-    
-<dl class="details">
-    
-        
-        <h5 class="subsection-title">Properties:</h5>
-        
-        <dl>
-
-<table class="props">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>ssid</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            
-            
-            <td class="description last"><p>The SSID / Mesh ID of the network.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>bssid</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            
-            
-            <td class="description last"><p>The BSSID if the network.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>mode</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            
-            
-            <td class="description last"><p>The operation mode of the network (<code>Master</code>, <code>Ad-Hoc</code>, <code>Mesh Point</code>).</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>channel</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-            
-            
-            
-            <td class="description last"><p>The wireless channel of the network.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>signal</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-            
-            
-            
-            <td class="description last"><p>The received signal strength of the network in dBm.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>quality</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-            
-            
-            
-            <td class="description last"><p>The numeric quality level of the signal, can be used in conjunction
-with <code>quality_max</code> to calculate a quality percentage.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>quality_max</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-            
-            
-            
-            <td class="description last"><p>The maximum possible quality level of the signal, can be used in
-conjunction with <code>quality</code> to calculate a quality percentage.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>encryption</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type"><a href="LuCI.Network.html#.WifiEncryption">LuCI.Network.WifiEncryption</a></span>
-
-
-            
-            </td>
-            
-            
-            
-            
-            
-            <td class="description last"><p>The encryption used by the wireless network.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table></dl>
-        
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-</dd>
-
-            </dl>
-    
-    
-    
-
-    
-</article>
-
-</section>  
-
-
-
-
-
-        
-
-        <footer>
-            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
-        </footer>
-    </div>
-</div>
-<script>prettyPrint();</script>
-<script src="scripts/jaguar.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/documentation/jsapi/LuCI.Poll.html b/documentation/jsapi/LuCI.Poll.html
deleted file mode 100644 (file)
index a00c9a3..0000000
+++ /dev/null
@@ -1,1878 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8">
-    <title>Class: Poll</title>
-    
-    
-    <script src="scripts/prettify/prettify.js"></script>
-    <script src="scripts/prettify/lang-css.js"></script>
-    <script src="scripts/jquery.min.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/bootstrap.min.css">
-    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
-    
-    
-    <script>
-    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
-    </script>
-    
-
-    
-</head>
-<body>
-<div id="wrap" class="clearfix">
-    
-<div class="navigation">
-    <h3 class="applicationName"><a href="index.html"></a></h3>
-
-    <div class="search">
-        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
-    </div>
-    <ul class="list">
-    
-        <li class="item" data-name="LuCI">
-            <span class="title">
-                <a href="LuCI.html">LuCI</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
-            
-                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
-            
-                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
-            
-                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
-            
-                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
-            
-                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
-            
-                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
-            
-                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
-            
-                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
-            
-                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
-            
-                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
-            
-                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
-            
-                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
-            
-                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
-            
-                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
-            
-                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
-            
-                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
-            
-                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
-            
-                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Class">
-            <span class="title">
-                <a href="LuCI.Class.html">LuCI.Class</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
-            
-                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
-            
-                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
-            
-                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
-            
-                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
-            
-                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.dom">
-            <span class="title">
-                <a href="LuCI.dom.html">LuCI.dom</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
-            
-                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
-            
-                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
-            
-                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
-            
-                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
-            
-                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
-            
-                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
-            
-                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
-            
-                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
-            
-                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.fs">
-            <span class="title">
-                <a href="LuCI.fs.html">LuCI.fs</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
-            
-                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
-            
-                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
-            
-                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
-            
-                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
-            
-                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
-            
-                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
-            
-                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Headers">
-            <span class="title">
-                <a href="LuCI.Headers.html">LuCI.Headers</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
-            
-                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network">
-            <span class="title">
-                <a href="LuCI.Network.html">LuCI.Network</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
-            
-                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
-            
-                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
-            
-                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
-            
-                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
-            
-                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
-            
-                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
-            
-                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
-            
-                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
-            
-                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
-            
-                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
-            
-                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
-            
-                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
-            
-                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
-            
-                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
-            
-                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
-            
-                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Device">
-            <span class="title">
-                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
-            
-                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
-            
-                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
-            
-                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
-            
-                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Hosts">
-            <span class="title">
-                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Protocol">
-            <span class="title">
-                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiDevice">
-            <span class="title">
-                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiNetwork">
-            <span class="title">
-                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Poll">
-            <span class="title">
-                <a href="LuCI.Poll.html">LuCI.Poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request">
-            <span class="title">
-                <a href="LuCI.Request.html">LuCI.Request</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
-            
-                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
-            
-                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
-            
-                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request.poll">
-            <span class="title">
-                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Response">
-            <span class="title">
-                <a href="LuCI.Response.html">LuCI.Response</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
-            
-                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
-            
-                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
-            
-                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
-            
-                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
-            
-                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
-            
-                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
-            
-                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.rpc">
-            <span class="title">
-                <a href="LuCI.rpc.html">LuCI.rpc</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
-            
-                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
-            
-                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
-            
-                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
-            
-                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
-            
-                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
-            
-                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.uci">
-            <span class="title">
-                <a href="LuCI.uci.html">LuCI.uci</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
-            
-                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
-            
-                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
-            
-                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
-            
-                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
-            
-                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
-            
-                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
-            
-                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
-            
-                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
-            
-                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
-            
-                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
-            
-                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
-            
-                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
-            
-                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
-            
-                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
-            
-                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
-            
-                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
-            
-                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.view">
-            <span class="title">
-                <a href="LuCI.view.html">LuCI.view</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
-            
-                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
-            
-                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
-            
-                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
-            
-                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
-            
-                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.XHR">
-            <span class="title">
-                <a href="LuCI.XHR.html">LuCI.XHR</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
-            
-                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
-            
-                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
-            
-                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
-            
-                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
-            
-                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-    </ul>
-</div>
-    <div class="main">
-        <h1 class="page-title" data-filename="LuCI.Poll.html">Class: Poll</h1>
-        
-
-
-
-<section>
-    
-<header>
-    <h2>
-        <span class="ancestors"><a href="LuCI.html">LuCI</a>.</span>
-    
-    Poll
-    </h2>
-    
-        <div class="class-description"><p>The <code>Poll</code> class allows registering and unregistering poll actions,
-as well as starting, stopping and querying the state of the polling
-loop.</p></div>
-    
-</header>  
-
-<article>
-    <div class="container-overview">
-    
-    
-    
-        
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="Poll">
-            
-            new LuCI.Poll<span class="signature">()</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 999
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-    
-    </div>
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-        <h3 class="subsection-title">Methods</h3>
-        
-        <dl>
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="active">
-            
-            active<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 1150
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Test whether the polling loop is running.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last"><ul>
-<li>Returns <code>true</code> if polling is active, else <code>false</code>.</li>
-</ul></td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="add">
-            
-            add<span class="signature">(fn, interval)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 1023
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Add a new operation to the polling loop. If the polling loop is not
-already started at this point, it will be implicitely started.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>fn</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">function</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The function to invoke on each poll interval.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>interval</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The poll interval in seconds.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    <h5>Throws:</h5>
-    
-            
-
-<dl>
-    <dt>
-        <div class="param-desc">
-        <p>Throws <code>TypeError</code> when an invalid interval was passed.</p>
-        </div>
-    </dt>
-    <dt>
-        <dl>
-            <dt>
-                Type
-            </dt>
-            <dd>
-                
-<span class="param-type">TypeError</span>
-
-
-            </dd>
-        </dl>
-    </dt>
-</dl>
-
-
-        
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> if the function has been added or <code>false</code> if it
-already is registered.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="remove">
-            
-            remove<span class="signature">(fn)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 1064
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Remove an operation from the polling loop. If no further operatons
-are registered, the polling loop is implicitely stopped.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>fn</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">function</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The function to remove.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    <h5>Throws:</h5>
-    
-            
-
-<dl>
-    <dt>
-        <div class="param-desc">
-        <p>Throws <code>TypeError</code> when the given argument isn't a function.</p>
-        </div>
-    </dt>
-    <dt>
-        <dl>
-            <dt>
-                Type
-            </dt>
-            <dd>
-                
-<span class="param-type">TypeError</span>
-
-
-            </dd>
-        </dl>
-    </dt>
-</dl>
-
-
-        
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> if the function has been removed or <code>false</code> if it
-wasn't found.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="start">
-            
-            start<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 1090
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>(Re)start the polling loop. Dispatches a custom <code>poll-start</code> event
-to the <code>document</code> object upon successful start.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> if polling has been started (or if no functions
-where registered) or <code>false</code> when the polling loop already runs.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="stop">
-            
-            stop<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 1115
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Stop the polling loop. Dispatches a custom <code>poll-stop</code> event
-to the <code>document</code> object upon successful stop.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> if polling has been stopped or <code>false</code> if it din't
-run to begin with.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        </dl>
-    
-    
-    
-    
-    
-
-    
-</article>
-
-</section>  
-
-
-
-
-
-        
-
-        <footer>
-            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
-        </footer>
-    </div>
-</div>
-<script>prettyPrint();</script>
-<script src="scripts/jaguar.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/documentation/jsapi/LuCI.Request.html b/documentation/jsapi/LuCI.Request.html
deleted file mode 100644 (file)
index 530bf9a..0000000
+++ /dev/null
@@ -1,2774 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8">
-    <title>Class: Request</title>
-    
-    
-    <script src="scripts/prettify/prettify.js"></script>
-    <script src="scripts/prettify/lang-css.js"></script>
-    <script src="scripts/jquery.min.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/bootstrap.min.css">
-    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
-    
-    
-    <script>
-    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
-    </script>
-    
-
-    
-</head>
-<body>
-<div id="wrap" class="clearfix">
-    
-<div class="navigation">
-    <h3 class="applicationName"><a href="index.html"></a></h3>
-
-    <div class="search">
-        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
-    </div>
-    <ul class="list">
-    
-        <li class="item" data-name="LuCI">
-            <span class="title">
-                <a href="LuCI.html">LuCI</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
-            
-                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
-            
-                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
-            
-                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
-            
-                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
-            
-                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
-            
-                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
-            
-                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
-            
-                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
-            
-                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
-            
-                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
-            
-                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
-            
-                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
-            
-                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
-            
-                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
-            
-                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
-            
-                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
-            
-                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
-            
-                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Class">
-            <span class="title">
-                <a href="LuCI.Class.html">LuCI.Class</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
-            
-                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
-            
-                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
-            
-                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
-            
-                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
-            
-                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.dom">
-            <span class="title">
-                <a href="LuCI.dom.html">LuCI.dom</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
-            
-                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
-            
-                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
-            
-                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
-            
-                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
-            
-                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
-            
-                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
-            
-                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
-            
-                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
-            
-                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.fs">
-            <span class="title">
-                <a href="LuCI.fs.html">LuCI.fs</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
-            
-                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
-            
-                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
-            
-                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
-            
-                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
-            
-                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
-            
-                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
-            
-                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Headers">
-            <span class="title">
-                <a href="LuCI.Headers.html">LuCI.Headers</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
-            
-                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network">
-            <span class="title">
-                <a href="LuCI.Network.html">LuCI.Network</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
-            
-                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
-            
-                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
-            
-                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
-            
-                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
-            
-                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
-            
-                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
-            
-                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
-            
-                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
-            
-                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
-            
-                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
-            
-                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
-            
-                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
-            
-                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
-            
-                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
-            
-                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
-            
-                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Device">
-            <span class="title">
-                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
-            
-                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
-            
-                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
-            
-                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
-            
-                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Hosts">
-            <span class="title">
-                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Protocol">
-            <span class="title">
-                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiDevice">
-            <span class="title">
-                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiNetwork">
-            <span class="title">
-                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Poll">
-            <span class="title">
-                <a href="LuCI.Poll.html">LuCI.Poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request">
-            <span class="title">
-                <a href="LuCI.Request.html">LuCI.Request</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
-            
-                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
-            
-                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
-            
-                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request.poll">
-            <span class="title">
-                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Response">
-            <span class="title">
-                <a href="LuCI.Response.html">LuCI.Response</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
-            
-                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
-            
-                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
-            
-                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
-            
-                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
-            
-                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
-            
-                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
-            
-                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.rpc">
-            <span class="title">
-                <a href="LuCI.rpc.html">LuCI.rpc</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
-            
-                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
-            
-                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
-            
-                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
-            
-                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
-            
-                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
-            
-                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.uci">
-            <span class="title">
-                <a href="LuCI.uci.html">LuCI.uci</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
-            
-                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
-            
-                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
-            
-                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
-            
-                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
-            
-                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
-            
-                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
-            
-                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
-            
-                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
-            
-                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
-            
-                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
-            
-                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
-            
-                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
-            
-                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
-            
-                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
-            
-                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
-            
-                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
-            
-                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.view">
-            <span class="title">
-                <a href="LuCI.view.html">LuCI.view</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
-            
-                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
-            
-                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
-            
-                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
-            
-                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
-            
-                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.XHR">
-            <span class="title">
-                <a href="LuCI.XHR.html">LuCI.XHR</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
-            
-                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
-            
-                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
-            
-                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
-            
-                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
-            
-                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-    </ul>
-</div>
-    <div class="main">
-        <h1 class="page-title" data-filename="LuCI.Request.html">Class: Request</h1>
-        
-
-
-
-<section>
-    
-<header>
-    <h2>
-        <span class="ancestors"><a href="LuCI.html">LuCI</a>.</span>
-    
-    Request
-    </h2>
-    
-        <div class="class-description"><p>The <code>Request</code> class allows initiating HTTP requests and provides utilities
-for dealing with responses.</p></div>
-    
-</header>  
-
-<article>
-    <div class="container-overview">
-    
-    
-    
-        
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="Request">
-            
-            new LuCI.Request<span class="signature">()</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 569
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-    
-    </div>
-    
-    
-    
-    
-    
-    
-    
-    
-        <h3 class="subsection-title">Classes</h3>
-        
-        <dl>
-            <dt><a href="LuCI.Request.poll.html">poll</a></dt>
-            <dd></dd>
-        </dl>
-    
-    
-    
-    
-    
-    
-    
-        <h3 class="subsection-title">Methods</h3>
-        
-        <dl>
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="addInterceptor">
-            
-            addInterceptor<span class="signature">(interceptorFn)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{<a href="LuCI.Request.html#.interceptorFn">LuCI.Request.interceptorFn</a>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 844
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Register an HTTP response interceptor function. Interceptor
-functions are useful to perform default actions on incoming HTTP
-responses, such as checking for expired authentication or for
-implementing request retries before returning a failure.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>interceptorFn</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type"><a href="LuCI.Request.html#.interceptorFn">LuCI.Request.interceptorFn</a></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The interceptor function to register.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        <a href="LuCI.Request.html#.interceptorFn">LuCI.Request.interceptorFn</a>
-                        
-                    
-            </td>
-            <td class="description last">The registered function.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="expandURL">
-            
-            expandURL<span class="signature">(url)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 586
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Turn the given relative URL into an absolute URL if necessary.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</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="description last">
-                
-                <p>The URL to convert.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">The absolute URL derived from the given one, or the original URL
-if it already was absolute.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="get">
-            
-            get<span class="signature">(target, <span class="optional">options</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;<a href="LuCI.Response.html">LuCI.Response</a>>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 797
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Initiate an HTTP GET request to the given target.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>target</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The URL to request.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>options</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type"><a href="LuCI.Request.html#.RequestOptions">LuCI.Request.RequestOptions</a></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>Additional options to configure the request.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;<a href="LuCI.Response.html">LuCI.Response</a>>
-                        
-                    
-            </td>
-            <td class="description last">The resulting HTTP response.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="post">
-            
-            post<span class="signature">(target, <span class="optional">data</span>, <span class="optional">options</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;<a href="LuCI.Response.html">LuCI.Response</a>>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 818
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Initiate an HTTP POST request to the given target.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>target</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The URL to request.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>data</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">*</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>The request data to send, see <a href="LuCI.Request.html#.RequestOptions"><code>LuCI.Request.RequestOptions</code></a> for details.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>options</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type"><a href="LuCI.Request.html#.RequestOptions">LuCI.Request.RequestOptions</a></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>Additional options to configure the request.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;<a href="LuCI.Response.html">LuCI.Response</a>>
-                        
-                    
-            </td>
-            <td class="description last">The resulting HTTP response.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="removeInterceptor">
-            
-            removeInterceptor<span class="signature">(interceptorFn)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 863
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Remove an HTTP response interceptor function. The passed function
-value must be the very same value that was used to register the
-function.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>interceptorFn</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type"><a href="LuCI.Request.html#.interceptorFn">LuCI.Request.interceptorFn</a></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The interceptor function to remove.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> if any function has been removed, else <code>false</code>.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="request">
-            
-            request<span class="signature">(target, <span class="optional">options</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;<a href="LuCI.Response.html">LuCI.Response</a>>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 648
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Initiate an HTTP request to the given target.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>target</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The URL to request.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>options</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type"><a href="LuCI.Request.html#.RequestOptions">LuCI.Request.RequestOptions</a></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>Additional options to configure the request.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;<a href="LuCI.Response.html">LuCI.Response</a>>
-                        
-                    
-            </td>
-            <td class="description last">The resulting HTTP response.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        </dl>
-    
-    
-    
-        <h3 class="subsection-title">Type Definitions</h3>
-        
-        <dl>
-                
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id=".interceptorFn">
-            
-            LuCI.Request.interceptorFn<span class="signature">(res)</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 822
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Interceptor functions are invoked whenever an HTTP reply is received, in the order
-these functions have been registered.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>res</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type"><a href="LuCI.Response.html">LuCI.Response</a></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The HTTP response object</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-            
-                
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id=".RequestOptions">LuCI.Request.RequestOptions<span class="type-signature type object">Object</span> </h4>
-    </div>
-    
-    
-</dt>
-<dd>
-    
-    
-    
-<dl class="details">
-    
-        
-        <h5 class="subsection-title">Properties:</h5>
-        
-        <dl>
-
-<table class="props">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               <th>Argument</th>
-               
-               
-               
-               <th>Default</th>
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>method</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    &lt;optional><br>
-                
-                    
-                
-                </td>
-            
-            
-            
-                <td class="default">
-                
-                    GET
-                
-                </td>
-            
-            
-            <td class="description last"><p>The HTTP method to use, e.g. <code>GET</code> or <code>POST</code>.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>query</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Object.&lt;string, (Object|string)></span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    &lt;optional><br>
-                
-                    
-                
-                </td>
-            
-            
-            
-                <td class="default">
-                
-                </td>
-            
-            
-            <td class="description last"><p>Query string data to append to the URL. Non-string values of the
-given object will be converted to JSON.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>cache</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"><p>Specifies whether the HTTP response may be retrieved from cache.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>username</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    &lt;optional><br>
-                
-                    
-                
-                </td>
-            
-            
-            
-                <td class="default">
-                
-                </td>
-            
-            
-            <td class="description last"><p>Provides a username for HTTP basic authentication.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>password</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    &lt;optional><br>
-                
-                    
-                
-                </td>
-            
-            
-            
-                <td class="default">
-                
-                </td>
-            
-            
-            <td class="description last"><p>Provides a password for HTTP basic authentication.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>timeout</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    &lt;optional><br>
-                
-                    
-                
-                </td>
-            
-            
-            
-                <td class="default">
-                
-                </td>
-            
-            
-            <td class="description last"><p>Specifies the request timeout in seconds.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>credentials</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"><p>Whether to include credentials such as cookies in the request.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>content</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">*</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    &lt;optional><br>
-                
-                    
-                
-                </td>
-            
-            
-            
-                <td class="default">
-                
-                </td>
-            
-            
-            <td class="description last"><p>Specifies the HTTP message body to send along with the request.
-If the value is a function, it is invoked and the return value
-used as content, if it is a FormData instance, it is used as-is,
-if it is an object, it will be converted to JSON, in all other
-cases it is converted to a string.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>header</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Object.&lt;string, string></span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    &lt;optional><br>
-                
-                    
-                
-                </td>
-            
-            
-            
-                <td class="default">
-                
-                </td>
-            
-            
-            <td class="description last"><p>Specifies HTTP headers to set for the request.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>progress</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">function</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    &lt;optional><br>
-                
-                    
-                
-                </td>
-            
-            
-            
-                <td class="default">
-                
-                </td>
-            
-            
-            <td class="description last"><p>An optional request callback function which receives ProgressEvent
-instances as sole argument during the HTTP request transfer.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table></dl>
-        
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-</dd>
-
-            </dl>
-    
-    
-    
-
-    
-</article>
-
-</section>  
-
-
-
-
-
-        
-
-        <footer>
-            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
-        </footer>
-    </div>
-</div>
-<script>prettyPrint();</script>
-<script src="scripts/jaguar.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/documentation/jsapi/LuCI.Request.poll.html b/documentation/jsapi/LuCI.Request.poll.html
deleted file mode 100644 (file)
index 656f911..0000000
+++ /dev/null
@@ -1,1997 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8">
-    <title>Class: poll</title>
-    
-    
-    <script src="scripts/prettify/prettify.js"></script>
-    <script src="scripts/prettify/lang-css.js"></script>
-    <script src="scripts/jquery.min.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/bootstrap.min.css">
-    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
-    
-    
-    <script>
-    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
-    </script>
-    
-
-    
-</head>
-<body>
-<div id="wrap" class="clearfix">
-    
-<div class="navigation">
-    <h3 class="applicationName"><a href="index.html"></a></h3>
-
-    <div class="search">
-        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
-    </div>
-    <ul class="list">
-    
-        <li class="item" data-name="LuCI">
-            <span class="title">
-                <a href="LuCI.html">LuCI</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
-            
-                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
-            
-                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
-            
-                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
-            
-                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
-            
-                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
-            
-                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
-            
-                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
-            
-                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
-            
-                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
-            
-                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
-            
-                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
-            
-                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
-            
-                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
-            
-                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
-            
-                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
-            
-                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
-            
-                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
-            
-                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Class">
-            <span class="title">
-                <a href="LuCI.Class.html">LuCI.Class</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
-            
-                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
-            
-                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
-            
-                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
-            
-                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
-            
-                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.dom">
-            <span class="title">
-                <a href="LuCI.dom.html">LuCI.dom</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
-            
-                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
-            
-                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
-            
-                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
-            
-                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
-            
-                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
-            
-                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
-            
-                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
-            
-                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
-            
-                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.fs">
-            <span class="title">
-                <a href="LuCI.fs.html">LuCI.fs</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
-            
-                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
-            
-                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
-            
-                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
-            
-                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
-            
-                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
-            
-                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
-            
-                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Headers">
-            <span class="title">
-                <a href="LuCI.Headers.html">LuCI.Headers</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
-            
-                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network">
-            <span class="title">
-                <a href="LuCI.Network.html">LuCI.Network</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
-            
-                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
-            
-                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
-            
-                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
-            
-                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
-            
-                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
-            
-                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
-            
-                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
-            
-                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
-            
-                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
-            
-                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
-            
-                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
-            
-                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
-            
-                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
-            
-                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
-            
-                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
-            
-                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Device">
-            <span class="title">
-                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
-            
-                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
-            
-                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
-            
-                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
-            
-                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Hosts">
-            <span class="title">
-                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Protocol">
-            <span class="title">
-                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiDevice">
-            <span class="title">
-                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiNetwork">
-            <span class="title">
-                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Poll">
-            <span class="title">
-                <a href="LuCI.Poll.html">LuCI.Poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request">
-            <span class="title">
-                <a href="LuCI.Request.html">LuCI.Request</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
-            
-                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
-            
-                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
-            
-                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request.poll">
-            <span class="title">
-                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Response">
-            <span class="title">
-                <a href="LuCI.Response.html">LuCI.Response</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
-            
-                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
-            
-                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
-            
-                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
-            
-                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
-            
-                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
-            
-                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
-            
-                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.rpc">
-            <span class="title">
-                <a href="LuCI.rpc.html">LuCI.rpc</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
-            
-                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
-            
-                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
-            
-                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
-            
-                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
-            
-                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
-            
-                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.uci">
-            <span class="title">
-                <a href="LuCI.uci.html">LuCI.uci</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
-            
-                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
-            
-                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
-            
-                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
-            
-                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
-            
-                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
-            
-                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
-            
-                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
-            
-                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
-            
-                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
-            
-                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
-            
-                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
-            
-                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
-            
-                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
-            
-                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
-            
-                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
-            
-                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
-            
-                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.view">
-            <span class="title">
-                <a href="LuCI.view.html">LuCI.view</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
-            
-                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
-            
-                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
-            
-                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
-            
-                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
-            
-                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.XHR">
-            <span class="title">
-                <a href="LuCI.XHR.html">LuCI.XHR</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
-            
-                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
-            
-                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
-            
-                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
-            
-                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
-            
-                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-    </ul>
-</div>
-    <div class="main">
-        <h1 class="page-title" data-filename="LuCI.Request.poll.html">Class: poll</h1>
-        
-
-
-
-<section>
-    
-<header>
-    <h2>
-        <span class="ancestors"><a href="LuCI.html">LuCI</a><a href="LuCI.Request.html">.Request</a>.</span>
-    
-    poll
-    </h2>
-    
-        <div class="class-description"><p>The <code>Request.poll</code> class provides some convience wrappers around
-<a href="LuCI.Poll.html"><code>LuCI.Poll</code></a> mainly to simplify registering repeating HTTP
-request calls as polling functions.</p></div>
-    
-</header>  
-
-<article>
-    <div class="container-overview">
-    
-    
-    
-        
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="poll">
-            
-            new LuCI.Request.poll<span class="signature">()</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 881
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-    
-    </div>
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-        <h3 class="subsection-title">Methods</h3>
-        
-        <dl>
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="active">
-            
-            active<span class="signature">()</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 985
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Alias for <code>LuCI.Poll.active()</code>.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="add">
-            
-            add<span class="signature">(interval, url, <span class="optional">options</span>, <span class="optional">callback</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{function}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 924
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Register a repeating HTTP request with an optional callback
-to invoke whenever a response for the request is received.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>interval</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The poll interval in seconds.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>url</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The URL to request on each poll.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>options</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type"><a href="LuCI.Request.html#.RequestOptions">LuCI.Request.RequestOptions</a></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>Additional options to configure the request.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>callback</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type"><a href="LuCI.Request.poll.html#~callbackFn">LuCI.Request.poll~callbackFn</a></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p><a href="LuCI.Request.poll.html#~callbackFn"><code>Callback</code></a> function to
-invoke for each HTTP reply.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    <h5>Throws:</h5>
-    
-            
-
-<dl>
-    <dt>
-        <div class="param-desc">
-        <p>Throws <code>TypeError</code> when an invalid interval was passed.</p>
-        </div>
-    </dt>
-    <dt>
-        <dl>
-            <dt>
-                Type
-            </dt>
-            <dd>
-                
-<span class="param-type">TypeError</span>
-
-
-            </dd>
-        </dl>
-    </dt>
-</dl>
-
-
-        
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        function
-                        
-                    
-            </td>
-            <td class="description last">Returns the internally created poll function.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="remove">
-            
-            remove<span class="signature">(entry)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 961
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Remove a polling request that has been previously added using <code>add()</code>.
-This function is essentially a wrapper around
-<code>LuCI.Poll.remove()</code>.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>entry</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">function</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The poll function returned by <a href="LuCI.Request.poll.html#add"><code>add()</code></a>.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> if any function has been removed, else <code>false</code>.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="start">
-            
-            start<span class="signature">()</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 969
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Alias for <code>LuCI.Poll.start()</code>.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="stop">
-            
-            stop<span class="signature">()</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 977
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Alias for <code>LuCI.Poll.stop()</code>.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-        </dl>
-    
-    
-    
-        <h3 class="subsection-title">Type Definitions</h3>
-        
-        <dl>
-                
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="~callbackFn">
-            
-            callbackFn<span class="signature">(res, data, duration)</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 882
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>The callback function is invoked whenever an HTTP reply to a
-polled request is received or when the polled request timed
-out.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>res</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type"><a href="LuCI.Response.html">LuCI.Response</a></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The HTTP response object.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>data</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">*</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The response JSON if the response could be parsed as such,
-else <code>null</code>.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>duration</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The total duration of the request in milliseconds.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-            </dl>
-    
-    
-    
-
-    
-</article>
-
-</section>  
-
-
-
-
-
-        
-
-        <footer>
-            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
-        </footer>
-    </div>
-</div>
-<script>prettyPrint();</script>
-<script src="scripts/jaguar.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/documentation/jsapi/LuCI.Response.html b/documentation/jsapi/LuCI.Response.html
deleted file mode 100644 (file)
index a7398ef..0000000
+++ /dev/null
@@ -1,1855 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8">
-    <title>Class: Response</title>
-    
-    
-    <script src="scripts/prettify/prettify.js"></script>
-    <script src="scripts/prettify/lang-css.js"></script>
-    <script src="scripts/jquery.min.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/bootstrap.min.css">
-    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
-    
-    
-    <script>
-    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
-    </script>
-    
-
-    
-</head>
-<body>
-<div id="wrap" class="clearfix">
-    
-<div class="navigation">
-    <h3 class="applicationName"><a href="index.html"></a></h3>
-
-    <div class="search">
-        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
-    </div>
-    <ul class="list">
-    
-        <li class="item" data-name="LuCI">
-            <span class="title">
-                <a href="LuCI.html">LuCI</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
-            
-                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
-            
-                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
-            
-                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
-            
-                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
-            
-                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
-            
-                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
-            
-                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
-            
-                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
-            
-                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
-            
-                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
-            
-                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
-            
-                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
-            
-                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
-            
-                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
-            
-                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
-            
-                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
-            
-                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
-            
-                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Class">
-            <span class="title">
-                <a href="LuCI.Class.html">LuCI.Class</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
-            
-                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
-            
-                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
-            
-                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
-            
-                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
-            
-                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.dom">
-            <span class="title">
-                <a href="LuCI.dom.html">LuCI.dom</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
-            
-                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
-            
-                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
-            
-                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
-            
-                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
-            
-                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
-            
-                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
-            
-                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
-            
-                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
-            
-                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.fs">
-            <span class="title">
-                <a href="LuCI.fs.html">LuCI.fs</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
-            
-                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
-            
-                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
-            
-                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
-            
-                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
-            
-                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
-            
-                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
-            
-                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Headers">
-            <span class="title">
-                <a href="LuCI.Headers.html">LuCI.Headers</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
-            
-                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network">
-            <span class="title">
-                <a href="LuCI.Network.html">LuCI.Network</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
-            
-                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
-            
-                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
-            
-                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
-            
-                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
-            
-                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
-            
-                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
-            
-                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
-            
-                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
-            
-                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
-            
-                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
-            
-                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
-            
-                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
-            
-                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
-            
-                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
-            
-                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
-            
-                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Device">
-            <span class="title">
-                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
-            
-                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
-            
-                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
-            
-                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
-            
-                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Hosts">
-            <span class="title">
-                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Protocol">
-            <span class="title">
-                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiDevice">
-            <span class="title">
-                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiNetwork">
-            <span class="title">
-                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Poll">
-            <span class="title">
-                <a href="LuCI.Poll.html">LuCI.Poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request">
-            <span class="title">
-                <a href="LuCI.Request.html">LuCI.Request</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
-            
-                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
-            
-                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
-            
-                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request.poll">
-            <span class="title">
-                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Response">
-            <span class="title">
-                <a href="LuCI.Response.html">LuCI.Response</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
-            
-                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
-            
-                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
-            
-                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
-            
-                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
-            
-                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
-            
-                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
-            
-                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.rpc">
-            <span class="title">
-                <a href="LuCI.rpc.html">LuCI.rpc</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
-            
-                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
-            
-                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
-            
-                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
-            
-                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
-            
-                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
-            
-                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.uci">
-            <span class="title">
-                <a href="LuCI.uci.html">LuCI.uci</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
-            
-                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
-            
-                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
-            
-                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
-            
-                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
-            
-                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
-            
-                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
-            
-                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
-            
-                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
-            
-                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
-            
-                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
-            
-                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
-            
-                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
-            
-                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
-            
-                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
-            
-                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
-            
-                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
-            
-                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.view">
-            <span class="title">
-                <a href="LuCI.view.html">LuCI.view</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
-            
-                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
-            
-                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
-            
-                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
-            
-                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
-            
-                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.XHR">
-            <span class="title">
-                <a href="LuCI.XHR.html">LuCI.XHR</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
-            
-                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
-            
-                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
-            
-                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
-            
-                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
-            
-                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-    </ul>
-</div>
-    <div class="main">
-        <h1 class="page-title" data-filename="LuCI.Response.html">Class: Response</h1>
-        
-
-
-
-<section>
-    
-<header>
-    <h2>
-        <span class="ancestors"><a href="LuCI.html">LuCI</a>.</span>
-    
-    Response
-    </h2>
-    
-        <div class="class-description"><p>The <code>Response</code> class is an internal utility class representing HTTP responses.</p></div>
-    
-</header>  
-
-<article>
-    <div class="container-overview">
-    
-    
-    
-        
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="Response">
-            
-            new LuCI.Response<span class="signature">()</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 377
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-    
-    </div>
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-        <h3 class="subsection-title">Members</h3>
-        
-        <dl>
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="duration">duration<span class="type-signature type number">number</span> </h4>
-    </div>
-    
-    
-</dt>
-<dd>
-    
-    <div class="description">
-        <p>The total duration of the HTTP request in milliseconds</p>
-    </div>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="headers">headers<span class="type-signature type luci.headers"><a href="LuCI.Headers.html">LuCI.Headers</a></span> </h4>
-    </div>
-    
-    
-</dt>
-<dd>
-    
-    <div class="description">
-        <p>The HTTP headers of the response</p>
-    </div>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="ok">ok<span class="type-signature type boolean">boolean</span> </h4>
-    </div>
-    
-    
-</dt>
-<dd>
-    
-    <div class="description">
-        <p>Describes whether the response is successful (status codes <code>200..299</code>) or not</p>
-    </div>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="status">status<span class="type-signature type number">number</span> </h4>
-    </div>
-    
-    
-</dt>
-<dd>
-    
-    <div class="description">
-        <p>The numeric HTTP status code of the response</p>
-    </div>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="statusText">statusText<span class="type-signature type string">string</span> </h4>
-    </div>
-    
-    
-</dt>
-<dd>
-    
-    <div class="description">
-        <p>The HTTP status description message of the response</p>
-    </div>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="url">url<span class="type-signature type string">string</span> </h4>
-    </div>
-    
-    
-</dt>
-<dd>
-    
-    <div class="description">
-        <p>The final URL of the request, i.e. after following redirects.</p>
-    </div>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-</dd>
-
-        </dl>
-    
-    
-    
-        <h3 class="subsection-title">Methods</h3>
-        
-        <dl>
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="clone">
-            
-            clone<span class="signature">(<span class="optional">content</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{<a href="LuCI.Response.html">LuCI.Response</a>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 465
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Clones the given response object, optionally overriding the content
-of the cloned instance.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>content</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">*</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>Override the content of the cloned response. Object values will be
-treated as JSON response data, all other types will be converted
-using <code>String()</code> and treated as response text.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        <a href="LuCI.Response.html">LuCI.Response</a>
-                        
-                    
-            </td>
-            <td class="description last">The cloned <code>Response</code> instance.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="json">
-            
-            json<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{*}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 486
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Access the response content as JSON data.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    <h5>Throws:</h5>
-    
-            
-
-<dl>
-    <dt>
-        <div class="param-desc">
-        <p>Throws <code>SyntaxError</code> if the content isn't valid JSON.</p>
-        </div>
-    </dt>
-    <dt>
-        <dl>
-            <dt>
-                Type
-            </dt>
-            <dd>
-                
-<span class="param-type">SyntaxError</span>
-
-
-            </dd>
-        </dl>
-    </dt>
-</dl>
-
-
-        
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        *
-                        
-                    
-            </td>
-            <td class="description last">The parsed JSON data.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="text">
-            
-            text<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 501
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Access the response content as string.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">The response content.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        </dl>
-    
-    
-    
-    
-    
-
-    
-</article>
-
-</section>  
-
-
-
-
-
-        
-
-        <footer>
-            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
-        </footer>
-    </div>
-</div>
-<script>prettyPrint();</script>
-<script src="scripts/jaguar.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/documentation/jsapi/LuCI.XHR.html b/documentation/jsapi/LuCI.XHR.html
deleted file mode 100644 (file)
index 5a17dfa..0000000
+++ /dev/null
@@ -1,2047 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8">
-    <title>Class: XHR</title>
-    
-    
-    <script src="scripts/prettify/prettify.js"></script>
-    <script src="scripts/prettify/lang-css.js"></script>
-    <script src="scripts/jquery.min.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/bootstrap.min.css">
-    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
-    
-    
-    <script>
-    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
-    </script>
-    
-
-    
-</head>
-<body>
-<div id="wrap" class="clearfix">
-    
-<div class="navigation">
-    <h3 class="applicationName"><a href="index.html"></a></h3>
-
-    <div class="search">
-        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
-    </div>
-    <ul class="list">
-    
-        <li class="item" data-name="LuCI">
-            <span class="title">
-                <a href="LuCI.html">LuCI</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
-            
-                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
-            
-                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
-            
-                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
-            
-                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
-            
-                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
-            
-                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
-            
-                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
-            
-                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
-            
-                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
-            
-                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
-            
-                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
-            
-                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
-            
-                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
-            
-                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
-            
-                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
-            
-                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
-            
-                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
-            
-                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Class">
-            <span class="title">
-                <a href="LuCI.Class.html">LuCI.Class</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
-            
-                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
-            
-                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
-            
-                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
-            
-                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
-            
-                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.dom">
-            <span class="title">
-                <a href="LuCI.dom.html">LuCI.dom</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
-            
-                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
-            
-                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
-            
-                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
-            
-                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
-            
-                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
-            
-                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
-            
-                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
-            
-                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
-            
-                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.fs">
-            <span class="title">
-                <a href="LuCI.fs.html">LuCI.fs</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
-            
-                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
-            
-                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
-            
-                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
-            
-                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
-            
-                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
-            
-                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
-            
-                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Headers">
-            <span class="title">
-                <a href="LuCI.Headers.html">LuCI.Headers</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
-            
-                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network">
-            <span class="title">
-                <a href="LuCI.Network.html">LuCI.Network</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
-            
-                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
-            
-                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
-            
-                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
-            
-                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
-            
-                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
-            
-                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
-            
-                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
-            
-                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
-            
-                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
-            
-                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
-            
-                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
-            
-                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
-            
-                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
-            
-                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
-            
-                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
-            
-                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Device">
-            <span class="title">
-                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
-            
-                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
-            
-                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
-            
-                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
-            
-                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Hosts">
-            <span class="title">
-                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Protocol">
-            <span class="title">
-                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiDevice">
-            <span class="title">
-                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiNetwork">
-            <span class="title">
-                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Poll">
-            <span class="title">
-                <a href="LuCI.Poll.html">LuCI.Poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request">
-            <span class="title">
-                <a href="LuCI.Request.html">LuCI.Request</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
-            
-                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
-            
-                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
-            
-                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request.poll">
-            <span class="title">
-                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Response">
-            <span class="title">
-                <a href="LuCI.Response.html">LuCI.Response</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
-            
-                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
-            
-                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
-            
-                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
-            
-                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
-            
-                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
-            
-                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
-            
-                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.rpc">
-            <span class="title">
-                <a href="LuCI.rpc.html">LuCI.rpc</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
-            
-                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
-            
-                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
-            
-                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
-            
-                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
-            
-                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
-            
-                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.uci">
-            <span class="title">
-                <a href="LuCI.uci.html">LuCI.uci</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
-            
-                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
-            
-                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
-            
-                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
-            
-                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
-            
-                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
-            
-                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
-            
-                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
-            
-                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
-            
-                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
-            
-                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
-            
-                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
-            
-                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
-            
-                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
-            
-                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
-            
-                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
-            
-                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
-            
-                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.view">
-            <span class="title">
-                <a href="LuCI.view.html">LuCI.view</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
-            
-                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
-            
-                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
-            
-                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
-            
-                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
-            
-                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.XHR">
-            <span class="title">
-                <a href="LuCI.XHR.html">LuCI.XHR</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
-            
-                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
-            
-                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
-            
-                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
-            
-                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
-            
-                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-    </ul>
-</div>
-    <div class="main">
-        <h1 class="page-title" data-filename="LuCI.XHR.html">Class: XHR</h1>
-        
-
-
-
-<section>
-    
-<header>
-    <h2>
-        <span class="ancestors"><a href="LuCI.html">LuCI</a>.</span>
-    
-    XHR
-    </h2>
-    
-        <div class="class-description"><p>The <code>LuCI.XHR</code> class is a legacy compatibility shim for the
-functionality formerly provided by <code>xhr.js</code>. It is registered as global
-<code>window.XHR</code> symbol for compatibility with legacy code.</p>
-<p>New code should use <a href="LuCI.Request.html"><code>LuCI.Request</code></a> instead to implement HTTP
-request handling.</p></div>
-    
-</header>  
-
-<article>
-    <div class="container-overview">
-    
-    
-    
-        
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="XHR">
-            
-            new LuCI.XHR<span class="signature">()</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 2943
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-        <dt class="important tag-deprecated">Deprecated</dt><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd>
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-    
-    </div>
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-        <h3 class="subsection-title">Methods</h3>
-        
-        <dl>
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="abort">
-            
-            abort<span class="signature">()</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 3046
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Ignored for backwards compatibility.</p>
-<p>This function does nothing.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-        <dt class="important tag-deprecated">Deprecated</dt><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd>
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="busy">
-            
-            busy<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 3035
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Checks the running state of the request.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-        <dt class="important tag-deprecated">Deprecated</dt><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd>
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> if the request is still running or <code>false</code> if it
-already completed.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="cancel">
-            
-            cancel<span class="signature">()</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 3022
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Cancels a running request.</p>
-<p>This function does not actually cancel the underlying
-<code>XMLHTTPRequest</code> request but it sets a flag which prevents the
-invocation of the callback function when the request eventually
-finishes or timed out.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-        <dt class="important tag-deprecated">Deprecated</dt><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd>
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="get">
-            
-            get<span class="signature">(url, <span class="optional">data</span>, <span class="optional">callback</span>, <span class="optional">timeout</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;null>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 2978
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>This function is a legacy wrapper around
-<a href="LuCI.html#get"><code>LuCI.get()</code></a>.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</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="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The URL to request</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>data</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Object</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>Additional query string data</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>callback</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type"><a href="LuCI.html#.requestCallbackFn">LuCI.requestCallbackFn</a></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>Callback function to invoke on completion</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>timeout</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>Request timeout to use</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-        <dt class="important tag-deprecated">Deprecated</dt><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd>
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;null>
-                        
-                    
-            </td>
-            <td class="description last"></td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="post">
-            
-            post<span class="signature">(url, <span class="optional">data</span>, <span class="optional">callback</span>, <span class="optional">timeout</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;null>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 3005
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>This function is a legacy wrapper around
-<a href="LuCI.html#post"><code>LuCI.post()</code></a>.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</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="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The URL to request</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>data</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Object</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>Additional data to append to the request body.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>callback</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type"><a href="LuCI.html#.requestCallbackFn">LuCI.requestCallbackFn</a></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>Callback function to invoke on completion</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>timeout</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>Request timeout to use</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-        <dt class="important tag-deprecated">Deprecated</dt><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd>
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;null>
-                        
-                    
-            </td>
-            <td class="description last"></td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="send_form">
-            
-            send_form<span class="signature">()</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 3061
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Existing for backwards compatibility.</p>
-<p>This function simply throws an <code>InternalError</code> when invoked.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-        <dt class="important tag-deprecated">Deprecated</dt><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd>
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    <h5>Throws:</h5>
-    
-            
-
-<dl>
-    <dt>
-        <div class="param-desc">
-        <p>Throws an <code>InternalError</code> with the message <code>Not implemented</code>
-when invoked.</p>
-        </div>
-    </dt>
-    <dt>
-        <dl>
-            <dt>
-                Type
-            </dt>
-            <dd>
-                
-<span class="param-type">InternalError</span>
-
-
-            </dd>
-        </dl>
-    </dt>
-</dl>
-
-
-        
-    
-    
-    
-    
-</dd>
-
-        </dl>
-    
-    
-    
-    
-    
-
-    
-</article>
-
-</section>  
-
-
-
-
-
-        
-
-        <footer>
-            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
-        </footer>
-    </div>
-</div>
-<script>prettyPrint();</script>
-<script src="scripts/jaguar.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/documentation/jsapi/LuCI.dom.html b/documentation/jsapi/LuCI.dom.html
deleted file mode 100644 (file)
index 8412eb3..0000000
+++ /dev/null
@@ -1,3878 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8">
-    <title>Class: dom</title>
-    
-    
-    <script src="scripts/prettify/prettify.js"></script>
-    <script src="scripts/prettify/lang-css.js"></script>
-    <script src="scripts/jquery.min.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/bootstrap.min.css">
-    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
-    
-    
-    <script>
-    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
-    </script>
-    
-
-    
-</head>
-<body>
-<div id="wrap" class="clearfix">
-    
-<div class="navigation">
-    <h3 class="applicationName"><a href="index.html"></a></h3>
-
-    <div class="search">
-        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
-    </div>
-    <ul class="list">
-    
-        <li class="item" data-name="LuCI">
-            <span class="title">
-                <a href="LuCI.html">LuCI</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
-            
-                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
-            
-                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
-            
-                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
-            
-                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
-            
-                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
-            
-                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
-            
-                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
-            
-                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
-            
-                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
-            
-                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
-            
-                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
-            
-                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
-            
-                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
-            
-                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
-            
-                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
-            
-                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
-            
-                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
-            
-                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Class">
-            <span class="title">
-                <a href="LuCI.Class.html">LuCI.Class</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
-            
-                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
-            
-                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
-            
-                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
-            
-                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
-            
-                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.dom">
-            <span class="title">
-                <a href="LuCI.dom.html">LuCI.dom</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
-            
-                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
-            
-                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
-            
-                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
-            
-                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
-            
-                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
-            
-                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
-            
-                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
-            
-                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
-            
-                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.fs">
-            <span class="title">
-                <a href="LuCI.fs.html">LuCI.fs</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
-            
-                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
-            
-                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
-            
-                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
-            
-                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
-            
-                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
-            
-                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
-            
-                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Headers">
-            <span class="title">
-                <a href="LuCI.Headers.html">LuCI.Headers</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
-            
-                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network">
-            <span class="title">
-                <a href="LuCI.Network.html">LuCI.Network</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
-            
-                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
-            
-                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
-            
-                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
-            
-                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
-            
-                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
-            
-                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
-            
-                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
-            
-                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
-            
-                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
-            
-                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
-            
-                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
-            
-                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
-            
-                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
-            
-                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
-            
-                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
-            
-                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Device">
-            <span class="title">
-                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
-            
-                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
-            
-                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
-            
-                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
-            
-                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Hosts">
-            <span class="title">
-                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Protocol">
-            <span class="title">
-                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiDevice">
-            <span class="title">
-                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiNetwork">
-            <span class="title">
-                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Poll">
-            <span class="title">
-                <a href="LuCI.Poll.html">LuCI.Poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request">
-            <span class="title">
-                <a href="LuCI.Request.html">LuCI.Request</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
-            
-                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
-            
-                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
-            
-                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request.poll">
-            <span class="title">
-                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Response">
-            <span class="title">
-                <a href="LuCI.Response.html">LuCI.Response</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
-            
-                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
-            
-                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
-            
-                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
-            
-                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
-            
-                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
-            
-                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
-            
-                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.rpc">
-            <span class="title">
-                <a href="LuCI.rpc.html">LuCI.rpc</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
-            
-                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
-            
-                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
-            
-                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
-            
-                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
-            
-                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
-            
-                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.uci">
-            <span class="title">
-                <a href="LuCI.uci.html">LuCI.uci</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
-            
-                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
-            
-                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
-            
-                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
-            
-                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
-            
-                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
-            
-                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
-            
-                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
-            
-                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
-            
-                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
-            
-                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
-            
-                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
-            
-                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
-            
-                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
-            
-                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
-            
-                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
-            
-                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
-            
-                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.view">
-            <span class="title">
-                <a href="LuCI.view.html">LuCI.view</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
-            
-                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
-            
-                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
-            
-                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
-            
-                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
-            
-                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.XHR">
-            <span class="title">
-                <a href="LuCI.XHR.html">LuCI.XHR</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
-            
-                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
-            
-                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
-            
-                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
-            
-                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
-            
-                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-    </ul>
-</div>
-    <div class="main">
-        <h1 class="page-title" data-filename="LuCI.dom.html">Class: dom</h1>
-        
-
-
-
-<section>
-    
-<header>
-    <h2>
-        <span class="ancestors"><a href="LuCI.html">LuCI</a>.</span>
-    
-    dom
-    </h2>
-    
-        <div class="class-description"><p>The <code>dom</code> class provides convenience method for creating and
-manipulating DOM elements.</p></div>
-    
-</header>  
-
-<article>
-    <div class="container-overview">
-    
-    
-    
-        
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="dom">
-            
-            new LuCI.dom<span class="signature">()</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 2065
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-    
-    </div>
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-        <h3 class="subsection-title">Methods</h3>
-        
-        <dl>
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="append">
-            
-            append<span class="signature">(node, <span class="optional">children</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Node|null}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 2216
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Appends the given children data to the given node.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>node</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">*</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The <code>Node</code> argument to append the children to.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>children</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">*</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>The childrens to append to the given node.</p>
-<p>When <code>children</code> is an array, then each item of the array
-will be either appended as child element or text node,
-depending on whether the item is a DOM <code>Node</code> instance or
-some other non-<code>null</code> value. Non-<code>Node</code>, non-<code>null</code> values
-will be converted to strings first before being passed as
-argument to <code>createTextNode()</code>.</p>
-<p>When <code>children</code> is a function, it will be invoked with
-the passed <code>node</code> argument as sole parameter and the <code>append</code>
-function will be invoked again, with the given <code>node</code> argument
-as first and the return value of the <code>children</code> function as
-second parameter.</p>
-<p>When <code>children</code> is is a DOM <code>Node</code> instance, it will be
-appended to the given <code>node</code>.</p>
-<p>When <code>children</code> is any other non-<code>null</code> value, it will be
-converted to a string and appened to the <code>innerHTML</code> property
-of the given <code>node</code>.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Node
-                         | 
-                    
-                        null
-                        
-                    
-            </td>
-            <td class="description last">Returns the last children <code>Node</code> appended to the node or <code>null</code>
-if either the <code>node</code> argument was no valid DOM <code>node</code> or if the
-<code>children</code> was <code>null</code> or didn't result in further DOM nodes.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="attr">
-            
-            attr<span class="signature">(node, key, <span class="optional">val</span>)</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 2331
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Sets attributes or registers event listeners on element nodes.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>node</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">*</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The <code>Node</code> argument to set the attributes or add the event
-listeners for. When the given <code>node</code> value is not a valid
-DOM <code>Node</code>, the function returns and does nothing.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>key</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-|
-
-<span class="param-type">Object.&lt;string, *></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>Specifies either the attribute or event handler name to use,
-or an object containing multiple key, value pairs which are
-each added to the node as either attribute or event handler,
-depending on the respective value.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>val</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">*</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>Specifies the attribute value or event handler function to add.
-If the <code>key</code> parameter is an <code>Object</code>, this parameter will be
-ignored.</p>
-<p>When <code>val</code> is of type function, it will be registered as event
-handler on the given <code>node</code> with the <code>key</code> parameter being the
-event name.</p>
-<p>When <code>val</code> is of type object, it will be serialized as JSON and
-added as attribute to the given <code>node</code>, using the given <code>key</code>
-as attribute name.</p>
-<p>When <code>val</code> is of any other type, it will be added as attribute
-to the given <code>node</code> as-is, with the underlying <code>setAttribute()</code>
-call implicitely turning it into a string.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="bindClassInstance">
-            
-            bindClassInstance<span class="signature">(node, inst)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Class}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 2565
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Binds the given class instance ot the specified DOM <code>Node</code>.</p>
-<p>This function uses the <code>dom.data()</code> facility to attach the
-passed instance of a Class to a node. This is needed for
-complex widget elements or similar where the corresponding
-class instance responsible for the element must be retrieved
-from DOM nodes obtained by <code>querySelector()</code> or similar means.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>node</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Node</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The DOM <code>Node</code> instance to bind the class to.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>inst</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Class</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The Class instance to bind to the node.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    <h5>Throws:</h5>
-    
-            
-
-<dl>
-    <dt>
-        <div class="param-desc">
-        <p>Throws a <code>TypeError</code> when the given instance argument isn't
-a valid Class instance.</p>
-        </div>
-    </dt>
-    <dt>
-        <dl>
-            <dt>
-                Type
-            </dt>
-            <dd>
-                
-<span class="param-type">TypeError</span>
-
-
-            </dd>
-        </dl>
-    </dt>
-</dl>
-
-
-        
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Class
-                        
-                    
-            </td>
-            <td class="description last">Returns the bound class instance.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="callClassMethod">
-            
-            callClassMethod<span class="signature">(node, method, params)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{*|null}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 2619
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Finds a bound class instance on the given node itself or the
-first bound instance on its closest parent node and invokes
-the specified method name on the found class instance.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>node</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Node</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The DOM <code>Node</code> instance to start from.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>method</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The name of the method to invoke on the found class instance.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>params</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">*</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                        <span class="repeatable">repeatable</span>
-                    
-                
-                <p>Additional arguments to pass to the invoked method as-is.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        *
-                         | 
-                    
-                        null
-                        
-                    
-            </td>
-            <td class="description last">Returns the return value of the invoked method if a class
-instance and method has been found. Returns <code>null</code> if either
-no bound class instance could be found, or if the found
-instance didn't have the requested <code>method</code>.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="content">
-            
-            content<span class="signature">(node, <span class="optional">children</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Node|null}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 2283
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Replaces the content of the given node with the given children.</p>
-<p>This function first removes any children of the given DOM
-<code>Node</code> and then adds the given given children following the
-rules outlined below.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>node</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">*</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The <code>Node</code> argument to replace the children of.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>children</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">*</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>The childrens to replace into the given node.</p>
-<p>When <code>children</code> is an array, then each item of the array
-will be either appended as child element or text node,
-depending on whether the item is a DOM <code>Node</code> instance or
-some other non-<code>null</code> value. Non-<code>Node</code>, non-<code>null</code> values
-will be converted to strings first before being passed as
-argument to <code>createTextNode()</code>.</p>
-<p>When <code>children</code> is a function, it will be invoked with
-the passed <code>node</code> argument as sole parameter and the <code>append</code>
-function will be invoked again, with the given <code>node</code> argument
-as first and the return value of the <code>children</code> function as
-second parameter.</p>
-<p>When <code>children</code> is is a DOM <code>Node</code> instance, it will be
-appended to the given <code>node</code>.</p>
-<p>When <code>children</code> is any other non-<code>null</code> value, it will be
-converted to a string and appened to the <code>innerHTML</code> property
-of the given <code>node</code>.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Node
-                         | 
-                    
-                        null
-                        
-                    
-            </td>
-            <td class="description last">Returns the last children <code>Node</code> appended to the node or <code>null</code>
-if either the <code>node</code> argument was no valid DOM <code>node</code> or if the
-<code>children</code> was <code>null</code> or didn't result in further DOM nodes.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="create">
-            
-            create<span class="signature">(html, <span class="optional">attr</span>, <span class="optional">data</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Node}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 2409
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Creates a new DOM <code>Node</code> from the given <code>html</code>, <code>attr</code> and
-<code>data</code> parameters.</p>
-<p>This function has multiple signatures, it can be either invoked
-in the form <code>create(html[, attr[, data]])</code> or in the form
-<code>create(html[, data])</code>. The used variant is determined from the
-type of the second argument.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>html</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">*</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>Describes the node to create.</p>
-<p>When the value of <code>html</code> is of type array, a <code>DocumentFragment</code>
-node is created and each item of the array is first converted
-to a DOM <code>Node</code> by passing it through <code>create()</code> and then added
-as child to the fragment.</p>
-<p>When the value of <code>html</code> is a DOM <code>Node</code> instance, no new
-element will be created but the node will be used as-is.</p>
-<p>When the value of <code>html</code> is a string starting with <code>&lt;</code>, it will
-be passed to <code>dom.parse()</code> and the resulting value is used.</p>
-<p>When the value of <code>html</code> is any other string, it will be passed
-to <code>document.createElement()</code> for creating a new DOM <code>Node</code> of
-the given name.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>attr</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Object.&lt;string, *></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>Specifies an Object of key, value pairs to set as attributes
-or event handlers on the created node. Refer to
-<a href="LuCI.dom.html#attr"><code>dom.attr()</code></a> for details.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>data</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">*</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>Specifies children to append to the newly created element.
-Refer to <a href="LuCI.dom.html#append"><code>dom.append()</code></a> for details.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    <h5>Throws:</h5>
-    
-            
-
-<dl>
-    <dt>
-        <div class="param-desc">
-        <p>Throws an <code>InvalidCharacterError</code> when the given <code>html</code>
-argument contained malformed markup (such as not escaped
-<code>&amp;</code> characters in XHTML mode) or when the given node name
-in <code>html</code> contains characters which are not legal in DOM
-element names, such as spaces.</p>
-        </div>
-    </dt>
-    <dt>
-        <dl>
-            <dt>
-                Type
-            </dt>
-            <dd>
-                
-<span class="param-type">InvalidCharacterError</span>
-
-
-            </dd>
-        </dl>
-    </dt>
-</dl>
-
-
-        
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Node
-                        
-                    
-            </td>
-            <td class="description last">Returns the newly created <code>Node</code>.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="data">
-            
-            data<span class="signature">(node, <span class="optional">key</span>, <span class="optional">val</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{*}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 2485
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Attaches or detaches arbitrary data to and from a DOM <code>Node</code>.</p>
-<p>This function is useful to attach non-string values or runtime
-data that is not serializable to DOM nodes. To decouple data
-from the DOM, values are not added directly to nodes, but
-inserted into a registry instead which is then referenced by a
-string key stored as <code>data-idref</code> attribute in the node.</p>
-<p>This function has multiple signatures and is sensitive to the
-number of arguments passed to it.</p>
-<ul>
-<li><code>dom.data(node)</code> -
-Fetches all data associated with the given node.</li>
-<li><code>dom.data(node, key)</code> -
-Fetches a specific key associated with the given node.</li>
-<li><code>dom.data(node, key, val)</code> -
-Sets a specific key to the given value associated with the
-given node.</li>
-<li><code>dom.data(node, null)</code> -
-Clears any data associated with the node.</li>
-<li><code>dom.data(node, key, null)</code> -
-Clears the given key associated with the node.</li>
-</ul>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>node</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Node</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The DOM <code>Node</code> instance to set or retrieve the data for.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>key</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-|
-
-<span class="param-type">null</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>This is either a string specifying the key to retrieve, or
-<code>null</code> to unset the entire node data.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>val</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">*</span>
-|
-
-<span class="param-type">null</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>This is either a non-<code>null</code> value to set for a given key or
-<code>null</code> to remove the given <code>key</code> from the specified node.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        *
-                        
-                    
-            </td>
-            <td class="description last">Returns the get or set value, or <code>null</code> when no value could
-be found.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="elem">
-            
-            elem<span class="signature">(e)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 2079
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Tests whether the given argument is a valid DOM <code>Node</code>.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<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">*</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The value to test.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> if the value is a DOM <code>Node</code>, else <code>false</code>.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="findClassInstance">
-            
-            findClassInstance<span class="signature">(node)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Class|null}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 2585
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Finds a bound class instance on the given node itself or the
-first bound instance on its closest parent node.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>node</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Node</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The DOM <code>Node</code> instance to start from.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Class
-                         | 
-                    
-                        null
-                        
-                    
-            </td>
-            <td class="description last">Returns the founds class instance if any or <code>null</code> if no bound
-class could be found on the node itself or any of its parents.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="isEmpty">
-            
-            isEmpty<span class="signature">(node, <span class="optional">ignoreFn</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 2665
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Tests whether a given DOM <code>Node</code> instance is empty or appears
-empty.</p>
-<p>Any element child nodes which have the CSS class <code>hidden</code> set
-or for which the optionally passed <code>ignoreFn</code> callback function
-returns <code>false</code> are ignored.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>node</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Node</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The DOM <code>Node</code> instance to test.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>ignoreFn</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type"><a href="LuCI.dom.html#~ignoreCallbackFn">LuCI.dom~ignoreCallbackFn</a></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>Specifies an optional function which is invoked for each child
-node to decide whether the child node should be ignored or not.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> if the node does not have any children or if
-any children node either has a <code>hidden</code> CSS class or a <code>false</code>
-result when testing it using the given <code>ignoreFn</code>.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="matches">
-            
-            matches<span class="signature">(node, <span class="optional">selector</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 2140
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Tests whether a given <code>Node</code> matches the given query selector.</p>
-<p>This function is a convenience wrapper around the standard
-<code>Node.matches(&quot;selector&quot;)</code> function with the added benefit that
-the <code>node</code> argument may be a non-<code>Node</code> value, in which case
-this function simply returns <code>false</code>.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>node</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">*</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The <code>Node</code> argument to test the selector against.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>selector</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>The query selector expression to test against the given node.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> if the given node matches the specified selector
-or <code>false</code> when the node argument is no valid DOM <code>Node</code> or the
-selector didn't match.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="parent">
-            
-            parent<span class="signature">(node, <span class="optional">selector</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Node|null}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 2167
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Returns the closest parent node that matches the given query
-selector expression.</p>
-<p>This function is a convenience wrapper around the standard
-<code>Node.closest(&quot;selector&quot;)</code> function with the added benefit that
-the <code>node</code> argument may be a non-<code>Node</code> value, in which case
-this function simply returns <code>null</code>.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>node</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">*</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The <code>Node</code> argument to find the closest parent for.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>selector</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>The query selector expression to test against each parent.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Node
-                         | 
-                    
-                        null
-                        
-                    
-            </td>
-            <td class="description last">Returns the closest parent node matching the selector or
-<code>null</code> when the node argument is no valid DOM <code>Node</code> or the
-selector didn't match any parent.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="parse">
-            
-            parse<span class="signature">(s)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Node}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 2098
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Parses a given string as HTML and returns the first child node.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>s</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>A string containing an HTML fragment to parse. Note that only
-the first result of the resulting structure is returned, so an
-input value of <code>&lt;div&gt;foo&lt;/div&gt; &lt;div&gt;bar&lt;/div&gt;</code> will only return
-the first <code>div</code> element node.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Node
-                        
-                    
-            </td>
-            <td class="description last">Returns the first DOM <code>Node</code> extracted from the HTML fragment or
-<code>null</code> on parsing failures or if no element could be found.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        </dl>
-    
-    
-    
-        <h3 class="subsection-title">Type Definitions</h3>
-        
-        <dl>
-                
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="~ignoreCallbackFn">
-            
-            ignoreCallbackFn<span class="signature">(node)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 2628
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>The ignore callback function is invoked by <code>isEmpty()</code> for each
-child node to decide whether to ignore a child node or not.</p>
-<p>When this function returns <code>false</code>, the node passed to it is
-ignored, else not.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>node</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Node</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The child node to test.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Boolean indicating whether to ignore the node or not.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-            </dl>
-    
-    
-    
-
-    
-</article>
-
-</section>  
-
-
-
-
-
-        
-
-        <footer>
-            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
-        </footer>
-    </div>
-</div>
-<script>prettyPrint();</script>
-<script src="scripts/jaguar.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/documentation/jsapi/LuCI.fs.html b/documentation/jsapi/LuCI.fs.html
deleted file mode 100644 (file)
index cfc0dc9..0000000
+++ /dev/null
@@ -1,2987 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8">
-    <title>Class: fs</title>
-    
-    
-    <script src="scripts/prettify/prettify.js"></script>
-    <script src="scripts/prettify/lang-css.js"></script>
-    <script src="scripts/jquery.min.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/bootstrap.min.css">
-    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
-    
-    
-    <script>
-    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
-    </script>
-    
-
-    
-</head>
-<body>
-<div id="wrap" class="clearfix">
-    
-<div class="navigation">
-    <h3 class="applicationName"><a href="index.html"></a></h3>
-
-    <div class="search">
-        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
-    </div>
-    <ul class="list">
-    
-        <li class="item" data-name="LuCI">
-            <span class="title">
-                <a href="LuCI.html">LuCI</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
-            
-                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
-            
-                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
-            
-                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
-            
-                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
-            
-                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
-            
-                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
-            
-                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
-            
-                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
-            
-                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
-            
-                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
-            
-                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
-            
-                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
-            
-                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
-            
-                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
-            
-                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
-            
-                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
-            
-                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
-            
-                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Class">
-            <span class="title">
-                <a href="LuCI.Class.html">LuCI.Class</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
-            
-                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
-            
-                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
-            
-                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
-            
-                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
-            
-                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.dom">
-            <span class="title">
-                <a href="LuCI.dom.html">LuCI.dom</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
-            
-                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
-            
-                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
-            
-                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
-            
-                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
-            
-                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
-            
-                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
-            
-                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
-            
-                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
-            
-                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.fs">
-            <span class="title">
-                <a href="LuCI.fs.html">LuCI.fs</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
-            
-                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
-            
-                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
-            
-                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
-            
-                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
-            
-                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
-            
-                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
-            
-                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Headers">
-            <span class="title">
-                <a href="LuCI.Headers.html">LuCI.Headers</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
-            
-                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network">
-            <span class="title">
-                <a href="LuCI.Network.html">LuCI.Network</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
-            
-                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
-            
-                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
-            
-                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
-            
-                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
-            
-                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
-            
-                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
-            
-                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
-            
-                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
-            
-                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
-            
-                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
-            
-                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
-            
-                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
-            
-                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
-            
-                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
-            
-                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
-            
-                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Device">
-            <span class="title">
-                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
-            
-                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
-            
-                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
-            
-                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
-            
-                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Hosts">
-            <span class="title">
-                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Protocol">
-            <span class="title">
-                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiDevice">
-            <span class="title">
-                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiNetwork">
-            <span class="title">
-                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Poll">
-            <span class="title">
-                <a href="LuCI.Poll.html">LuCI.Poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request">
-            <span class="title">
-                <a href="LuCI.Request.html">LuCI.Request</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
-            
-                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
-            
-                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
-            
-                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request.poll">
-            <span class="title">
-                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Response">
-            <span class="title">
-                <a href="LuCI.Response.html">LuCI.Response</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
-            
-                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
-            
-                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
-            
-                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
-            
-                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
-            
-                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
-            
-                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
-            
-                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.rpc">
-            <span class="title">
-                <a href="LuCI.rpc.html">LuCI.rpc</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
-            
-                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
-            
-                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
-            
-                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
-            
-                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
-            
-                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
-            
-                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.uci">
-            <span class="title">
-                <a href="LuCI.uci.html">LuCI.uci</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
-            
-                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
-            
-                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
-            
-                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
-            
-                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
-            
-                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
-            
-                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
-            
-                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
-            
-                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
-            
-                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
-            
-                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
-            
-                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
-            
-                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
-            
-                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
-            
-                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
-            
-                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
-            
-                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
-            
-                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.view">
-            <span class="title">
-                <a href="LuCI.view.html">LuCI.view</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
-            
-                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
-            
-                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
-            
-                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
-            
-                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
-            
-                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.XHR">
-            <span class="title">
-                <a href="LuCI.XHR.html">LuCI.XHR</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
-            
-                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
-            
-                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
-            
-                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
-            
-                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
-            
-                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-    </ul>
-</div>
-    <div class="main">
-        <h1 class="page-title" data-filename="LuCI.fs.html">Class: fs</h1>
-        
-
-
-
-<section>
-    
-<header>
-    <h2>
-        <span class="ancestors"><a href="LuCI.html">LuCI</a>.</span>
-    
-    fs
-    </h2>
-    
-        <div class="class-description"><p>Provides high level utilities to wrap file system related RPC calls.
-To import the class in views, use <code>'require fs'</code>, to import it in
-external JavaScript, use <code>L.require(&quot;fs&quot;).then(...)</code>.</p></div>
-    
-</header>  
-
-<article>
-    <div class="container-overview">
-    
-    
-    
-        
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="fs">
-            
-            new LuCI.fs<span class="signature">()</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            fs.js, line 111
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-    
-    </div>
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-        <h3 class="subsection-title">Methods</h3>
-        
-        <dl>
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="exec">
-            
-            exec<span class="signature">(command, <span class="optional">params</span>, <span class="optional">env</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;<a href="LuCI.fs.html#.FileExecResult">LuCI.fs.FileExecResult</a>>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            fs.js, line 232
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Execute the specified command, optionally passing params and
-environment variables.</p>
-<p>Note: The <code>command</code> must be either the path to an executable,
-or a basename without arguments in which case it will be searched
-in $PATH. If specified, the values given in <code>params</code> will be passed
-as arguments to the command.</p>
-<p>The key/value pairs in the optional <code>env</code> table are translated to
-<code>setenv()</code> calls prior to running the command.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>command</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The command to invoke.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>params</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Array.&lt;string></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>The arguments to pass to the command.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>env</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Object.&lt;string, string></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>Environment variables to set.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;<a href="LuCI.fs.html#.FileExecResult">LuCI.fs.FileExecResult</a>>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to an object describing the execution
-results or rejecting with an error stating the failure reason.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="lines">
-            
-            lines<span class="signature">(path)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;Array.&lt;string>>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            fs.js, line 281
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Read the contents of the given file, split it into lines, trim
-leading and trailing white space of each line and return the
-resulting array.</p>
-<p>This function is guaranteed to not reject its promises, on failure,
-an empty array will be returned.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>path</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The file path to read.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;Array.&lt;string>>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to an array containing the stripped lines
-of the given file or <code>[]</code> on failure.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="list">
-            
-            list<span class="signature">(path)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;Array.&lt;<a href="LuCI.fs.html#.FileStatEntry">LuCI.fs.FileStatEntry</a>>>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            fs.js, line 132
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Obtains a listing of the specified directory.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>path</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The directory path to list.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;Array.&lt;<a href="LuCI.fs.html#.FileStatEntry">LuCI.fs.FileStatEntry</a>>>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to an array of stat detail objects or
-rejecting with an error stating the failure reason.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="read">
-            
-            read<span class="signature">(path)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;string>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            fs.js, line 161
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Read the contents of the given file and return them.
-Note: this function is unsuitable for obtaining binary data.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>path</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The file path to read.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;string>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to a string containing the file contents or
-rejecting with an error stating the failure reason.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="remove">
-            
-            remove<span class="signature">(The)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;number>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            fs.js, line 203
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Unlink the given file.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>The</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>file path to remove.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;number>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to <code>0</code> or rejecting with an error stating
-the failure reason.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="stat">
-            
-            stat<span class="signature">(path)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;<a href="LuCI.fs.html#.FileStatEntry">LuCI.fs.FileStatEntry</a>>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            fs.js, line 146
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Return file stat information on the specified path.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>path</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The filesystem path to stat.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;<a href="LuCI.fs.html#.FileStatEntry">LuCI.fs.FileStatEntry</a>>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to a stat detail object or
-rejecting with an error stating the failure reason.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="trimmed">
-            
-            trimmed<span class="signature">(path)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;string>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            fs.js, line 260
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Read the contents of the given file, trim leading and trailing white
-space and return the trimmed result. In case of errors, return an empty
-string instead.</p>
-<p>Note: this function is useful to read single-value files in <code>/sys</code>
-or <code>/proc</code>.</p>
-<p>This function is guaranteed to not reject its promises, on failure,
-an empty string will be returned.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>path</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The file path to read.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;string>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to the file contents or the empty string
-on failure.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="write">
-            
-            write<span class="signature">(path, <span class="optional">data</span>, <span class="optional">mode</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;number>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            fs.js, line 187
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Write the given data to the specified file path.
-If the specified file path does not exist, it will be created, given
-sufficient permissions.</p>
-<p>Note: <code>data</code> will be converted to a string using <code>String(data)</code> or to
-<code>''</code> when it is <code>null</code>.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>path</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The file path to write to.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>data</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">*</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>The file data to write. If it is null, it will be set to an empty
-string.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>mode</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>The permissions to use on file creation. Default is 420 (0644).</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;number>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to <code>0</code> or rejecting with an error stating
-the failure reason.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        </dl>
-    
-    
-    
-        <h3 class="subsection-title">Type Definitions</h3>
-        
-        <dl>
-                
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id=".FileExecResult">LuCI.fs.FileExecResult<span class="type-signature type object">Object</span> </h4>
-    </div>
-    
-    
-</dt>
-<dd>
-    
-    
-    
-<dl class="details">
-    
-        
-        <h5 class="subsection-title">Properties:</h5>
-        
-        <dl>
-
-<table class="props">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               <th>Argument</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"><p>The exit code of the invoked command</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>stdout</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    &lt;optional><br>
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>The stdout produced by the command, if any</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>stderr</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    &lt;optional><br>
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>The stderr produced by the command, if any</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table></dl>
-        
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-</dd>
-
-            
-                
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id=".FileStatEntry">LuCI.fs.FileStatEntry<span class="type-signature type object">Object</span> </h4>
-    </div>
-    
-    
-</dt>
-<dd>
-    
-    
-    
-<dl class="details">
-    
-        
-        <h5 class="subsection-title">Properties:</h5>
-        
-        <dl>
-
-<table class="props">
-    <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"><p>Name of the directory entry</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>type</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            
-            
-            <td class="description last"><p>Type of the entry, one of <code>block</code>, <code>char</code>, <code>directory</code>, <code>fifo</code>, <code>symlink</code>, <code>file</code>, <code>socket</code> or <code>unknown</code></p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>size</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-            
-            
-            
-            <td class="description last"><p>Size in bytes</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>mode</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-            
-            
-            
-            <td class="description last"><p>Access permissions</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>atime</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-            
-            
-            
-            <td class="description last"><p>Last access time in seconds since epoch</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>mtime</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-            
-            
-            
-            <td class="description last"><p>Last modification time in seconds since epoch</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>ctime</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-            
-            
-            
-            <td class="description last"><p>Last change time in seconds since epoch</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>inode</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-            
-            
-            
-            <td class="description last"><p>Inode number</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>uid</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-            
-            
-            
-            <td class="description last"><p>Numeric owner id</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>gid</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-            
-            
-            
-            <td class="description last"><p>Numeric group id</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table></dl>
-        
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-</dd>
-
-            </dl>
-    
-    
-    
-
-    
-</article>
-
-</section>  
-
-
-
-
-
-        
-
-        <footer>
-            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
-        </footer>
-    </div>
-</div>
-<script>prettyPrint();</script>
-<script src="scripts/jaguar.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/documentation/jsapi/LuCI.html b/documentation/jsapi/LuCI.html
deleted file mode 100644 (file)
index 68e2042..0000000
+++ /dev/null
@@ -1,5023 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8">
-    <title>Class: LuCI</title>
-    
-    
-    <script src="scripts/prettify/prettify.js"></script>
-    <script src="scripts/prettify/lang-css.js"></script>
-    <script src="scripts/jquery.min.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/bootstrap.min.css">
-    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
-    
-    
-    <script>
-    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
-    </script>
-    
-
-    
-</head>
-<body>
-<div id="wrap" class="clearfix">
-    
-<div class="navigation">
-    <h3 class="applicationName"><a href="index.html"></a></h3>
-
-    <div class="search">
-        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
-    </div>
-    <ul class="list">
-    
-        <li class="item" data-name="LuCI">
-            <span class="title">
-                <a href="LuCI.html">LuCI</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
-            
-                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
-            
-                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
-            
-                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
-            
-                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
-            
-                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
-            
-                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
-            
-                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
-            
-                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
-            
-                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
-            
-                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
-            
-                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
-            
-                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
-            
-                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
-            
-                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
-            
-                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
-            
-                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
-            
-                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
-            
-                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Class">
-            <span class="title">
-                <a href="LuCI.Class.html">LuCI.Class</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
-            
-                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
-            
-                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
-            
-                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
-            
-                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
-            
-                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.dom">
-            <span class="title">
-                <a href="LuCI.dom.html">LuCI.dom</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
-            
-                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
-            
-                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
-            
-                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
-            
-                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
-            
-                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
-            
-                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
-            
-                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
-            
-                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
-            
-                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.fs">
-            <span class="title">
-                <a href="LuCI.fs.html">LuCI.fs</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
-            
-                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
-            
-                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
-            
-                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
-            
-                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
-            
-                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
-            
-                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
-            
-                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Headers">
-            <span class="title">
-                <a href="LuCI.Headers.html">LuCI.Headers</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
-            
-                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network">
-            <span class="title">
-                <a href="LuCI.Network.html">LuCI.Network</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
-            
-                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
-            
-                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
-            
-                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
-            
-                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
-            
-                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
-            
-                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
-            
-                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
-            
-                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
-            
-                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
-            
-                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
-            
-                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
-            
-                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
-            
-                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
-            
-                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
-            
-                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
-            
-                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Device">
-            <span class="title">
-                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
-            
-                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
-            
-                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
-            
-                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
-            
-                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Hosts">
-            <span class="title">
-                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Protocol">
-            <span class="title">
-                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiDevice">
-            <span class="title">
-                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiNetwork">
-            <span class="title">
-                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Poll">
-            <span class="title">
-                <a href="LuCI.Poll.html">LuCI.Poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request">
-            <span class="title">
-                <a href="LuCI.Request.html">LuCI.Request</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
-            
-                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
-            
-                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
-            
-                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request.poll">
-            <span class="title">
-                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Response">
-            <span class="title">
-                <a href="LuCI.Response.html">LuCI.Response</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
-            
-                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
-            
-                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
-            
-                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
-            
-                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
-            
-                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
-            
-                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
-            
-                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.rpc">
-            <span class="title">
-                <a href="LuCI.rpc.html">LuCI.rpc</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
-            
-                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
-            
-                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
-            
-                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
-            
-                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
-            
-                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
-            
-                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.uci">
-            <span class="title">
-                <a href="LuCI.uci.html">LuCI.uci</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
-            
-                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
-            
-                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
-            
-                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
-            
-                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
-            
-                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
-            
-                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
-            
-                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
-            
-                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
-            
-                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
-            
-                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
-            
-                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
-            
-                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
-            
-                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
-            
-                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
-            
-                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
-            
-                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
-            
-                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.view">
-            <span class="title">
-                <a href="LuCI.view.html">LuCI.view</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
-            
-                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
-            
-                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
-            
-                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
-            
-                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
-            
-                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.XHR">
-            <span class="title">
-                <a href="LuCI.XHR.html">LuCI.XHR</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
-            
-                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
-            
-                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
-            
-                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
-            
-                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
-            
-                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-    </ul>
-</div>
-    <div class="main">
-        <h1 class="page-title" data-filename="LuCI.html">Class: LuCI</h1>
-        
-
-
-
-<section>
-    
-<header>
-    <h2>
-    LuCI
-    </h2>
-    
-        <div class="class-description"><p>This is the LuCI base class. It is automatically instantiated and
-accessible using the global <code>L</code> variable.</p></div>
-    
-</header>  
-
-<article>
-    <div class="container-overview">
-    
-    
-    
-        
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="LuCI">
-            
-            new LuCI<span class="signature">(env)</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 1
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>env</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Object</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The environment settings to use for the LuCI runtime.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-    
-    </div>
-    
-    
-    
-    
-    
-    
-    
-    
-        <h3 class="subsection-title">Classes</h3>
-        
-        <dl>
-            <dt><a href="LuCI.Class.html">Class</a></dt>
-            <dd></dd>
-        
-            <dt><a href="LuCI.dom.html">dom</a></dt>
-            <dd></dd>
-        
-            <dt><a href="LuCI.fs.html">fs</a></dt>
-            <dd></dd>
-        
-            <dt><a href="LuCI.Headers.html">Headers</a></dt>
-            <dd></dd>
-        
-            <dt><a href="LuCI.Network.html">Network</a></dt>
-            <dd></dd>
-        
-            <dt><a href="LuCI.Poll.html">Poll</a></dt>
-            <dd></dd>
-        
-            <dt><a href="LuCI.Request.html">Request</a></dt>
-            <dd></dd>
-        
-            <dt><a href="LuCI.Response.html">Response</a></dt>
-            <dd></dd>
-        
-            <dt><a href="LuCI.rpc.html">rpc</a></dt>
-            <dd></dd>
-        
-            <dt><a href="LuCI.uci.html">uci</a></dt>
-            <dd></dd>
-        
-            <dt><a href="LuCI.view.html">view</a></dt>
-            <dd></dd>
-        
-            <dt><a href="LuCI.XHR.html">XHR</a></dt>
-            <dd></dd>
-        </dl>
-    
-    
-    
-    
-    
-        <h3 class="subsection-title">Members</h3>
-        
-        <dl>
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="env">env</h4>
-    </div>
-    
-    
-</dt>
-<dd>
-    
-    <div class="description">
-        <p>The <code>env</code> object holds environment settings used by LuCI, such
-as request timeouts, base URLs etc.</p>
-    </div>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-</dd>
-
-        </dl>
-    
-    
-    
-        <h3 class="subsection-title">Methods</h3>
-        
-        <dl>
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="bind">
-            
-            bind<span class="signature">(fn, self, <span class="optional">args</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{function}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 1340
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Return a bound function using the given <code>self</code> as <code>this</code> context
-and any further arguments as parameters to the bound function.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>fn</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">function</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The function to bind.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>self</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">*</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The value to bind as <code>this</code> context to the specified function.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>args</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">*</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                        <span class="repeatable">repeatable</span>
-                    
-                
-                <p>Zero or more variable arguments which are bound to the function
-as parameters.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        function
-                        
-                    
-            </td>
-            <td class="description last">Returns the bound function.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="error">
-            
-            error<span class="signature">(<span class="optional">type</span>, <span class="optional">fmt</span>, <span class="optional">args</span>)</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 1300
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>A wrapper around <a href="LuCI.html#raise"><code>raise()</code></a> which also renders
-the error either as modal overlay when <code>ui.js</code> is already loaed
-or directly into the view body.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               <th>Default</th>
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>type</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Error</span>
-|
-
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-                <td class="default">
-                
-                    Error
-                
-                </td>
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>Either a string specifying the type of the error to throw or an
-existing <code>Error</code> instance to copy.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>fmt</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-                <td class="default">
-                
-                    Unspecified error
-                
-                </td>
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>A format string which is used to form the error message, together
-with all subsequent optional arguments.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>args</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">*</span>
-
-
-            
-            </td>
-            
-            
-                <td class="default">
-                
-                </td>
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                        <span class="repeatable">repeatable</span>
-                    
-                
-                <p>Zero or more variable arguments to the supplied format string.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    <h5>Throws:</h5>
-    
-            
-
-<dl>
-    <dt>
-        <div class="param-desc">
-        <p>Throws the created error object with the captured stack trace
-appended to the message and the type set to the given type
-argument or copied from the given error instance.</p>
-        </div>
-    </dt>
-    <dt>
-        <dl>
-            <dt>
-                Type
-            </dt>
-            <dd>
-                
-<span class="param-type">Error</span>
-
-
-            </dd>
-        </dl>
-    </dt>
-</dl>
-
-
-        
-    
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="get">
-            
-            get<span class="signature">(url, <span class="optional">args</span>, cb)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;null>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 1918
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Issues a GET request to the given url and invokes the specified
-callback function. The function is a wrapper around
-<a href="LuCI.Request.html#request"><code>Request.request()</code></a>.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</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="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The URL to request.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>args</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Object.&lt;string, string></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>Additional query string arguments to append to the URL.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>cb</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type"><a href="LuCI.html#.requestCallbackFn">LuCI.requestCallbackFn</a></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The callback function to invoke when the request finishes.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-        <dt class="important tag-deprecated">Deprecated</dt><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd>
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;null>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to <code>null</code> when concluded.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="halt">
-            
-            halt<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 2040
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Deprecated wrapper around <code>Poll.stop()</code>.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-        <dt class="important tag-deprecated">Deprecated</dt><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd>
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> when the polling loop has been stopped or <code>false</code>
-when it didn't run to begin with.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="hasSystemFeature">
-            
-            hasSystemFeature<span class="signature">(feature, <span class="optional">subfeature</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean|null}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 1574
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Test whether a particular system feature is available, such as
-hostapd SAE support or an installed firewall. The features are
-queried once at the beginning of the LuCI session and cached in
-<code>SessionStorage</code> throughout the lifetime of the associated tab or
-browser window.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>feature</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The feature to test. For detailed list of known feature flags,
-see <code>/modules/luci-base/root/usr/libexec/rpcd/luci</code>.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>subfeature</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>Some feature classes like <code>hostapd</code> provide sub-feature flags,
-such as <code>sae</code> or <code>11w</code> support. The <code>subfeature</code> argument can
-be used to query these.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                         | 
-                    
-                        null
-                        
-                    
-            </td>
-            <td class="description last">Return <code>true</code> if the queried feature (and sub-feature) is available
-or <code>false</code> if the requested feature isn't present or known.
-Return <code>null</code> when a sub-feature was queried for a feature which
-has no sub-features.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="isObject">
-            
-            isObject<span class="signature">(<span class="optional">val</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 1765
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Tests whether the passed argument is a JavaScript object.
-This function is meant to be an object counterpart to the
-standard <code>Array.isArray()</code> function.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>val</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">*</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>The value to test</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> if the given value is of type object and
-not <code>null</code>, else returns <code>false</code>.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="location">
-            
-            location<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 1745
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Return the complete URL path to the current view.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the URL path to the current view.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="path">
-            
-            path<span class="signature">(<span class="optional">prefix</span>, <span class="optional">parts</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 1679
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Construct a relative URL path from the given prefix and parts.
-The resulting URL is guaranteed to only contain the characters
-<code>a-z</code>, <code>A-Z</code>, <code>0-9</code>, <code>_</code>, <code>.</code>, <code>%</code>, <code>,</code>, <code>;</code>, and <code>-</code> as well
-as <code>/</code> for the path separator.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>prefix</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>The prefix to join the given parts with. If the <code>prefix</code> is
-omitted, it defaults to an empty string.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>parts</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Array.&lt;string></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>An array of parts to join into an URL path. Parts may contain
-slashes and any of the other characters mentioned above.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Return the joined URL path.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="poll">
-            
-            poll<span class="signature">(interval, url, <span class="optional">args</span>, cb, <span class="optional">post</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{function}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 1988
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Register a polling HTTP request that invokes the specified
-callback function. The function is a wrapper around
-<a href="LuCI.Request.poll.html#add"><code>Request.poll.add()</code></a>.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               <th>Default</th>
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>interval</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-                <td class="default">
-                
-                </td>
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The poll interval to use. If set to a value less than or equal
-to <code>0</code>, it will default to the global poll interval configured
-in <code>LuCI.env.pollinterval</code>.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>url</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-                <td class="default">
-                
-                </td>
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The URL to request.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>args</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Object.&lt;string, string></span>
-
-
-            
-            </td>
-            
-            
-                <td class="default">
-                
-                </td>
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>Specifies additional arguments for the request. For GET requests,
-the arguments are appended to the URL as query string, for POST
-requests, they'll be added to the request body.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>cb</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type"><a href="LuCI.html#.requestCallbackFn">LuCI.requestCallbackFn</a></span>
-
-
-            
-            </td>
-            
-            
-                <td class="default">
-                
-                </td>
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The callback function to invoke whenever a request finishes.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>post</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">boolean</span>
-
-
-            
-            </td>
-            
-            
-                <td class="default">
-                
-                    false
-                
-                </td>
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>When set to <code>false</code> or not specified, poll requests will be made
-using the GET method. When set to <code>true</code>, POST requests will be
-issued. In case of POST requests, the request body will contain
-an argument <code>token</code> with the current value of <code>LuCI.env.token</code> by
-default, regardless of the parameters specified with <code>args</code>.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-        <dt class="important tag-deprecated">Deprecated</dt><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd>
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        function
-                        
-                    
-            </td>
-            <td class="description last">Returns the internally created function that has been passed to
-<a href="LuCI.Request.poll.html#add"><code>Request.poll.add()</code></a>. This value can
-be passed to <code>Poll.remove()</code> to remove the
-polling request.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="post">
-            
-            post<span class="signature">(url, <span class="optional">args</span>, cb)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;null>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 1946
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Issues a POST request to the given url and invokes the specified
-callback function. The function is a wrapper around
-<a href="LuCI.Request.html#request"><code>Request.request()</code></a>. The request is
-sent using <code>application/x-www-form-urlencoded</code> encoding and will
-contain a field <code>token</code> with the current value of <code>LuCI.env.token</code>
-by default.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</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="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The URL to request.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>args</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Object.&lt;string, string></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>Additional post arguments to append to the request body.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>cb</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type"><a href="LuCI.html#.requestCallbackFn">LuCI.requestCallbackFn</a></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The callback function to invoke when the request finishes.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-        <dt class="important tag-deprecated">Deprecated</dt><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd>
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;null>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to <code>null</code> when concluded.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="raise">
-            
-            raise<span class="signature">(<span class="optional">type</span>, <span class="optional">fmt</span>, <span class="optional">args</span>)</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 1234
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Captures the current stack trace and throws an error of the
-specified type as a new exception. Also logs the exception as
-error to the debug console if it is available.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               <th>Default</th>
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>type</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Error</span>
-|
-
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-                <td class="default">
-                
-                    Error
-                
-                </td>
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>Either a string specifying the type of the error to throw or an
-existing <code>Error</code> instance to copy.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>fmt</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-                <td class="default">
-                
-                    Unspecified error
-                
-                </td>
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>A format string which is used to form the error message, together
-with all subsequent optional arguments.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>args</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">*</span>
-
-
-            
-            </td>
-            
-            
-                <td class="default">
-                
-                </td>
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                        <span class="repeatable">repeatable</span>
-                    
-                
-                <p>Zero or more variable arguments to the supplied format string.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    <h5>Throws:</h5>
-    
-            
-
-<dl>
-    <dt>
-        <div class="param-desc">
-        <p>Throws the created error object with the captured stack trace
-appended to the message and the type set to the given type
-argument or copied from the given error instance.</p>
-        </div>
-    </dt>
-    <dt>
-        <dl>
-            <dt>
-                Type
-            </dt>
-            <dd>
-                
-<span class="param-type">Error</span>
-
-
-            </dd>
-        </dl>
-    </dt>
-</dl>
-
-
-        
-    
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="require">
-            
-            require<span class="signature">(name)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;LuCI#Class>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 1379
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Load an additional LuCI JavaScript class and its dependencies,
-instantiate it and return the resulting class instance. Each
-class is only loaded once. Subsequent attempts to load the same
-class will return the already instantiated class.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<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">
-                
-                <p>The name of the class to load in dotted notation. Dots will
-be replaced by spaces and joined with the runtime-determined
-base URL of LuCI.js to form an absolute URL to load the class
-file from.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    <h5>Throws:</h5>
-    <ul>
-            <li>
-
-<dl>
-    <dt>
-        <div class="param-desc">
-        <p>Throws a <code>DependencyError</code> when the class to load includes
-circular dependencies.</p>
-        </div>
-    </dt>
-    <dt>
-        <dl>
-            <dt>
-                Type
-            </dt>
-            <dd>
-                
-<span class="param-type">DependencyError</span>
-
-
-            </dd>
-        </dl>
-    </dt>
-</dl>
-
-</li>
-        
-            <li>
-
-<dl>
-    <dt>
-        <div class="param-desc">
-        <p>Throws <code>NetworkError</code> when the underlying <a href="LuCI.Request.html"><code>LuCI.Request</code></a>
-call failed.</p>
-        </div>
-    </dt>
-    <dt>
-        <dl>
-            <dt>
-                Type
-            </dt>
-            <dd>
-                
-<span class="param-type">NetworkError</span>
-
-
-            </dd>
-        </dl>
-    </dt>
-</dl>
-
-</li>
-        
-            <li>
-
-<dl>
-    <dt>
-        <div class="param-desc">
-        <p>Throws <code>SyntaxError</code> when the loaded class file code cannot
-be interpreted by <code>eval</code>.</p>
-        </div>
-    </dt>
-    <dt>
-        <dl>
-            <dt>
-                Type
-            </dt>
-            <dd>
-                
-<span class="param-type">SyntaxError</span>
-
-
-            </dd>
-        </dl>
-    </dt>
-</dl>
-
-</li>
-        
-            <li>
-
-<dl>
-    <dt>
-        <div class="param-desc">
-        <p>Throws <code>TypeError</code> when the class file could be loaded and
-interpreted, but when invoking its code did not yield a valid
-class instance.</p>
-        </div>
-    </dt>
-    <dt>
-        <dl>
-            <dt>
-                Type
-            </dt>
-            <dd>
-                
-<span class="param-type">TypeError</span>
-
-
-            </dd>
-        </dl>
-    </dt>
-</dl>
-
-</li>
-        </ul>
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;LuCI#Class>
-                        
-                    
-            </td>
-            <td class="description last">Returns the instantiated class.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="resolveDefault">
-            
-            resolveDefault<span class="signature">(value, defvalue)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;*>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 1873
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Returns a promise resolving with either the given value or or with
-the given default in case the input value is a rejecting promise.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>value</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">*</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The value to resolve the promise with.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>defvalue</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">*</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The default value to resolve the promise with in case the given
-input value is a rejecting promise.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;*>
-                        
-                    
-            </td>
-            <td class="description last">Returns a new promise resolving either to the given input value or
-to the given default value on error.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="resource">
-            
-            resource<span class="signature">(<span class="optional">parts</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 1732
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Construct an URL path relative to the global static resource path
-of the LuCI ui (usually <code>/luci-static/resources</code>).</p>
-<p>The resulting URL is guaranteed to only contain the characters
-<code>a-z</code>, <code>A-Z</code>, <code>0-9</code>, <code>_</code>, <code>.</code>, <code>%</code>, <code>,</code>, <code>;</code>, and <code>-</code> as well
-as <code>/</code> for the path separator.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>parts</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Array.&lt;string></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>An array of parts to join into an URL path. Parts may contain
-slashes and any of the other characters mentioned above.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the resulting URL path.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="run">
-            
-            run<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 2053
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Deprecated wrapper around <code>Poll.start()</code>.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-        <dt class="important tag-deprecated">Deprecated</dt><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd>
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> when the polling loop has been started or <code>false</code>
-when it was already running.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="sortedKeys">
-            
-            sortedKeys<span class="signature">(obj, <span class="optional">key</span>, <span class="optional">sortmode</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;string>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 1794
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Return an array of sorted object keys, optionally sorted by
-a different key or a different sorting mode.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>obj</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">object</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The object to extract the keys from. If the given value is
-not an object, the function will return an empty array.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>key</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>Specifies the key to order by. This is mainly useful for
-nested objects of objects or objects of arrays when sorting
-shall not be performed by the primary object keys but by
-some other key pointing to a value within the nested values.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>sortmode</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>May be either <code>addr</code> or <code>num</code> to override the natural
-lexicographic sorting with a sorting suitable for IP/MAC style
-addresses or numeric values respectively.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Array.&lt;string>
-                        
-                    
-            </td>
-            <td class="description last">Returns an array containing the sorted keys of the given object.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="stop">
-            
-            stop<span class="signature">(entry)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 2027
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Deprecated wrapper around <code>Poll.remove()</code>.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>entry</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">function</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The polling function to remove.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-        <dt class="important tag-deprecated">Deprecated</dt><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd>
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> when the function has been removed or <code>false</code> if
-it could not be found.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="toArray">
-            
-            toArray<span class="signature">(val)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;*>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 1839
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Converts the given value to an array. If the given value is of
-type array, it is returned as-is, values of type object are
-returned as one-element array containing the object, empty
-strings and <code>null</code> values are returned as empty array, all other
-values are converted using <code>String()</code>, trimmed, split on white
-space and returned as array.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>val</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">*</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The value to convert into an array.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Array.&lt;*>
-                        
-                    
-            </td>
-            <td class="description last">Returns the resulting array.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="url">
-            
-            url<span class="signature">(<span class="optional">parts</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 1710
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Construct an URL  pathrelative to the script path of the server
-side LuCI application (usually <code>/cgi-bin/luci</code>).</p>
-<p>The resulting URL is guaranteed to only contain the characters
-<code>a-z</code>, <code>A-Z</code>, <code>0-9</code>, <code>_</code>, <code>.</code>, <code>%</code>, <code>,</code>, <code>;</code>, and <code>-</code> as well
-as <code>/</code> for the path separator.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>parts</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Array.&lt;string></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>An array of parts to join into an URL path. Parts may contain
-slashes and any of the other characters mentioned above.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the resulting URL path.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        </dl>
-    
-    
-    
-        <h3 class="subsection-title">Type Definitions</h3>
-        
-        <dl>
-                
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id=".requestCallbackFn">
-            
-            LuCI.requestCallbackFn<span class="signature">(xhr, data, duration)</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 1877
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>The request callback function is invoked whenever an HTTP
-reply to a request made using the <code>L.get()</code>, <code>L.post()</code> or
-<code>L.poll()</code> function is timed out or received successfully.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>xhr</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">XMLHTTPRequest</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The XMLHTTPRequest instance used to make the request.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>data</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">*</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The response JSON if the response could be parsed as such,
-else <code>null</code>.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>duration</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The total duration of the request in milliseconds.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-            </dl>
-    
-    
-    
-
-    
-</article>
-
-</section>  
-
-
-
-
-
-        
-
-        <footer>
-            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
-        </footer>
-    </div>
-</div>
-<script>prettyPrint();</script>
-<script src="scripts/jaguar.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/documentation/jsapi/LuCI.rpc.html b/documentation/jsapi/LuCI.rpc.html
deleted file mode 100644 (file)
index 557b972..0000000
+++ /dev/null
@@ -1,3225 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8">
-    <title>Class: rpc</title>
-    
-    
-    <script src="scripts/prettify/prettify.js"></script>
-    <script src="scripts/prettify/lang-css.js"></script>
-    <script src="scripts/jquery.min.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/bootstrap.min.css">
-    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
-    
-    
-    <script>
-    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
-    </script>
-    
-
-    
-</head>
-<body>
-<div id="wrap" class="clearfix">
-    
-<div class="navigation">
-    <h3 class="applicationName"><a href="index.html"></a></h3>
-
-    <div class="search">
-        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
-    </div>
-    <ul class="list">
-    
-        <li class="item" data-name="LuCI">
-            <span class="title">
-                <a href="LuCI.html">LuCI</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
-            
-                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
-            
-                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
-            
-                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
-            
-                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
-            
-                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
-            
-                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
-            
-                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
-            
-                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
-            
-                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
-            
-                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
-            
-                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
-            
-                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
-            
-                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
-            
-                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
-            
-                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
-            
-                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
-            
-                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
-            
-                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Class">
-            <span class="title">
-                <a href="LuCI.Class.html">LuCI.Class</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
-            
-                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
-            
-                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
-            
-                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
-            
-                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
-            
-                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.dom">
-            <span class="title">
-                <a href="LuCI.dom.html">LuCI.dom</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
-            
-                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
-            
-                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
-            
-                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
-            
-                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
-            
-                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
-            
-                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
-            
-                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
-            
-                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
-            
-                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.fs">
-            <span class="title">
-                <a href="LuCI.fs.html">LuCI.fs</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
-            
-                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
-            
-                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
-            
-                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
-            
-                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
-            
-                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
-            
-                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
-            
-                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Headers">
-            <span class="title">
-                <a href="LuCI.Headers.html">LuCI.Headers</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
-            
-                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network">
-            <span class="title">
-                <a href="LuCI.Network.html">LuCI.Network</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
-            
-                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
-            
-                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
-            
-                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
-            
-                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
-            
-                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
-            
-                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
-            
-                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
-            
-                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
-            
-                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
-            
-                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
-            
-                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
-            
-                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
-            
-                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
-            
-                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
-            
-                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
-            
-                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Device">
-            <span class="title">
-                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
-            
-                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
-            
-                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
-            
-                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
-            
-                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Hosts">
-            <span class="title">
-                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Protocol">
-            <span class="title">
-                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiDevice">
-            <span class="title">
-                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiNetwork">
-            <span class="title">
-                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Poll">
-            <span class="title">
-                <a href="LuCI.Poll.html">LuCI.Poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request">
-            <span class="title">
-                <a href="LuCI.Request.html">LuCI.Request</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
-            
-                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
-            
-                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
-            
-                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request.poll">
-            <span class="title">
-                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Response">
-            <span class="title">
-                <a href="LuCI.Response.html">LuCI.Response</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
-            
-                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
-            
-                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
-            
-                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
-            
-                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
-            
-                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
-            
-                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
-            
-                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.rpc">
-            <span class="title">
-                <a href="LuCI.rpc.html">LuCI.rpc</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
-            
-                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
-            
-                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
-            
-                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
-            
-                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
-            
-                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
-            
-                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.uci">
-            <span class="title">
-                <a href="LuCI.uci.html">LuCI.uci</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
-            
-                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
-            
-                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
-            
-                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
-            
-                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
-            
-                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
-            
-                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
-            
-                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
-            
-                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
-            
-                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
-            
-                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
-            
-                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
-            
-                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
-            
-                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
-            
-                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
-            
-                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
-            
-                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
-            
-                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.view">
-            <span class="title">
-                <a href="LuCI.view.html">LuCI.view</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
-            
-                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
-            
-                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
-            
-                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
-            
-                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
-            
-                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.XHR">
-            <span class="title">
-                <a href="LuCI.XHR.html">LuCI.XHR</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
-            
-                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
-            
-                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
-            
-                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
-            
-                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
-            
-                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-    </ul>
-</div>
-    <div class="main">
-        <h1 class="page-title" data-filename="LuCI.rpc.html">Class: rpc</h1>
-        
-
-
-
-<section>
-    
-<header>
-    <h2>
-        <span class="ancestors"><a href="LuCI.html">LuCI</a>.</span>
-    
-    rpc
-    </h2>
-    
-        <div class="class-description"><p>The <code>LuCI.rpc</code> class provides high level ubus JSON-RPC abstractions
-and means for listing and invoking remove RPC methods.</p></div>
-    
-</header>  
-
-<article>
-    <div class="container-overview">
-    
-    
-    
-        
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="rpc">
-            
-            new LuCI.rpc<span class="signature">()</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            rpc.js, line 8
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-    
-    </div>
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-        <h3 class="subsection-title">Methods</h3>
-        
-        <dl>
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="addInterceptor">
-            
-            addInterceptor<span class="signature">(interceptorFn)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{<a href="LuCI.rpc.html#~interceptorFn">LuCI.rpc~interceptorFn</a>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            rpc.js, line 454
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Registers a new interceptor function.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>interceptorFn</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type"><a href="LuCI.rpc.html#~interceptorFn">LuCI.rpc~interceptorFn</a></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The inteceptor function to register.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        <a href="LuCI.rpc.html#~interceptorFn">LuCI.rpc~interceptorFn</a>
-                        
-                    
-            </td>
-            <td class="description last">Returns the given function value.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="declare">
-            
-            declare<span class="signature">(options)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{<a href="LuCI.rpc.html#~invokeFn">LuCI.rpc~invokeFn</a>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            rpc.js, line 292
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Describes a remote RPC call procedure and returns a function
-implementing it.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>options</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type"><a href="LuCI.rpc.html#.DeclareOptions">LuCI.rpc.DeclareOptions</a></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>If any object names are given, this function will return the method
-signatures of each given object.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        <a href="LuCI.rpc.html#~invokeFn">LuCI.rpc~invokeFn</a>
-                        
-                    
-            </td>
-            <td class="description last">Returns a new function implementing the method call described in
-<code>options</code>.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getBaseURL">
-            
-            getBaseURL<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            rpc.js, line 367
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Returns the current RPC base URL.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the RPC URL endpoint to issue requests against.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getSessionID">
-            
-            getSessionID<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            rpc.js, line 346
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Returns the current RPC session id.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the 32 byte session ID string used for authenticating remote
-requests.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="getStatusText">
-            
-            getStatusText<span class="signature">(statusCode)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            rpc.js, line 391
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Translates a numeric <code>ubus</code> error code into a human readable
-description.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>statusCode</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The numeric status code.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the textual description of the code.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="list">
-            
-            list<span class="signature">(<span class="optional">objectNames</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;(Array.&lt;string>|Object.&lt;string, Object.&lt;string, Object.&lt;string, string>>>)>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            rpc.js, line 140
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Lists available remote ubus objects or the method signatures of
-specific objects.</p>
-<p>This function has two signatures and is sensitive to the number of
-arguments passed to it:</p>
-<ul>
-<li><code>list()</code> -
-Returns an array containing the names of all remote <code>ubus</code> objects</li>
-<li><code>list(&quot;objname&quot;, ...)</code>
-Returns method signatures for each given <code>ubus</code> object name.</li>
-</ul>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>objectNames</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                        <span class="repeatable">repeatable</span>
-                    
-                
-                <p>If any object names are given, this function will return the method
-signatures of each given object.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;(Array.&lt;string>|Object.&lt;string, Object.&lt;string, Object.&lt;string, string>>>)>
-                        
-                    
-            </td>
-            <td class="description last">When invoked without arguments, this function will return a promise
-resolving to an array of <code>ubus</code> object names. When invoked with one or
-more arguments, a promise resolving to an object describing the method
-signatures of each requested <code>ubus</code> object name will be returned.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="removeInterceptor">
-            
-            removeInterceptor<span class="signature">(interceptorFn)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            rpc.js, line 470
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Removes a registered interceptor function.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>interceptorFn</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type"><a href="LuCI.rpc.html#~interceptorFn">LuCI.rpc~interceptorFn</a></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The inteceptor function to remove.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> if the given function has been removed or <code>false</code>
-if it has not been found.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="setBaseURL">
-            
-            setBaseURL<span class="signature">(sid)</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            rpc.js, line 377
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Set the RPC base URL to use.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>sid</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>Sets the RPC URL endpoint to issue requests against.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="setSessionID">
-            
-            setSessionID<span class="signature">(sid)</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            rpc.js, line 357
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Set the RPC session id to use.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>sid</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>Sets the 32 byte session ID string used for authenticating remote
-requests.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-        </dl>
-    
-    
-    
-        <h3 class="subsection-title">Type Definitions</h3>
-        
-        <dl>
-                
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id=".DeclareOptions">LuCI.rpc.DeclareOptions<span class="type-signature type object">Object</span> </h4>
-    </div>
-    
-    
-</dt>
-<dd>
-    
-    
-    
-<dl class="details">
-    
-        
-        <h5 class="subsection-title">Properties:</h5>
-        
-        <dl>
-
-<table class="props">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               <th>Argument</th>
-               
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>object</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>The name of the remote <code>ubus</code> object to invoke.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>method</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>The name of the remote <code>ubus</code> method to invoke.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>params</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Array.&lt;string></span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    &lt;optional><br>
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>Lists the named parameters expected by the remote <code>ubus</code> RPC method.
-The arguments passed to the resulting generated method call function
-will be mapped to named parameters in the order they appear in this
-array.</p>
-<p>Extraneous parameters passed to the generated function will not be
-sent to the remote procedure but are passed to the
-<a href="LuCI.rpc.html#~filterFn"><code>filter function</code></a> if one is specified.</p>
-<p>Examples:</p>
-<ul>
-<li><code>params: [ &quot;foo&quot;, &quot;bar&quot; ]</code> -
-When the resulting call function is invoked with <code>fn(true, false)</code>,
-the corresponding args object sent to the remote procedure will be
-<code>{ foo: true, bar: false }</code>.</li>
-<li><code>params: [ &quot;test&quot; ], filter: function(reply, args, extra) { ... }</code> -
-When the resultung generated function is invoked with
-<code>fn(&quot;foo&quot;, &quot;bar&quot;, &quot;baz&quot;)</code> then <code>{ &quot;test&quot;: &quot;foo&quot; }</code> will be sent as
-argument to the remote procedure and the filter function will be
-invoked with <code>filterFn(reply, [ &quot;foo&quot; ], &quot;bar&quot;, &quot;baz&quot;)</code></li>
-</ul></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>expect</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Object.&lt;string, *></span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    &lt;optional><br>
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>Describes the expected return data structure. The given object is
-supposed to contain a single key selecting the value to use from
-the returned <code>ubus</code> reply object. The value of the sole key within
-the <code>expect</code> object is used to infer the expected type of the received
-<code>ubus</code> reply data.</p>
-<p>If the received data does not contain <code>expect</code>'s key, or if the
-type of the data differs from the type of the value in the expect
-object, the expect object's value is returned as default instead.</p>
-<p>The key in the <code>expect</code> object may be an empty string (<code>''</code>) in which
-case the entire reply object is selected instead of one of its subkeys.</p>
-<p>If the <code>expect</code> option is omitted, the received reply will be returned
-as-is, regardless of its format or type.</p>
-<p>Examples:</p>
-<ul>
-<li><code>expect: { '': { error: 'Invalid response' } }</code> -
-This requires the entire <code>ubus</code> reply to be a plain JavaScript
-object. If the reply isn't an object but e.g. an array or a numeric
-error code instead, it will get replaced with
-<code>{ error: 'Invalid response' }</code> instead.</li>
-<li><code>expect: { results: [] }</code> -
-This requires the received <code>ubus</code> reply to be an object containing
-a key <code>results</code> with an array as value. If the received reply does
-not contain such a key, or if <code>reply.results</code> points to a non-array
-value, the empty array (<code>[]</code>) will be used instead.</li>
-<li><code>expect: { success: false }</code> -
-This requires the received <code>ubus</code> reply to be an object containing
-a key <code>success</code> with a boolean value. If the reply does not contain
-<code>success</code> or if <code>reply.success</code> is not a boolean value, <code>false</code> will
-be returned as default instead.</li>
-</ul></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>filter</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type"><a href="LuCI.rpc.html#~filterFn">LuCI.rpc~filterFn</a></span>
-
-
-            
-            </td>
-            
-            
-                <td class="attributes">
-                
-                    &lt;optional><br>
-                
-                    
-                
-                </td>
-            
-            
-            
-            
-            <td class="description last"><p>Specfies an optional filter function which is invoked to transform the
-received reply data before it is returned to the caller.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table></dl>
-        
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-</dd>
-
-            
-                
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="~filterFn">
-            
-            filterFn<span class="signature">(data, args, extraArgs)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{*}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            rpc.js, line 231
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>The filter function is invoked to transform a received <code>ubus</code> RPC call
-reply before returning it to the caller.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<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">*</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The received <code>ubus</code> reply data or a subset of it as described in the
-<code>expect</code> option of the RPC call declaration. In case of remote call
-errors, <code>data</code> is numeric <code>ubus</code> error code instead.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>args</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Array.&lt;*></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The arguments the RPC method has been invoked with.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>extraArgs</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">*</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                        <span class="repeatable">repeatable</span>
-                    
-                
-                <p>All extraneous arguments passed to the RPC method exceeding the number
-of arguments describes in the RPC call declaration.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        *
-                        
-                    
-            </td>
-            <td class="description last">The return value of the filter function will be returned to the caller
-of the RPC method as-is.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-            
-                
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="~interceptorFn">
-            
-            interceptorFn<span class="signature">(msg, req)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;*>|*}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            rpc.js, line 408
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Registered interceptor functions are invoked before the standard reply
-parsing and handling logic.</p>
-<p>By returning rejected promises, interceptor functions can cause the
-invocation function to fail, regardless of the received reply.</p>
-<p>Interceptors may also modify their message argument in-place to
-rewrite received replies before they're processed by the standard
-response handling code.</p>
-<p>A common use case for such functions is to detect failing RPC replies
-due to expired authentication in order to trigger a new login.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>msg</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">*</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The unprocessed, JSON decoded remote RPC method call reply.</p>
-<p>Since interceptors run before the standard parsing logic, the reply
-data is not verified for correctness or filtered according to
-<code>expect</code> and <code>filter</code> specifications in the declarations.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>req</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Object</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The related request object which is an extended variant of the
-declaration object, allowing access to internals of the invocation
-function such as <code>filter</code>, <code>expect</code> or <code>params</code> values.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;*>
-                         | 
-                    
-                        *
-                        
-                    
-            </td>
-            <td class="description last">Interceptor functions may return a promise to defer response
-processing until some delayed work completed. Any values the returned
-promise resolves to are ignored.
-When the returned promise rejects with an error, the invocation
-function will fail too, forwarding the error to the caller.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-            
-                
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="~invokeFn">
-            
-            invokeFn<span class="signature">(params)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;*>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            rpc.js, line 254
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>The generated invocation function is returned by
-<a href="LuCI.rpc.html#declare"><code>rpc.declare()</code></a> and encapsulates a single
-RPC method call.</p>
-<p>Calling this function will execute a remote <code>ubus</code> HTTP call request
-using the arguments passed to it as arguments and return a promise
-resolving to the received reply values.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>params</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">*</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                        <span class="repeatable">repeatable</span>
-                    
-                
-                <p>The parameters to pass to the remote procedure call. The given
-positional arguments will be named to named RPC parameters according
-to the names specified in the <code>params</code> array of the method declaration.</p>
-<p>Any additional parameters exceeding the amount of arguments in the
-<code>params</code> declaration are passed as private extra arguments to the
-declared filter function.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;*>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to the result data of the remote <code>ubus</code>
-RPC method invocation, optionally substituted and filtered according
-to the <code>expect</code> and <code>filter</code> declarations.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-            </dl>
-    
-    
-    
-
-    
-</article>
-
-</section>  
-
-
-
-
-
-        
-
-        <footer>
-            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
-        </footer>
-    </div>
-</div>
-<script>prettyPrint();</script>
-<script src="scripts/jaguar.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/documentation/jsapi/LuCI.uci.html b/documentation/jsapi/LuCI.uci.html
deleted file mode 100644 (file)
index 32e34ea..0000000
+++ /dev/null
@@ -1,4773 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8">
-    <title>Class: uci</title>
-    
-    
-    <script src="scripts/prettify/prettify.js"></script>
-    <script src="scripts/prettify/lang-css.js"></script>
-    <script src="scripts/jquery.min.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/bootstrap.min.css">
-    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
-    
-    
-    <script>
-    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
-    </script>
-    
-
-    
-</head>
-<body>
-<div id="wrap" class="clearfix">
-    
-<div class="navigation">
-    <h3 class="applicationName"><a href="index.html"></a></h3>
-
-    <div class="search">
-        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
-    </div>
-    <ul class="list">
-    
-        <li class="item" data-name="LuCI">
-            <span class="title">
-                <a href="LuCI.html">LuCI</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
-            
-                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
-            
-                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
-            
-                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
-            
-                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
-            
-                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
-            
-                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
-            
-                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
-            
-                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
-            
-                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
-            
-                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
-            
-                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
-            
-                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
-            
-                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
-            
-                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
-            
-                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
-            
-                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
-            
-                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
-            
-                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Class">
-            <span class="title">
-                <a href="LuCI.Class.html">LuCI.Class</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
-            
-                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
-            
-                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
-            
-                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
-            
-                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
-            
-                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.dom">
-            <span class="title">
-                <a href="LuCI.dom.html">LuCI.dom</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
-            
-                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
-            
-                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
-            
-                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
-            
-                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
-            
-                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
-            
-                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
-            
-                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
-            
-                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
-            
-                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.fs">
-            <span class="title">
-                <a href="LuCI.fs.html">LuCI.fs</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
-            
-                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
-            
-                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
-            
-                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
-            
-                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
-            
-                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
-            
-                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
-            
-                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Headers">
-            <span class="title">
-                <a href="LuCI.Headers.html">LuCI.Headers</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
-            
-                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network">
-            <span class="title">
-                <a href="LuCI.Network.html">LuCI.Network</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
-            
-                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
-            
-                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
-            
-                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
-            
-                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
-            
-                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
-            
-                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
-            
-                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
-            
-                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
-            
-                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
-            
-                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
-            
-                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
-            
-                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
-            
-                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
-            
-                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
-            
-                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
-            
-                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Device">
-            <span class="title">
-                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
-            
-                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
-            
-                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
-            
-                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
-            
-                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Hosts">
-            <span class="title">
-                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Protocol">
-            <span class="title">
-                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiDevice">
-            <span class="title">
-                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiNetwork">
-            <span class="title">
-                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Poll">
-            <span class="title">
-                <a href="LuCI.Poll.html">LuCI.Poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request">
-            <span class="title">
-                <a href="LuCI.Request.html">LuCI.Request</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
-            
-                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
-            
-                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
-            
-                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request.poll">
-            <span class="title">
-                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Response">
-            <span class="title">
-                <a href="LuCI.Response.html">LuCI.Response</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
-            
-                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
-            
-                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
-            
-                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
-            
-                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
-            
-                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
-            
-                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
-            
-                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.rpc">
-            <span class="title">
-                <a href="LuCI.rpc.html">LuCI.rpc</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
-            
-                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
-            
-                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
-            
-                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
-            
-                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
-            
-                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
-            
-                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.uci">
-            <span class="title">
-                <a href="LuCI.uci.html">LuCI.uci</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
-            
-                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
-            
-                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
-            
-                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
-            
-                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
-            
-                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
-            
-                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
-            
-                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
-            
-                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
-            
-                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
-            
-                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
-            
-                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
-            
-                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
-            
-                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
-            
-                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
-            
-                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
-            
-                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
-            
-                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.view">
-            <span class="title">
-                <a href="LuCI.view.html">LuCI.view</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
-            
-                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
-            
-                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
-            
-                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
-            
-                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
-            
-                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.XHR">
-            <span class="title">
-                <a href="LuCI.XHR.html">LuCI.XHR</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
-            
-                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
-            
-                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
-            
-                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
-            
-                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
-            
-                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-    </ul>
-</div>
-    <div class="main">
-        <h1 class="page-title" data-filename="LuCI.uci.html">Class: uci</h1>
-        
-
-
-
-<section>
-    
-<header>
-    <h2>
-        <span class="ancestors"><a href="LuCI.html">LuCI</a>.</span>
-    
-    uci
-    </h2>
-    
-        <div class="class-description"><p>The <code>LuCI.uci</code> class utilizes <a href="LuCI.rpc.html"><code>LuCI.rpc</code></a> to declare low level
-remote UCI <code>ubus</code> procedures and implements a local caching and data
-manipulation layer on top to allow for synchroneous operations on
-UCI configuration data.</p></div>
-    
-</header>  
-
-<article>
-    <div class="container-overview">
-    
-    
-    
-        
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="uci">
-            
-            new LuCI.uci<span class="signature">()</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            uci.js, line 4
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-    
-    </div>
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-        <h3 class="subsection-title">Methods</h3>
-        
-        <dl>
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="add">
-            
-            add<span class="signature">(config, type, <span class="optional">name</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            uci.js, line 269
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Adds a new section of the given type to the given configuration,
-optionally named according to the given name.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>config</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The name of the configuration to add the section to.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>type</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The type of the section to add.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>name</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>The name of the section to add. If the name is omitted, an anonymous
-section will be added instead.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">Returns the section ID of the newly added section which is equivalent
-to the given name for non-anonymous sections.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="apply">
-            
-            apply<span class="signature">(<span class="optional">timeout</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;number>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            uci.js, line 858
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Instructs the remote <code>ubus</code> UCI api to commit all saved changes with
-rollback protection and attempts to confirm the pending commit
-operation to cancel the rollback timer.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               <th>Default</th>
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>timeout</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-                <td class="default">
-                
-                    10
-                
-                </td>
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>Override the confirmation timeout after which a rollback is triggered.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;number>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving/rejecting with the <code>ubus</code> RPC status code.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="changes">
-            
-            changes<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;Object.&lt;string, Array.&lt;<a href="LuCI.uci.html#.ChangeRecord">LuCI.uci.ChangeRecord</a>>>>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            uci.js, line 938
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Fetches uncommitted UCI changes from the remote <code>ubus</code> RPC api.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;Object.&lt;string, Array.&lt;<a href="LuCI.uci.html#.ChangeRecord">LuCI.uci.ChangeRecord</a>>>>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to an object containing the configuration
-names as keys and arrays of related change records as values.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="createSID">
-            
-            createSID<span class="signature">(config)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            uci.js, line 88
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Generates a new, unique section ID for the given configuration.</p>
-<p>Note that the generated ID is temporary, it will get replaced by an
-identifier in the form <code>cfgXXXXXX</code> once the configuration is saved
-by the remote <code>ubus</code> UCI api.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>config</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The configuration to generate the new section ID for.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                        
-                    
-            </td>
-            <td class="description last">A newly generated, unique section ID in the form <code>newXXXXXX</code>
-where <code>X</code> denotes a hexadecimal digit.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="get">
-            
-            get<span class="signature">(config, sid, <span class="optional">option</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string|Array.&lt;string>|<a href="LuCI.uci.html#.SectionObject">LuCI.uci.SectionObject</a>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            uci.js, line 443
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Gets the value of the given option within the specified section
-of the given configuration or the entire section object if the
-option name is omitted.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>config</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The name of the configuration to read the value from.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>sid</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The name or ID of the section to read.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>option</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>The option name to read the value from. If the option name is
-omitted or <code>null</code>, the entire section is returned instead.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        string
-                         | 
-                    
-                        Array.&lt;string>
-                         | 
-                    
-                        <a href="LuCI.uci.html#.SectionObject">LuCI.uci.SectionObject</a>
-                        
-                    
-            </td>
-            <td class="description last"><ul>
-<li>Returns a string containing the option value in case of a
-plain UCI option.</li>
-<li>Returns an array of strings containing the option values in
-case of <code>option</code> pointing to an UCI list.</li>
-<li>Returns a <a href="LuCI.uci.html#.SectionObject"><code>section object</code></a> if
-the <code>option</code> argument has been omitted or is <code>null</code>.</li>
-<li>Returns <code>null</code> if the config, section or option has not been
-found or if the corresponding configuration is not loaded.</li>
-</ul></td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="get_first">
-            
-            get_first<span class="signature">(config, <span class="optional">type</span>, <span class="optional">option</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{null|string|Array.&lt;string>|<a href="LuCI.uci.html#.SectionObject">LuCI.uci.SectionObject</a>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            uci.js, line 618
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Gets the value of the given option or the entire section object of
-the first found section of the specified type or the first found
-section of the entire configuration if no type is specfied.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>config</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The name of the configuration to read the value from.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>type</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>The type of the first section to find. If it is <code>null</code>, the first
-section of the entire config is read, otherwise the first section
-matching the given type.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>option</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>The option name to read the value from. If the option name is
-omitted or <code>null</code>, the entire section is returned instead.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        null
-                         | 
-                    
-                        string
-                         | 
-                    
-                        Array.&lt;string>
-                         | 
-                    
-                        <a href="LuCI.uci.html#.SectionObject">LuCI.uci.SectionObject</a>
-                        
-                    
-            </td>
-            <td class="description last"><ul>
-<li>Returns a string containing the option value in case of a
-plain UCI option.</li>
-<li>Returns an array of strings containing the option values in
-case of <code>option</code> pointing to an UCI list.</li>
-<li>Returns a <a href="LuCI.uci.html#.SectionObject"><code>section object</code></a> if
-the <code>option</code> argument has been omitted or is <code>null</code>.</li>
-<li>Returns <code>null</code> if the config, section or option has not been
-found or if the corresponding configuration is not loaded.</li>
-</ul></td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="load">
-            
-            load<span class="signature">(config)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Promise.&lt;Array.&lt;string>>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            uci.js, line 205
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Loads the given UCI configurations from the remote <code>ubus</code> api.</p>
-<p>Loaded configurations are cached and only loaded once. Subsequent
-load operations of the same configurations will return the cached
-data.</p>
-<p>To force reloading a configuration, it has to be unloaded with
-<a href="LuCI.uci.html#unload"><code>uci.unload()</code></a> first.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>config</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-|
-
-<span class="param-type">Array.&lt;string></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The name of the configuration or an array of configuration
-names to load.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Promise.&lt;Array.&lt;string>>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to the names of the configurations
-that have been successfully loaded.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="move">
-            
-            move<span class="signature">(config, sid1, <span class="optional">sid2</span>, <span class="optional">after</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{boolean}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            uci.js, line 718
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Move the first specified section within the given configuration
-before or after the second specified section.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               <th>Default</th>
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>config</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-                <td class="default">
-                
-                </td>
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The configuration to move the section within.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>sid1</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-                <td class="default">
-                
-                </td>
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The ID of the section to move within the configuration.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>sid2</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-                <td class="default">
-                
-                </td>
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>The ID of the target section for the move operation. If the
-<code>after</code> argument is <code>false</code> or not specified, the section named by
-<code>sid1</code> will be moved before this target section, if the <code>after</code>
-argument is <code>true</code>, the <code>sid1</code> section will be moved after this
-section.</p>
-<p>When the <code>sid2</code> argument is <code>null</code>, the section specified by <code>sid1</code>
-is moved to the end of the configuration.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>after</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">boolean</span>
-
-
-            
-            </td>
-            
-            
-                <td class="default">
-                
-                    false
-                
-                </td>
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>When <code>true</code>, the section <code>sid1</code> is moved after the section <code>sid2</code>,
-when <code>false</code>, the section <code>sid1</code> is moved before <code>sid2</code>.</p>
-<p>If <code>sid2</code> is null, then this parameter has no effect and the section
-<code>sid1</code> is moved to the end of the configuration instead.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        boolean
-                        
-                    
-            </td>
-            <td class="description last">Returns <code>true</code> when the section was successfully moved, or <code>false</code>
-when either the section specified by <code>sid1</code> or by <code>sid2</code> is not found.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="remove">
-            
-            remove<span class="signature">(config, sid)</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            uci.js, line 296
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Removes the section with the given ID from the given configuration.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>config</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The name of the configuration to remove the section from.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>sid</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The ID of the section to remove.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="resolveSID">
-            
-            resolveSID<span class="signature">(config, sid)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{string|null}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            uci.js, line 119
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Resolves a given section ID in extended notation to the internal
-section ID value.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>config</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The configuration to resolve the section ID for.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>sid</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The section ID to resolve. If the ID is in the form <code>@typename[#]</code>,
-it will get resolved to an internal anonymous ID in the forms
-<code>cfgXXXXXX</code>/<code>newXXXXXX</code> or to the name of a section in case it points
-to a named section. When the given ID is not in extended notation,
-it will be returned as-is.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        string
-                         | 
-                    
-                        null
-                        
-                    
-            </td>
-            <td class="description last">Returns the resolved section ID or the original given ID if it was
-not in extended notation. Returns <code>null</code> when an extended ID could
-not be resolved to existing section ID.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="save">
-            
-            save<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;string>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            uci.js, line 772
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Submits all local configuration changes to the remove <code>ubus</code> api,
-adds, removes and reorders remote sections as needed and reloads
-all loaded configurations to resynchronize the local state with
-the remote configuration values.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Array.&lt;string>
-                        
-                    
-            </td>
-            <td class="description last">Returns a promise resolving to an array of configuration names which
-have been reloaded by the save operation.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="sections">
-            
-            sections<span class="signature">(config, <span class="optional">type</span>, <span class="optional">cb</span>)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Array.&lt;<a href="LuCI.uci.html#.SectionObject">LuCI.uci.SectionObject</a>>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            uci.js, line 384
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Enumerates the sections of the given configuration, optionally
-filtered by type.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>config</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The name of the configuration to enumerate the sections for.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>type</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>Enumerate only sections of the given type. If omitted, enumerate
-all sections.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>cb</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type"><a href="LuCI.uci.html#~sectionsFn">LuCI.uci~sectionsFn</a></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>An optional callback to invoke for each enumerated section.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Array.&lt;<a href="LuCI.uci.html#.SectionObject">LuCI.uci.SectionObject</a>>
-                        
-                    
-            </td>
-            <td class="description last">Returns a sorted array of the section objects within the given
-configuration, filtered by type of a type has been specified.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="set">
-            
-            set<span class="signature">(config, sid, option, value)</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            uci.js, line 516
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Sets the value of the given option within the specified section
-of the given configuration.</p>
-<p>If either config, section or option is null, or if <code>option</code> begins
-with a dot, the function will do nothing.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>config</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The name of the configuration to set the option value in.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>sid</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The name or ID of the section to set the option value in.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>option</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The option name to set the value for.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>value</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">null</span>
-|
-
-<span class="param-type">string</span>
-|
-
-<span class="param-type">Array.&lt;string></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The option value to set. If the value is <code>null</code> or an empty string,
-the option will be removed, otherwise it will be set or overwritten
-with the given value.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="set_first">
-            
-            set_first<span class="signature">(config, <span class="optional">type</span>, option, value)</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            uci.js, line 653
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Sets the value of the given option within the first found section
-of the given configuration matching the specified type or within
-the first section of the entire config when no type has is specified.</p>
-<p>If either config, type or option is null, or if <code>option</code> begins
-with a dot, the function will do nothing.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>config</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The name of the configuration to set the option value in.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>type</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>The type of the first section to find. If it is <code>null</code>, the first
-section of the entire config is written to, otherwise the first
-section matching the given type is used.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>option</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The option name to set the value for.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>value</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">null</span>
-|
-
-<span class="param-type">string</span>
-|
-
-<span class="param-type">Array.&lt;string></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The option value to set. If the value is <code>null</code> or an empty string,
-the option will be removed, otherwise it will be set or overwritten
-with the given value.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="unload">
-            
-            unload<span class="signature">(config)</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            uci.js, line 237
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Unloads the given UCI configurations from the local cache.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>config</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-|
-
-<span class="param-type">Array.&lt;string></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The name of the configuration or an array of configuration
-names to unload.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="unset">
-            
-            unset<span class="signature">(config, sid, option)</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            uci.js, line 587
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Remove the given option within the specified section of the given
-configuration.</p>
-<p>This function is a convenience wrapper around
-<code>uci.set(config, section, option, null)</code>.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>config</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The name of the configuration to remove the option from.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>sid</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The name or ID of the section to remove the option from.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>option</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The name of the option to remove.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="unset_first">
-            
-            unset_first<span class="signature">(config, <span class="optional">type</span>, option)</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            uci.js, line 683
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Removes the given option within the first found section of the given
-configuration matching the specified type or within the first section
-of the entire config when no type has is specified.</p>
-<p>This function is a convenience wrapper around
-<code>uci.set_first(config, type, option, null)</code>.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>config</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The name of the configuration to set the option value in.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>type</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                        <span class="optional">optional</span>
-                    
-                    
-                        
-                    
-                
-                <p>The type of the first section to find. If it is <code>null</code>, the first
-section of the entire config is written to, otherwise the first
-section matching the given type is used.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>option</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                    
-                    
-                        
-                    
-                
-                <p>The option name to set the value for.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-        </dl>
-    
-    
-    
-        <h3 class="subsection-title">Type Definitions</h3>
-        
-        <dl>
-                
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id=".ChangeRecord">LuCI.uci.ChangeRecord<span class="type-signature type array.<string>">Array.&lt;string></span> </h4>
-    </div>
-    
-    
-</dt>
-<dd>
-    
-    <div class="description">
-        <p>An UCI change record is a plain array containing the change operation
-name as first element, the affected section ID as second argument
-and an optional third and fourth argument whose meanings depend on
-the operation.</p>
-    </div>
-    
-    
-    
-<dl class="details">
-    
-        
-        <h5 class="subsection-title">Properties:</h5>
-        
-        <dl>
-
-<table class="props">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>0</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            
-            
-            <td class="description last"><p>The operation name - may be one of <code>add</code>, <code>set</code>, <code>remove</code>, <code>order</code>,
-<code>list-add</code>, <code>list-del</code> or <code>rename</code>.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>1</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            
-            
-            <td class="description last"><p>The section ID targeted by the operation.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>2</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            
-            
-            <td class="description last"><p>The meaning of the third element depends on the operation.</p>
-<ul>
-<li>For <code>add</code> it is type of the section that has been added</li>
-<li>For <code>set</code> it either is the option name if a fourth element exists,
-or the type of a named section which has been added when the change
-entry only contains three elements.</li>
-<li>For <code>remove</code> it contains the name of the option that has been
-removed.</li>
-<li>For <code>order</code> it specifies the new sort index of the section.</li>
-<li>For <code>list-add</code> it contains the name of the list option a new value
-has been added to.</li>
-<li>For <code>list-del</code> it contains the name of the list option a value has
-been removed from.</li>
-<li>For <code>rename</code> it contains the name of the option that has been
-renamed if a fourth element exists, else it contains the new name
-a section has been renamed to if the change entry only contains
-three elements.</li>
-</ul></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>4</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            
-            
-            <td class="description last"><p>The meaning of the fourth element depends on the operation.</p>
-<ul>
-<li>For <code>set</code> it is the value an option has been set to.</li>
-<li>For <code>list-add</code> it is the new value that has been added to a
-list option.</li>
-<li>For <code>rename</code> it is the new name of an option that has been
-renamed.</li>
-</ul></td>
-        </tr>
-       
-       
-       </tbody>
-</table></dl>
-        
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-</dd>
-
-            
-                
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id=".SectionObject">LuCI.uci.SectionObject<span class="type-signature type object.<string, (boolean|number|string|array.<string>)>">Object.&lt;string, (boolean|number|string|Array.&lt;string>)></span> </h4>
-    </div>
-    
-    
-</dt>
-<dd>
-    
-    <div class="description">
-        <p>A section object represents the options and their corresponding values
-enclosed within a configuration section, as well as some additional
-meta data such as sort indexes and internal ID.</p>
-<p>Any internal metadata fields are prefixed with a dot which is isn't
-an allowed character for normal option names.</p>
-    </div>
-    
-    
-    
-<dl class="details">
-    
-        
-        <h5 class="subsection-title">Properties:</h5>
-        
-        <dl>
-
-<table class="props">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>.anonymous</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">boolean</span>
-
-
-            
-            </td>
-            
-            
-            
-            
-            
-            <td class="description last"><p>The <code>.anonymous</code> property specifies whether the configuration is
-anonymous (<code>true</code>) or named (<code>false</code>).</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>.index</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">number</span>
-
-
-            
-            </td>
-            
-            
-            
-            
-            
-            <td class="description last"><p>The <code>.index</code> property specifes the sort order of the section.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>.name</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            
-            
-            <td class="description last"><p>The <code>.name</code> property holds the name of the section object. It may be
-either an anonymous ID in the form <code>cfgXXXXXX</code> or <code>newXXXXXX</code> with <code>X</code>
-being a hexadecimal digit or a string holding the name of the section.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>.type</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            
-            
-            <td class="description last"><p>The <code>.type</code> property contains the type of the corresponding uci
-section.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>*</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-|
-
-<span class="param-type">Array.&lt;string></span>
-
-
-            
-            </td>
-            
-            
-            
-            
-            
-            <td class="description last"><p>A section object may contain an arbitrary number of further properties
-representing the uci option enclosed in the section.</p>
-<p>All option property names will be in the form <code>[A-Za-z0-9_]+</code> and
-either contain a string value or an array of strings, in case the
-underlying option is an UCI list.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table></dl>
-        
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-</dd>
-
-            
-                
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="~sectionsFn">
-            
-            sectionsFn<span class="signature">(section, sid)</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            uci.js, line 352
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>The sections callback is invoked for each section found within
-the given configuration and receives the section object and its
-associated name as arguments.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>section</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type"><a href="LuCI.uci.html#.SectionObject">LuCI.uci.SectionObject</a></span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The section object.</p></td>
-        </tr>
-       
-       
-       
-        <tr>
-            
-                <td class="name"><code>sid</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">string</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The name or ID of the section.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-            </dl>
-    
-    
-    
-
-    
-</article>
-
-</section>  
-
-
-
-
-
-        
-
-        <footer>
-            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
-        </footer>
-    </div>
-</div>
-<script>prettyPrint();</script>
-<script src="scripts/jaguar.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/documentation/jsapi/LuCI.view.html b/documentation/jsapi/LuCI.view.html
deleted file mode 100644 (file)
index 59b34cf..0000000
+++ /dev/null
@@ -1,2083 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8">
-    <title>Class: view</title>
-    
-    
-    <script src="scripts/prettify/prettify.js"></script>
-    <script src="scripts/prettify/lang-css.js"></script>
-    <script src="scripts/jquery.min.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/bootstrap.min.css">
-    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
-    
-    
-    <script>
-    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
-    </script>
-    
-
-    
-</head>
-<body>
-<div id="wrap" class="clearfix">
-    
-<div class="navigation">
-    <h3 class="applicationName"><a href="index.html"></a></h3>
-
-    <div class="search">
-        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
-    </div>
-    <ul class="list">
-    
-        <li class="item" data-name="LuCI">
-            <span class="title">
-                <a href="LuCI.html">LuCI</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
-            
-                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
-            
-                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
-            
-                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
-            
-                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
-            
-                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
-            
-                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
-            
-                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
-            
-                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
-            
-                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
-            
-                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
-            
-                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
-            
-                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
-            
-                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
-            
-                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
-            
-                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
-            
-                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
-            
-                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
-            
-                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Class">
-            <span class="title">
-                <a href="LuCI.Class.html">LuCI.Class</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
-            
-                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
-            
-                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
-            
-                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
-            
-                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
-            
-                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.dom">
-            <span class="title">
-                <a href="LuCI.dom.html">LuCI.dom</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
-            
-                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
-            
-                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
-            
-                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
-            
-                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
-            
-                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
-            
-                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
-            
-                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
-            
-                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
-            
-                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.fs">
-            <span class="title">
-                <a href="LuCI.fs.html">LuCI.fs</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
-            
-                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
-            
-                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
-            
-                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
-            
-                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
-            
-                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
-            
-                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
-            
-                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Headers">
-            <span class="title">
-                <a href="LuCI.Headers.html">LuCI.Headers</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
-            
-                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network">
-            <span class="title">
-                <a href="LuCI.Network.html">LuCI.Network</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
-            
-                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
-            
-                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
-            
-                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
-            
-                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
-            
-                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
-            
-                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
-            
-                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
-            
-                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
-            
-                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
-            
-                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
-            
-                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
-            
-                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
-            
-                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
-            
-                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
-            
-                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
-            
-                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Device">
-            <span class="title">
-                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
-            
-                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
-            
-                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
-            
-                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
-            
-                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Hosts">
-            <span class="title">
-                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Protocol">
-            <span class="title">
-                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiDevice">
-            <span class="title">
-                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiNetwork">
-            <span class="title">
-                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Poll">
-            <span class="title">
-                <a href="LuCI.Poll.html">LuCI.Poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request">
-            <span class="title">
-                <a href="LuCI.Request.html">LuCI.Request</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
-            
-                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
-            
-                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
-            
-                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request.poll">
-            <span class="title">
-                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Response">
-            <span class="title">
-                <a href="LuCI.Response.html">LuCI.Response</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
-            
-                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
-            
-                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
-            
-                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
-            
-                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
-            
-                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
-            
-                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
-            
-                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.rpc">
-            <span class="title">
-                <a href="LuCI.rpc.html">LuCI.rpc</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
-            
-                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
-            
-                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
-            
-                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
-            
-                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
-            
-                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
-            
-                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.uci">
-            <span class="title">
-                <a href="LuCI.uci.html">LuCI.uci</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
-            
-                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
-            
-                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
-            
-                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
-            
-                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
-            
-                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
-            
-                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
-            
-                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
-            
-                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
-            
-                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
-            
-                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
-            
-                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
-            
-                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
-            
-                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
-            
-                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
-            
-                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
-            
-                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
-            
-                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.view">
-            <span class="title">
-                <a href="LuCI.view.html">LuCI.view</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
-            
-                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
-            
-                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
-            
-                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
-            
-                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
-            
-                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.XHR">
-            <span class="title">
-                <a href="LuCI.XHR.html">LuCI.XHR</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
-            
-                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
-            
-                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
-            
-                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
-            
-                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
-            
-                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-    </ul>
-</div>
-    <div class="main">
-        <h1 class="page-title" data-filename="LuCI.view.html">Class: view</h1>
-        
-
-
-
-<section>
-    
-<header>
-    <h2>
-        <span class="ancestors"><a href="LuCI.html">LuCI</a>.</span>
-    
-    view
-    </h2>
-    
-        <div class="class-description"><p>The <code>view</code> class forms the basis of views and provides a standard
-set of methods to inherit from.</p></div>
-    
-</header>  
-
-<article>
-    <div class="container-overview">
-    
-    
-    
-        
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="view">
-            
-            new LuCI.view<span class="signature">()</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 2687
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-    
-</dd>
-
-    
-    </div>
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-        <h3 class="subsection-title">Methods</h3>
-        
-        <dl>
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="addFooter">
-            
-            addFooter<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{DocumentFragment}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 2905
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>Renders a standard page action footer if any of the
-<code>handleSave()</code>, <code>handleSaveApply()</code> or <code>handleReset()</code>
-functions are defined.</p>
-<p>The default implementation should be sufficient for most
-views - it will render a standard page footer with action
-buttons labeled <code>Save</code>, <code>Save &amp; Apply</code> and <code>Reset</code>
-triggering the <code>handleSave()</code>, <code>handleSaveApply()</code> and
-<code>handleReset()</code> functions respectively.</p>
-<p>When any of these <code>handle*()</code> functions is overwritten
-with <code>null</code> by a view extending this class, the
-corresponding button will not be rendered.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        DocumentFragment
-                        
-                    
-            </td>
-            <td class="description last">Returns a <code>DocumentFragment</code> containing the footer bar
-with buttons for each corresponding <code>handle*()</code> action
-or an empty <code>DocumentFragment</code> if all three <code>handle*()</code>
-methods are overwritten with <code>null</code>.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="handleReset">
-            
-            handleReset<span class="signature">(ev)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{*|Promise.&lt;*>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 2871
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>The handleReset function is invoked when the user clicks
-the <code>Reset</code> button in the page action footer.</p>
-<p>The default implementation should be sufficient for most
-views using <code>form.Map()</code> based forms - it
-will iterate all forms present in the view and invoke
-the <code>Map.reset()</code> method on each form.</p>
-<p>Views not using <code>Map</code> instances or requiring other special
-logic should overwrite <code>handleReset()</code> with a custom
-implementation.</p>
-<p>To disable the <code>Reset</code> page footer button, views extending
-this base class should overwrite the <code>handleReset</code> function
-with <code>null</code>.</p>
-<p>The invocation of this function is wrapped by
-<code>Promise.resolve()</code> so it may return Promises if needed.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>ev</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Event</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The DOM event that triggered the function.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        *
-                         | 
-                    
-                        Promise.&lt;*>
-                        
-                    
-            </td>
-            <td class="description last">Any return values of this function are discarded, but
-passed through <code>Promise.resolve()</code> to ensure that any
-returned promise runs to completion before the button
-is reenabled.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="handleSave">
-            
-            handleSave<span class="signature">(ev)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{*|Promise.&lt;*>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 2790
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>The handleSave function is invoked when the user clicks
-the <code>Save</code> button in the page action footer.</p>
-<p>The default implementation should be sufficient for most
-views using <code>form.Map()</code> based forms - it
-will iterate all forms present in the view and invoke
-the <code>Map.save()</code> method on each form.</p>
-<p>Views not using <code>Map</code> instances or requiring other special
-logic should overwrite <code>handleSave()</code> with a custom
-implementation.</p>
-<p>To disable the <code>Save</code> page footer button, views extending
-this base class should overwrite the <code>handleSave</code> function
-with <code>null</code>.</p>
-<p>The invocation of this function is wrapped by
-<code>Promise.resolve()</code> so it may return Promises if needed.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>ev</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Event</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The DOM event that triggered the function.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        *
-                         | 
-                    
-                        Promise.&lt;*>
-                        
-                    
-            </td>
-            <td class="description last">Any return values of this function are discarded, but
-passed through <code>Promise.resolve()</code> to ensure that any
-returned promise runs to completion before the button
-is reenabled.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="handleSaveApply">
-            
-            handleSaveApply<span class="signature">(ev)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{*|Promise.&lt;*>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 2834
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>The handleSaveApply function is invoked when the user clicks
-the <code>Save &amp; Apply</code> button in the page action footer.</p>
-<p>The default implementation should be sufficient for most
-views using <code>form.Map()</code> based forms - it
-will first invoke
-<code>view.handleSave()</code> and then
-call <code>ui.changes.apply()</code> to start the
-modal config apply and page reload flow.</p>
-<p>Views not using <code>Map</code> instances or requiring other special
-logic should overwrite <code>handleSaveApply()</code> with a custom
-implementation.</p>
-<p>To disable the <code>Save &amp; Apply</code> page footer button, views
-extending this base class should overwrite the
-<code>handleSaveApply</code> function with <code>null</code>.</p>
-<p>The invocation of this function is wrapped by
-<code>Promise.resolve()</code> so it may return Promises if needed.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>ev</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">Event</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>The DOM event that triggered the function.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        *
-                         | 
-                    
-                        Promise.&lt;*>
-                        
-                    
-            </td>
-            <td class="description last">Any return values of this function are discarded, but
-passed through <code>Promise.resolve()</code> to ensure that any
-returned promise runs to completion before the button
-is reenabled.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="load">
-            
-            <span class="type-signature ">abstract</span>load<span class="signature">()</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{*|Promise.&lt;*>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 2725
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>The load function is invoked before the view is rendered.</p>
-<p>The invocation of this function is wrapped by
-<code>Promise.resolve()</code> so it may return Promises if needed.</p>
-<p>The return value of the function (or the resolved values
-of the promise returned by it) will be passed as first
-argument to <code>render()</code>.</p>
-<p>This function is supposed to be overwritten by subclasses,
-the default implementation does nothing.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        *
-                         | 
-                    
-                        Promise.&lt;*>
-                        
-                    
-            </td>
-            <td class="description last">May return any value or a Promise resolving to any value.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        
-            
-<dt>
-    <div class="nameContainer">
-        <h4 class="name" id="render">
-            
-            <span class="type-signature ">abstract</span>render<span class="signature">(load_results)</span><span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">{Node|Promise.&lt;Node>}</span>
-        </h4>
-    
-        
-        <div class="tag-source">
-            luci.js, line 2757
-        </div>
-        
-    </div>
-
-    
-</dt>
-<dd>
-    
-    
-    <div class="description">
-        <p>The render function is invoked after the
-<a href="LuCI.view.html#load"><code>load()</code></a> function and responsible
-for setting up the view contents. It must return a DOM
-<code>Node</code> or <code>DocumentFragment</code> holding the contents to
-insert into the view area.</p>
-<p>The invocation of this function is wrapped by
-<code>Promise.resolve()</code> so it may return Promises if needed.</p>
-<p>The return value of the function (or the resolved values
-of the promise returned by it) will be inserted into the
-main content area using
-<a href="LuCI.dom.html#append"><code>dom.append()</code></a>.</p>
-<p>This function is supposed to be overwritten by subclasses,
-the default implementation does nothing.</p>
-    </div>
-    
-
-    
-    
-    
-    
-    
-        
-
-<table class="params">
-    <thead>
-       <tr>
-               
-               <th>Name</th>
-               
-               
-               <th>Type</th>
-               
-               
-               
-               <th class="last">Description</th>
-       </tr>
-       </thead>
-       
-       <tbody>
-       
-       
-        <tr>
-            
-                <td class="name"><code>load_results</code></td>
-            
-            
-            <td class="type">
-            
-                
-<span class="param-type">*</span>
-|
-
-<span class="param-type">null</span>
-
-
-            
-            </td>
-            
-            
-            
-            <td class="description last">
-                
-                <p>This function will receive the return value of the
-<a href="LuCI.view.html#load"><code>view.load()</code></a> function as first
-argument.</p></td>
-        </tr>
-       
-       
-       </tbody>
-</table>
-    
-    
-    
-<dl class="details">
-    
-        
-    
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-</dl>
-
-    
-    
-
-    
-
-    
-    
-    
-    
-    
-    <h5>Returns:</h5>
-    
-
-
-<table class="params">
-    <thead>
-    <tr>
-        
-        <th>Type</th>
-        <th class="last">Description</th>
-    </tr>
-    </thead>
-    <tbody>
-    
-        <tr>
-            
-            <td class="type">
-            
-                        Node
-                         | 
-                    
-                        Promise.&lt;Node>
-                        
-                    
-            </td>
-            <td class="description last">Should return a DOM <code>Node</code> value or a <code>Promise</code> resolving
-to a <code>Node</code> value.</td>
-        </tr>
-    
-    </tbody>
-</table>
-
-    
-    
-    
-</dd>
-
-        </dl>
-    
-    
-    
-    
-    
-
-    
-</article>
-
-</section>  
-
-
-
-
-
-        
-
-        <footer>
-            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
-        </footer>
-    </div>
-</div>
-<script>prettyPrint();</script>
-<script src="scripts/jaguar.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/documentation/jsapi/fonts/OpenSans-Bold-webfont.eot b/documentation/jsapi/fonts/OpenSans-Bold-webfont.eot
deleted file mode 100644 (file)
index 5d20d91..0000000
Binary files a/documentation/jsapi/fonts/OpenSans-Bold-webfont.eot and /dev/null differ
diff --git a/documentation/jsapi/fonts/OpenSans-Bold-webfont.svg b/documentation/jsapi/fonts/OpenSans-Bold-webfont.svg
deleted file mode 100644 (file)
index 3ed7be4..0000000
+++ /dev/null
@@ -1,1830 +0,0 @@
-<?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/documentation/jsapi/fonts/OpenSans-Bold-webfont.woff b/documentation/jsapi/fonts/OpenSans-Bold-webfont.woff
deleted file mode 100644 (file)
index 1205787..0000000
Binary files a/documentation/jsapi/fonts/OpenSans-Bold-webfont.woff and /dev/null differ
diff --git a/documentation/jsapi/fonts/OpenSans-BoldItalic-webfont.eot b/documentation/jsapi/fonts/OpenSans-BoldItalic-webfont.eot
deleted file mode 100644 (file)
index 1f639a1..0000000
Binary files a/documentation/jsapi/fonts/OpenSans-BoldItalic-webfont.eot and /dev/null differ
diff --git a/documentation/jsapi/fonts/OpenSans-BoldItalic-webfont.svg b/documentation/jsapi/fonts/OpenSans-BoldItalic-webfont.svg
deleted file mode 100644 (file)
index 6a2607b..0000000
+++ /dev/null
@@ -1,1830 +0,0 @@
-<?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/documentation/jsapi/fonts/OpenSans-BoldItalic-webfont.woff b/documentation/jsapi/fonts/OpenSans-BoldItalic-webfont.woff
deleted file mode 100644 (file)
index ed760c0..0000000
Binary files a/documentation/jsapi/fonts/OpenSans-BoldItalic-webfont.woff and /dev/null differ
diff --git a/documentation/jsapi/fonts/OpenSans-Italic-webfont.eot b/documentation/jsapi/fonts/OpenSans-Italic-webfont.eot
deleted file mode 100644 (file)
index 0c8a0ae..0000000
Binary files a/documentation/jsapi/fonts/OpenSans-Italic-webfont.eot and /dev/null differ
diff --git a/documentation/jsapi/fonts/OpenSans-Italic-webfont.svg b/documentation/jsapi/fonts/OpenSans-Italic-webfont.svg
deleted file mode 100644 (file)
index e1075dc..0000000
+++ /dev/null
@@ -1,1830 +0,0 @@
-<?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/documentation/jsapi/fonts/OpenSans-Italic-webfont.woff b/documentation/jsapi/fonts/OpenSans-Italic-webfont.woff
deleted file mode 100644 (file)
index ff652e6..0000000
Binary files a/documentation/jsapi/fonts/OpenSans-Italic-webfont.woff and /dev/null differ
diff --git a/documentation/jsapi/fonts/OpenSans-Light-webfont.eot b/documentation/jsapi/fonts/OpenSans-Light-webfont.eot
deleted file mode 100644 (file)
index 1486840..0000000
Binary files a/documentation/jsapi/fonts/OpenSans-Light-webfont.eot and /dev/null differ
diff --git a/documentation/jsapi/fonts/OpenSans-Light-webfont.svg b/documentation/jsapi/fonts/OpenSans-Light-webfont.svg
deleted file mode 100644 (file)
index 11a472c..0000000
+++ /dev/null
@@ -1,1831 +0,0 @@
-<?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/documentation/jsapi/fonts/OpenSans-Light-webfont.woff b/documentation/jsapi/fonts/OpenSans-Light-webfont.woff
deleted file mode 100644 (file)
index e786074..0000000
Binary files a/documentation/jsapi/fonts/OpenSans-Light-webfont.woff and /dev/null differ
diff --git a/documentation/jsapi/fonts/OpenSans-LightItalic-webfont.eot b/documentation/jsapi/fonts/OpenSans-LightItalic-webfont.eot
deleted file mode 100644 (file)
index 8f44592..0000000
Binary files a/documentation/jsapi/fonts/OpenSans-LightItalic-webfont.eot and /dev/null differ
diff --git a/documentation/jsapi/fonts/OpenSans-LightItalic-webfont.svg b/documentation/jsapi/fonts/OpenSans-LightItalic-webfont.svg
deleted file mode 100644 (file)
index 431d7e3..0000000
+++ /dev/null
@@ -1,1835 +0,0 @@
-<?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/documentation/jsapi/fonts/OpenSans-LightItalic-webfont.woff b/documentation/jsapi/fonts/OpenSans-LightItalic-webfont.woff
deleted file mode 100644 (file)
index 43e8b9e..0000000
Binary files a/documentation/jsapi/fonts/OpenSans-LightItalic-webfont.woff and /dev/null differ
diff --git a/documentation/jsapi/fonts/OpenSans-Regular-webfont.eot b/documentation/jsapi/fonts/OpenSans-Regular-webfont.eot
deleted file mode 100644 (file)
index 6bbc3cf..0000000
Binary files a/documentation/jsapi/fonts/OpenSans-Regular-webfont.eot and /dev/null differ
diff --git a/documentation/jsapi/fonts/OpenSans-Regular-webfont.svg b/documentation/jsapi/fonts/OpenSans-Regular-webfont.svg
deleted file mode 100644 (file)
index 25a3952..0000000
+++ /dev/null
@@ -1,1831 +0,0 @@
-<?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/documentation/jsapi/fonts/OpenSans-Regular-webfont.woff b/documentation/jsapi/fonts/OpenSans-Regular-webfont.woff
deleted file mode 100644 (file)
index e231183..0000000
Binary files a/documentation/jsapi/fonts/OpenSans-Regular-webfont.woff and /dev/null differ
diff --git a/documentation/jsapi/fs.js.html b/documentation/jsapi/fs.js.html
deleted file mode 100644 (file)
index 3ee1af8..0000000
+++ /dev/null
@@ -1,350 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="utf-8">
-    <title>JSDoc: Source: fs.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: fs.js</h1>
-
-    
-
-
-
-    
-    <section>
-        <article>
-            <pre class="prettyprint source linenums"><code>'use strict';
-'require rpc';
-
-/**
- * @typedef {Object} FileStatEntry
- * @memberof LuCI.fs
-
- * @property {string} name - Name of the directory entry
- * @property {string} type - Type of the entry, one of `block`, `char`, `directory`, `fifo`, `symlink`, `file`, `socket` or `unknown`
- * @property {number} size - Size in bytes
- * @property {number} mode - Access permissions
- * @property {number} atime - Last access time in seconds since epoch
- * @property {number} mtime - Last modification time in seconds since epoch
- * @property {number} ctime - Last change time in seconds since epoch
- * @property {number} inode - Inode number
- * @property {number} uid - Numeric owner id
- * @property {number} gid - Numeric group id
- */
-
-/**
- * @typedef {Object} FileExecResult
- * @memberof LuCI.fs
- *
- * @property {number} code - The exit code of the invoked command
- * @property {string} [stdout] - The stdout produced by the command, if any
- * @property {string} [stderr] - The stderr produced by the command, if any
- */
-
-var callFileList, callFileStat, callFileRead, callFileWrite, callFileRemove,
-    callFileExec, callFileMD5;
-
-callFileList = rpc.declare({
-       object: 'file',
-       method: 'list',
-       params: [ 'path' ]
-});
-
-callFileStat = rpc.declare({
-       object: 'file',
-       method: 'stat',
-       params: [ 'path' ]
-});
-
-callFileRead = rpc.declare({
-       object: 'file',
-       method: 'read',
-       params: [ 'path' ]
-});
-
-callFileWrite = rpc.declare({
-       object: 'file',
-       method: 'write',
-       params: [ 'path', 'data', 'mode' ]
-});
-
-callFileRemove = rpc.declare({
-       object: 'file',
-       method: 'remove',
-       params: [ 'path' ]
-});
-
-callFileExec = rpc.declare({
-       object: 'file',
-       method: 'exec',
-       params: [ 'command', 'params', 'env' ]
-});
-
-callFileMD5 = rpc.declare({
-       object: 'file',
-       method: 'md5',
-       params: [ 'path' ]
-});
-
-var rpcErrors = [
-       null,
-       'InvalidCommandError',
-       'InvalidArgumentError',
-       'MethodNotFoundError',
-       'NotFoundError',
-       'NoDataError',
-       'PermissionError',
-       'TimeoutError',
-       'UnsupportedError'
-];
-
-function handleRpcReply(expect, rc) {
-       if (typeof(rc) == 'number' &amp;&amp; rc != 0) {
-               var e = new Error(rpc.getStatusText(rc)); e.name = rpcErrors[rc] || 'Error';
-               throw e;
-       }
-
-       if (expect) {
-               var type = Object.prototype.toString;
-
-               for (var key in expect) {
-                       if (rc != null &amp;&amp; key != '')
-                               rc = rc[key];
-
-                       if (rc == null || type.call(rc) != type.call(expect[key])) {
-                               var e = new Error(_('Unexpected reply data format')); e.name = 'TypeError';
-                               throw e;
-                       }
-
-                       break;
-               }
-       }
-
-       return rc;
-}
-
-/**
- * @class fs
- * @memberof LuCI
- * @hideconstructor
- * @classdesc
- *
- * Provides high level utilities to wrap file system related RPC calls.
- * To import the class in views, use `'require fs'`, to import it in
- * external JavaScript, use `L.require("fs").then(...)`.
- */
-var FileSystem = L.Class.extend(/** @lends LuCI.fs.prototype */ {
-       /**
-        * Obtains a listing of the specified directory.
-        *
-        * @param {string} path
-        * The directory path to list.
-        *
-        * @returns {Promise&lt;LuCI.fs.FileStatEntry[]>}
-        * Returns a promise resolving to an array of stat detail objects or
-        * rejecting with an error stating the failure reason.
-        */
-       list: function(path) {
-               return callFileList(path).then(handleRpcReply.bind(this, { entries: [] }));
-       },
-
-       /**
-        * Return file stat information on the specified path.
-        *
-        * @param {string} path
-        * The filesystem path to stat.
-        *
-        * @returns {Promise&lt;LuCI.fs.FileStatEntry>}
-        * Returns a promise resolving to a stat detail object or
-        * rejecting with an error stating the failure reason.
-        */
-       stat: function(path) {
-               return callFileStat(path).then(handleRpcReply.bind(this, { '': {} }));
-       },
-
-       /**
-        * Read the contents of the given file and return them.
-        * Note: this function is unsuitable for obtaining binary data.
-        *
-        * @param {string} path
-        * The file path to read.
-        *
-        * @returns {Promise&lt;string>}
-        * Returns a promise resolving to a string containing the file contents or
-        * rejecting with an error stating the failure reason.
-        */
-       read: function(path) {
-               return callFileRead(path).then(handleRpcReply.bind(this, { data: '' }));
-       },
-
-       /**
-        * Write the given data to the specified file path.
-        * If the specified file path does not exist, it will be created, given
-        * sufficient permissions.
-        *
-        * Note: `data` will be converted to a string using `String(data)` or to
-        * `''` when it is `null`.
-        *
-        * @param {string} path
-        * The file path to write to.
-        *
-        * @param {*} [data]
-        * The file data to write. If it is null, it will be set to an empty
-        * string.
-        *
-        * @param {number} [mode]
-        * The permissions to use on file creation. Default is 420 (0644).
-        *
-        * @returns {Promise&lt;number>}
-        * Returns a promise resolving to `0` or rejecting with an error stating
-        * the failure reason.
-        */
-       write: function(path, data, mode) {
-               data = (data != null) ? String(data) : '';
-               mode = (mode != null) ? mode : 420; // 0644
-               return callFileWrite(path, data, mode).then(handleRpcReply.bind(this, { '': 0 }));
-       },
-
-       /**
-        * Unlink the given file.
-        *
-        * @param {string}
-        * The file path to remove.
-        *
-        * @returns {Promise&lt;number>}
-        * Returns a promise resolving to `0` or rejecting with an error stating
-        * the failure reason.
-        */
-       remove: function(path) {
-               return callFileRemove(path).then(handleRpcReply.bind(this, { '': 0 }));
-       },
-
-       /**
-        * Execute the specified command, optionally passing params and
-        * environment variables.
-        *
-        * Note: The `command` must be either the path to an executable,
-        * or a basename without arguments in which case it will be searched
-        * in $PATH. If specified, the values given in `params` will be passed
-        * as arguments to the command.
-        *
-        * The key/value pairs in the optional `env` table are translated to
-        * `setenv()` calls prior to running the command.
-        *
-        * @param {string} command
-        * The command to invoke.
-        *
-        * @param {string[]} [params]
-        * The arguments to pass to the command.
-        *
-        * @param {Object.&lt;string, string>} [env]
-        * Environment variables to set.
-        *
-        * @returns {Promise&lt;LuCI.fs.FileExecResult>}
-        * Returns a promise resolving to an object describing the execution
-        * results or rejecting with an error stating the failure reason.
-        */
-       exec: function(command, params, env) {
-               if (!Array.isArray(params))
-                       params = null;
-
-               if (!L.isObject(env))
-                       env = null;
-
-               return callFileExec(command, params, env).then(handleRpcReply.bind(this, { '': {} }));
-       },
-
-       /**
-        * Read the contents of the given file, trim leading and trailing white
-        * space and return the trimmed result. In case of errors, return an empty
-        * string instead.
-        *
-        * Note: this function is useful to read single-value files in `/sys`
-        * or `/proc`.
-        *
-        * This function is guaranteed to not reject its promises, on failure,
-        * an empty string will be returned.
-        *
-        * @param {string} path
-        * The file path to read.
-        *
-        * @returns {Promise&lt;string>}
-        * Returns a promise resolving to the file contents or the empty string
-        * on failure.
-        */
-       trimmed: function(path) {
-               return L.resolveDefault(this.read(path), '').then(function(s) {
-                       return s.trim();
-               });
-       },
-
-       /**
-        * Read the contents of the given file, split it into lines, trim
-        * leading and trailing white space of each line and return the
-        * resulting array.
-        *
-        * This function is guaranteed to not reject its promises, on failure,
-        * an empty array will be returned.
-        *
-        * @param {string} path
-        * The file path to read.
-        *
-        * @returns {Promise&lt;string[]>}
-        * Returns a promise resolving to an array containing the stripped lines
-        * of the given file or `[]` on failure.
-        */
-       lines: function(path) {
-               return L.resolveDefault(this.read(path), '').then(function(s) {
-                       var lines = [];
-
-                       s = s.trim();
-
-                       if (s != '') {
-                               var l = s.split(/\n/);
-
-                               for (var i = 0; i &lt; l.length; i++)
-                                       lines.push(l[i].trim());
-                       }
-
-                       return lines;
-               });
-       }
-});
-
-return FileSystem;
-</code></pre>
-        </article>
-    </section>
-
-
-
-
-</div>
-
-<nav>
-    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="LuCI.html">LuCI</a></li><li><a href="LuCI.Class.html">Class</a></li><li><a href="LuCI.dom.html">dom</a></li><li><a href="LuCI.fs.html">fs</a></li><li><a href="LuCI.Headers.html">Headers</a></li><li><a href="LuCI.Network.html">Network</a></li><li><a href="LuCI.Network.Device.html">Device</a></li><li><a href="LuCI.Network.Hosts.html">Hosts</a></li><li><a href="LuCI.Network.Protocol.html">Protocol</a></li><li><a href="LuCI.Network.WifiDevice.html">WifiDevice</a></li><li><a href="LuCI.Network.WifiNetwork.html">WifiNetwork</a></li><li><a href="LuCI.Poll.html">Poll</a></li><li><a href="LuCI.Request.html">Request</a></li><li><a href="LuCI.Request.poll.html">poll</a></li><li><a href="LuCI.Response.html">Response</a></li><li><a href="LuCI.rpc.html">rpc</a></li><li><a href="LuCI.uci.html">uci</a></li><li><a href="LuCI.view.html">view</a></li><li><a href="LuCI.XHR.html">XHR</a></li></ul>
-</nav>
-
-<br class="clear">
-
-<footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 09:33:05 GMT+0100 (Central European Standard Time)
-</footer>
-
-<script> prettyPrint(); </script>
-<script src="scripts/linenumber.js"> </script>
-</body>
-</html>
diff --git a/documentation/jsapi/index.html b/documentation/jsapi/index.html
deleted file mode 100644 (file)
index 550ed9b..0000000
+++ /dev/null
@@ -1,1131 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8">
-    <title>Index</title>
-    
-    
-    <script src="scripts/prettify/prettify.js"></script>
-    <script src="scripts/prettify/lang-css.js"></script>
-    <script src="scripts/jquery.min.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/bootstrap.min.css">
-    <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
-    
-    
-    <script>
-    var config = {"monospaceLinks":true,"cleverLinks":true,"default":{}};
-    </script>
-    
-
-    
-</head>
-<body>
-<div id="wrap" class="clearfix">
-    
-<div class="navigation">
-    <h3 class="applicationName"><a href="index.html"></a></h3>
-
-    <div class="search">
-        <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
-    </div>
-    <ul class="list">
-    
-        <li class="item" data-name="LuCI">
-            <span class="title">
-                <a href="LuCI.html">LuCI</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
-            
-                <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
-            
-                <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
-            
-                <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
-            
-                <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
-            
-                <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
-            
-                <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
-            
-                <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
-            
-                <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
-            
-                <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
-            
-                <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
-            
-                <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
-            
-                <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
-            
-                <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
-            
-                <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
-            
-                <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
-            
-                <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
-            
-                <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
-            
-                <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Class">
-            <span class="title">
-                <a href="LuCI.Class.html">LuCI.Class</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
-            
-                <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
-            
-                <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
-            
-                <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
-            
-                <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
-            
-                <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.dom">
-            <span class="title">
-                <a href="LuCI.dom.html">LuCI.dom</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
-            
-                <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
-            
-                <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
-            
-                <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
-            
-                <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
-            
-                <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
-            
-                <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
-            
-                <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
-            
-                <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
-            
-                <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
-            
-                <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.fs">
-            <span class="title">
-                <a href="LuCI.fs.html">LuCI.fs</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
-            
-                <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
-            
-                <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
-            
-                <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
-            
-                <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
-            
-                <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
-            
-                <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
-            
-                <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Headers">
-            <span class="title">
-                <a href="LuCI.Headers.html">LuCI.Headers</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
-            
-                <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network">
-            <span class="title">
-                <a href="LuCI.Network.html">LuCI.Network</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
-            
-                <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
-            
-                <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
-            
-                <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
-            
-                <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
-            
-                <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
-            
-                <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
-            
-                <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
-            
-                <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
-            
-                <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
-            
-                <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
-            
-                <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
-            
-                <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
-            
-                <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
-            
-                <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
-            
-                <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
-            
-                <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
-            
-                <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
-            
-                <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
-            
-                <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Device">
-            <span class="title">
-                <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
-            
-                <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
-            
-                <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
-            
-                <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
-            
-                <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
-            
-                <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
-            
-                <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
-            
-                <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Hosts">
-            <span class="title">
-                <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.Protocol">
-            <span class="title">
-                <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
-            
-                <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiDevice">
-            <span class="title">
-                <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Network.WifiNetwork">
-            <span class="title">
-                <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
-            
-                <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Poll">
-            <span class="title">
-                <a href="LuCI.Poll.html">LuCI.Poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request">
-            <span class="title">
-                <a href="LuCI.Request.html">LuCI.Request</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
-            
-                <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
-            
-                <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
-            
-                <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Request.poll">
-            <span class="title">
-                <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
-            
-                <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
-            
-                <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
-            
-                <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.Response">
-            <span class="title">
-                <a href="LuCI.Response.html">LuCI.Response</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            <span class="subtitle">Members</span>
-            
-                <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
-            
-                <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
-            
-                <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
-            
-                <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
-            
-                <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
-            
-                <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
-            
-                <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
-            
-                <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.rpc">
-            <span class="title">
-                <a href="LuCI.rpc.html">LuCI.rpc</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
-            
-                <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
-            
-                <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
-            
-                <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
-            
-                <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
-            
-                <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
-            
-                <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
-            
-                <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
-            
-                <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
-            
-                <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.uci">
-            <span class="title">
-                <a href="LuCI.uci.html">LuCI.uci</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            <span class="subtitle">Typedefs</span>
-            
-                <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
-            
-                <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
-            
-                <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
-            
-                <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
-            
-                <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
-            
-                <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
-            
-                <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
-            
-                <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
-            
-                <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
-            
-                <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
-            
-                <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
-            
-                <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
-            
-                <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
-            
-                <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
-            
-                <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
-            
-                <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
-            
-                <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
-            
-                <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
-            
-                <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.view">
-            <span class="title">
-                <a href="LuCI.view.html">LuCI.view</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
-            
-                <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
-            
-                <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
-            
-                <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
-            
-                <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
-            
-                <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-        <li class="item" data-name="LuCI.XHR">
-            <span class="title">
-                <a href="LuCI.XHR.html">LuCI.XHR</a>
-                
-            </span>
-            <ul class="members itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="typedefs itemMembers">
-            
-            </ul>
-            <ul class="methods itemMembers">
-            
-            <span class="subtitle">Methods</span>
-            
-                <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
-            
-                <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
-            
-                <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
-            
-                <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
-            
-                <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
-            
-                <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
-            
-            </ul>
-            <ul class="events itemMembers">
-            
-            </ul>
-        </li>
-    
-    </ul>
-</div>
-    <div class="main">
-        <h1 class="page-title" data-filename="index.html">Index</h1>
-        
-
-
-    
-
-
-    <h3> </h3>
-
-
-
-
-
-
-
-
-    
-
-
-
-
-    <section>
-        <article class="readme"><h1>OpenWrt luci feed</h1>
-<p><a target="_blank" href="https://hosted.weblate.org/engage/openwrt/?utm_source=widget"><img src="https://hosted.weblate.org/widgets/openwrt/-/svg-badge.svg" alt="Translation status"></a></p>
-<h2>Description</h2>
-<p>This is the OpenWrt &quot;luci&quot;-feed containing LuCI - OpenWrt Configuration Interface.</p>
-<h2>Usage</h2>
-<p>This feed is enabled by default. Your feeds.conf.default (or feeds.conf) should contain a line like:</p>
-<pre class="prettyprint source"><code>src-git luci https://github.com/openwrt/luci.git
-</code></pre>
-<p>To install all its package definitions, run:</p>
-<pre class="prettyprint source"><code>./scripts/feeds update luci
-./scripts/feeds install -a -p luci
-</code></pre>
-<h2>API Reference</h2>
-<p>You can browse the generated API documentation directly on Github.</p>
-<ul>
-<li><a target="_blank" href="http://htmlpreview.github.io/?http://raw.githubusercontent.com/openwrt/luci/master/documentation/api/index.html">Server side Lua APIs</a></li>
-<li><a target="_blank" href="http://htmlpreview.github.io/?http://raw.githubusercontent.com/openwrt/luci/master/documentation/jsapi/index.html">Client side JavaScript APIs</a></li>
-</ul>
-<h2>Development</h2>
-<p>Documentation for developing and extending LuCI can be found <a target="_blank" href="https://github.com/openwrt/luci/wiki">in the Wiki</a></p>
-<h2>License</h2>
-<p>See <a href="LICENSE">LICENSE</a> file.</p>
-<h2>Package Guidelines</h2>
-<p>See <a href="CONTRIBUTING.md">CONTRIBUTING.md</a> file.</p>
-<h2>Translation status</h2>
-<p><a target="_blank" href="https://hosted.weblate.org/engage/openwrt/?utm_source=widget"><img src="https://hosted.weblate.org/widgets/openwrt/-/multi-auto.svg" alt="Translation status"></a></p></article>
-    </section>
-
-
-
-
-
-
-        
-
-        <footer>
-            Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 10:17:12 GMT+0100 (Central European Standard Time)
-        </footer>
-    </div>
-</div>
-<script>prettyPrint();</script>
-<script src="scripts/jaguar.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/documentation/jsapi/luci.js.html b/documentation/jsapi/luci.js.html
deleted file mode 100644 (file)
index 7cad32c..0000000
+++ /dev/null
@@ -1,3125 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="utf-8">
-    <title>JSDoc: Source: luci.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: luci.js</h1>
-
-    
-
-
-
-    
-    <section>
-        <article>
-            <pre class="prettyprint source linenums"><code>/**
- * @class LuCI
- * @classdesc
- *
- * This is the LuCI base class. It is automatically instantiated and
- * accessible using the global `L` variable.
- *
- * @param {Object} env
- * The environment settings to use for the LuCI runtime.
- */
-
-(function(window, document, undefined) {
-       'use strict';
-
-       /* Object.assign polyfill for IE */
-       if (typeof Object.assign !== 'function') {
-               Object.defineProperty(Object, 'assign', {
-                       value: function assign(target, varArgs) {
-                               if (target == null)
-                                       throw new TypeError('Cannot convert undefined or null to object');
-
-                               var to = Object(target);
-
-                               for (var index = 1; index &lt; arguments.length; index++)
-                                       if (arguments[index] != null)
-                                               for (var nextKey in arguments[index])
-                                                       if (Object.prototype.hasOwnProperty.call(arguments[index], nextKey))
-                                                               to[nextKey] = arguments[index][nextKey];
-
-                               return to;
-                       },
-                       writable: true,
-                       configurable: true
-               });
-       }
-
-       /* Promise.finally polyfill */
-       if (typeof Promise.prototype.finally !== 'function') {
-               Promise.prototype.finally = function(fn) {
-                       var onFinally = function(cb) {
-                               return Promise.resolve(fn.call(this)).then(cb);
-                       };
-
-                       return this.then(
-                               function(result) { return onFinally.call(this, function() { return result }) },
-                               function(reason) { return onFinally.call(this, function() { return Promise.reject(reason) }) }
-                       );
-               };
-       }
-
-       /*
-        * Class declaration and inheritance helper
-        */
-
-       var toCamelCase = function(s) {
-               return s.replace(/(?:^|[\. -])(.)/g, function(m0, m1) { return m1.toUpperCase() });
-       };
-
-       /**
-        * @class Class
-        * @hideconstructor
-        * @memberof LuCI
-        * @classdesc
-        *
-        * `LuCI.Class` is the abstract base class all LuCI classes inherit from.
-        *
-        * It provides simple means to create subclasses of given classes and
-        * implements prototypal inheritance.
-        */
-       var superContext = null, Class = Object.assign(function() {}, {
-               /**
-                * Extends this base class with the properties described in
-                * `properties` and returns a new subclassed Class instance
-                *
-                * @memberof LuCI.Class
-                *
-                * @param {Object&lt;string, *>} properties
-                * An object describing the properties to add to the new
-                * subclass.
-                *
-                * @returns {LuCI.Class}
-                * Returns a new LuCI.Class sublassed from this class, extended
-                * by the given properties and with its prototype set to this base
-                * class to enable inheritance. The resulting value represents a
-                * class constructor and can be instantiated with `new`.
-                */
-               extend: function(properties) {
-                       var props = {
-                               __base__: { value: this.prototype },
-                               __name__: { value: properties.__name__ || 'anonymous' }
-                       };
-
-                       var ClassConstructor = function() {
-                               if (!(this instanceof ClassConstructor))
-                                       throw new TypeError('Constructor must not be called without "new"');
-
-                               if (Object.getPrototypeOf(this).hasOwnProperty('__init__')) {
-                                       if (typeof(this.__init__) != 'function')
-                                               throw new TypeError('Class __init__ member is not a function');
-
-                                       this.__init__.apply(this, arguments)
-                               }
-                               else {
-                                       this.super('__init__', arguments);
-                               }
-                       };
-
-                       for (var key in properties)
-                               if (!props[key] &amp;&amp; properties.hasOwnProperty(key))
-                                       props[key] = { value: properties[key], writable: true };
-
-                       ClassConstructor.prototype = Object.create(this.prototype, props);
-                       ClassConstructor.prototype.constructor = ClassConstructor;
-                       Object.assign(ClassConstructor, this);
-                       ClassConstructor.displayName = toCamelCase(props.__name__.value + 'Class');
-
-                       return ClassConstructor;
-               },
-
-               /**
-                * Extends this base class with the properties described in
-                * `properties`, instantiates the resulting subclass using
-                * the additional optional arguments passed to this function
-                * and returns the resulting subclassed Class instance.
-                *
-                * This function serves as a convenience shortcut for
-                * {@link LuCI.Class.extend Class.extend()} and subsequent
-                * `new`.
-                *
-                * @memberof LuCI.Class
-                *
-                * @param {Object&lt;string, *>} properties
-                * An object describing the properties to add to the new
-                * subclass.
-                *
-                * @param {...*} [new_args]
-                * Specifies arguments to be passed to the subclass constructor
-                * as-is in order to instantiate the new subclass.
-                *
-                * @returns {LuCI.Class}
-                * Returns a new LuCI.Class instance extended by the given
-                * properties with its prototype set to this base class to
-                * enable inheritance.
-                */
-               singleton: function(properties /*, ... */) {
-                       return Class.extend(properties)
-                               .instantiate(Class.prototype.varargs(arguments, 1));
-               },
-
-               /**
-                * Calls the class constructor using `new` with the given argument
-                * array being passed as variadic parameters to the constructor.
-                *
-                * @memberof LuCI.Class
-                *
-                * @param {Array&lt;*>} params
-                * An array of arbitrary values which will be passed as arguments
-                * to the constructor function.
-                *
-                * @param {...*} [new_args]
-                * Specifies arguments to be passed to the subclass constructor
-                * as-is in order to instantiate the new subclass.
-                *
-                * @returns {LuCI.Class}
-                * Returns a new LuCI.Class instance extended by the given
-                * properties with its prototype set to this base class to
-                * enable inheritance.
-                */
-               instantiate: function(args) {
-                       return new (Function.prototype.bind.apply(this,
-                               Class.prototype.varargs(args, 0, null)))();
-               },
-
-               /* unused */
-               call: function(self, method) {
-                       if (typeof(this.prototype[method]) != 'function')
-                               throw new ReferenceError(method + ' is not defined in class');
-
-                       return this.prototype[method].apply(self, self.varargs(arguments, 1));
-               },
-
-               /**
-                * Checks whether the given class value is a subclass of this class.
-                *
-                * @memberof LuCI.Class
-                *
-                * @param {LuCI.Class} classValue
-                * The class object to test.
-                *
-                * @returns {boolean}
-                * Returns `true` when the given `classValue` is a subclass of this
-                * class or `false` if the given value is not a valid class or not
-                * a subclass of this class'.
-                */
-               isSubclass: function(classValue) {
-                       return (classValue != null &amp;&amp;
-                               typeof(classValue) == 'function' &amp;&amp;
-                               classValue.prototype instanceof this);
-               },
-
-               prototype: {
-                       /**
-                        * Extract all values from the given argument array beginning from
-                        * `offset` and prepend any further given optional parameters to
-                        * the beginning of the resulting array copy.
-                        *
-                        * @memberof LuCI.Class
-                        * @instance
-                        *
-                        * @param {Array&lt;*>} args
-                        * The array to extract the values from.
-                        *
-                        * @param {number} offset
-                        * The offset from which to extract the values. An offset of `0`
-                        * would copy all values till the end.
-                        *
-                        * @param {...*} [extra_args]
-                        * Extra arguments to add to prepend to the resultung array.
-                        *
-                        * @returns {Array&lt;*>}
-                        * Returns a new array consisting of the optional extra arguments
-                        * and the values extracted from the `args` array beginning with
-                        * `offset`.
-                        */
-                       varargs: function(args, offset /*, ... */) {
-                               return Array.prototype.slice.call(arguments, 2)
-                                       .concat(Array.prototype.slice.call(args, offset));
-                       },
-
-                       /**
-                        * Walks up the parent class chain and looks for a class member
-                        * called `key` in any of the parent classes this class inherits
-                        * from. Returns the member value of the superclass or calls the
-                        * member as function and returns its return value when the
-                        * optional `callArgs` array is given.
-                        *
-                        * This function has two signatures and is sensitive to the
-                        * amount of arguments passed to it:
-                        *  - `super('key')` -
-                        *    Returns the value of `key` when found within one of the
-                        *    parent classes.
-                        *  - `super('key', ['arg1', 'arg2'])` -
-                        *    Calls the `key()` method with parameters `arg1` and `arg2`
-                        *    when found within one of the parent classes.
-                        *
-                        * @memberof LuCI.Class
-                        * @instance
-                        *
-                        * @param {string} key
-                        * The name of the superclass member to retrieve.
-                        *
-                        * @param {Array&lt;*>} [callArgs]
-                        * An optional array of function call parameters to use. When
-                        * this parameter is specified, the found member value is called
-                        * as function using the values of this array as arguments.
-                        *
-                        * @throws {ReferenceError}
-                        * Throws a `ReferenceError` when `callArgs` are specified and
-                        * the found member named by `key` is not a function value.
-                        *
-                        * @returns {*|null}
-                        * Returns the value of the found member or the return value of
-                        * the call to the found method. Returns `null` when no member
-                        * was found in the parent class chain or when the call to the
-                        * superclass method returned `null`.
-                        */
-                       super: function(key, callArgs) {
-                               for (superContext = Object.getPrototypeOf(superContext ||
-                                                                         Object.getPrototypeOf(this));
-                                    superContext &amp;&amp; !superContext.hasOwnProperty(key);
-                                    superContext = Object.getPrototypeOf(superContext)) { }
-
-                               if (!superContext)
-                                       return null;
-
-                               var res = superContext[key];
-
-                               if (arguments.length > 1) {
-                                       if (typeof(res) != 'function')
-                                               throw new ReferenceError(key + ' is not a function in base class');
-
-                                       if (typeof(callArgs) != 'object')
-                                               callArgs = this.varargs(arguments, 1);
-
-                                       res = res.apply(this, callArgs);
-                               }
-
-                               superContext = null;
-
-                               return res;
-                       },
-
-                       /**
-                        * Returns a string representation of this class.
-                        *
-                        * @returns {string}
-                        * Returns a string representation of this class containing the
-                        * constructor functions `displayName` and describing the class
-                        * members and their respective types.
-                        */
-                       toString: function() {
-                               var s = '[' + this.constructor.displayName + ']', f = true;
-                               for (var k in this) {
-                                       if (this.hasOwnProperty(k)) {
-                                               s += (f ? ' {\n' : '') + '  ' + k + ': ' + typeof(this[k]) + '\n';
-                                               f = false;
-                                       }
-                               }
-                               return s + (f ? '' : '}');
-                       }
-               }
-       });
-
-
-       /**
-        * @class
-        * @memberof LuCI
-        * @hideconstructor
-        * @classdesc
-        *
-        * The `Headers` class is an internal utility class exposed in HTTP
-        * response objects using the `response.headers` property.
-        */
-       var Headers = Class.extend(/** @lends LuCI.Headers.prototype */ {
-               __name__: 'LuCI.XHR.Headers',
-               __init__: function(xhr) {
-                       var hdrs = this.headers = {};
-                       xhr.getAllResponseHeaders().split(/\r\n/).forEach(function(line) {
-                               var m = /^([^:]+):(.*)$/.exec(line);
-                               if (m != null)
-                                       hdrs[m[1].trim().toLowerCase()] = m[2].trim();
-                       });
-               },
-
-               /**
-                * Checks whether the given header name is present.
-                * Note: Header-Names are case-insensitive.
-                *
-                * @instance
-                * @memberof LuCI.Headers
-                * @param {string} name
-                * The header name to check
-                *
-                * @returns {boolean}
-                * Returns `true` if the header name is present, `false` otherwise
-                */
-               has: function(name) {
-                       return this.headers.hasOwnProperty(String(name).toLowerCase());
-               },
-
-               /**
-                * Returns the value of the given header name.
-                * Note: Header-Names are case-insensitive.
-                *
-                * @instance
-                * @memberof LuCI.Headers
-                * @param {string} name
-                * The header name to read
-                *
-                * @returns {string|null}
-                * The value of the given header name or `null` if the header isn't present.
-                */
-               get: function(name) {
-                       var key = String(name).toLowerCase();
-                       return this.headers.hasOwnProperty(key) ? this.headers[key] : null;
-               }
-       });
-
-       /**
-        * @class
-        * @memberof LuCI
-        * @hideconstructor
-        * @classdesc
-        *
-        * The `Response` class is an internal utility class representing HTTP responses.
-        */
-       var Response = Class.extend({
-               __name__: 'LuCI.XHR.Response',
-               __init__: function(xhr, url, duration, headers, content) {
-                       /**
-                        * Describes whether the response is successful (status codes `200..299`) or not
-                        * @instance
-                        * @memberof LuCI.Response
-                        * @name ok
-                        * @type {boolean}
-                        */
-                       this.ok = (xhr.status >= 200 &amp;&amp; xhr.status &lt;= 299);
-
-                       /**
-                        * The numeric HTTP status code of the response
-                        * @instance
-                        * @memberof LuCI.Response
-                        * @name status
-                        * @type {number}
-                        */
-                       this.status = xhr.status;
-
-                       /**
-                        * The HTTP status description message of the response
-                        * @instance
-                        * @memberof LuCI.Response
-                        * @name statusText
-                        * @type {string}
-                        */
-                       this.statusText = xhr.statusText;
-
-                       /**
-                        * The HTTP headers of the response
-                        * @instance
-                        * @memberof LuCI.Response
-                        * @name headers
-                        * @type {LuCI.Headers}
-                        */
-                       this.headers = (headers != null) ? headers : new Headers(xhr);
-
-                       /**
-                        * The total duration of the HTTP request in milliseconds
-                        * @instance
-                        * @memberof LuCI.Response
-                        * @name duration
-                        * @type {number}
-                        */
-                       this.duration = duration;
-
-                       /**
-                        * The final URL of the request, i.e. after following redirects.
-                        * @instance
-                        * @memberof LuCI.Response
-                        * @name url
-                        * @type {string}
-                        */
-                       this.url = url;
-
-                       /* privates */
-                       this.xhr = xhr;
-
-                       if (content != null &amp;&amp; typeof(content) == 'object') {
-                               this.responseJSON = content;
-                               this.responseText = null;
-                       }
-                       else if (content != null) {
-                               this.responseJSON = null;
-                               this.responseText = String(content);
-                       }
-                       else {
-                               this.responseJSON = null;
-                               this.responseText = xhr.responseText;
-                       }
-               },
-
-               /**
-                * Clones the given response object, optionally overriding the content
-                * of the cloned instance.
-                *
-                * @instance
-                * @memberof LuCI.Response
-                * @param {*} [content]
-                * Override the content of the cloned response. Object values will be
-                * treated as JSON response data, all other types will be converted
-                * using `String()` and treated as response text.
-                *
-                * @returns {LuCI.Response}
-                * The cloned `Response` instance.
-                */
-               clone: function(content) {
-                       var copy = new Response(this.xhr, this.url, this.duration, this.headers, content);
-
-                       copy.ok = this.ok;
-                       copy.status = this.status;
-                       copy.statusText = this.statusText;
-
-                       return copy;
-               },
-
-               /**
-                * Access the response content as JSON data.
-                *
-                * @instance
-                * @memberof LuCI.Response
-                * @throws {SyntaxError}
-                * Throws `SyntaxError` if the content isn't valid JSON.
-                *
-                * @returns {*}
-                * The parsed JSON data.
-                */
-               json: function() {
-                       if (this.responseJSON == null)
-                               this.responseJSON = JSON.parse(this.responseText);
-
-                       return this.responseJSON;
-               },
-
-               /**
-                * Access the response content as string.
-                *
-                * @instance
-                * @memberof LuCI.Response
-                * @returns {string}
-                * The response content.
-                */
-               text: function() {
-                       if (this.responseText == null &amp;&amp; this.responseJSON != null)
-                               this.responseText = JSON.stringify(this.responseJSON);
-
-                       return this.responseText;
-               }
-       });
-
-
-       var requestQueue = [];
-
-       function isQueueableRequest(opt) {
-               if (!classes.rpc)
-                       return false;
-
-               if (opt.method != 'POST' || typeof(opt.content) != 'object')
-                       return false;
-
-               if (opt.nobatch === true)
-                       return false;
-
-               var rpcBaseURL = Request.expandURL(classes.rpc.getBaseURL());
-
-               return (rpcBaseURL != null &amp;&amp; opt.url.indexOf(rpcBaseURL) == 0);
-       }
-
-       function flushRequestQueue() {
-               if (!requestQueue.length)
-                       return;
-
-               var reqopt = Object.assign({}, requestQueue[0][0], { content: [], nobatch: true }),
-                   batch = [];
-
-               for (var i = 0; i &lt; requestQueue.length; i++) {
-                       batch[i] = requestQueue[i];
-                       reqopt.content[i] = batch[i][0].content;
-               }
-
-               requestQueue.length = 0;
-
-               Request.request(rpcBaseURL, reqopt).then(function(reply) {
-                       var json = null, req = null;
-
-                       try { json = reply.json() }
-                       catch(e) { }
-
-                       while ((req = batch.shift()) != null)
-                               if (Array.isArray(json) &amp;&amp; json.length)
-                                       req[2].call(reqopt, reply.clone(json.shift()));
-                               else
-                                       req[1].call(reqopt, new Error('No related RPC reply'));
-               }).catch(function(error) {
-                       var req = null;
-
-                       while ((req = batch.shift()) != null)
-                               req[1].call(reqopt, error);
-               });
-       }
-
-       /**
-        * @class
-        * @memberof LuCI
-        * @hideconstructor
-        * @classdesc
-        *
-        * The `Request` class allows initiating HTTP requests and provides utilities
-        * for dealing with responses.
-        */
-       var Request = Class.singleton(/** @lends LuCI.Request.prototype */ {
-               __name__: 'LuCI.Request',
-
-               interceptors: [],
-
-               /**
-                * Turn the given relative URL into an absolute URL if necessary.
-                *
-                * @instance
-                * @memberof LuCI.Request
-                * @param {string} url
-                * The URL to convert.
-                *
-                * @returns {string}
-                * The absolute URL derived from the given one, or the original URL
-                * if it already was absolute.
-                */
-               expandURL: function(url) {
-                       if (!/^(?:[^/]+:)?\/\//.test(url))
-                               url = location.protocol + '//' + location.host + url;
-
-                       return url;
-               },
-
-               /**
-                * @typedef {Object} RequestOptions
-                * @memberof LuCI.Request
-                *
-                * @property {string} [method=GET]
-                * The HTTP method to use, e.g. `GET` or `POST`.
-                *
-                * @property {Object&lt;string, Object|string>} [query]
-                * Query string data to append to the URL. Non-string values of the
-                * given object will be converted to JSON.
-                *
-                * @property {boolean} [cache=false]
-                * Specifies whether the HTTP response may be retrieved from cache.
-                *
-                * @property {string} [username]
-                * Provides a username for HTTP basic authentication.
-                *
-                * @property {string} [password]
-                * Provides a password for HTTP basic authentication.
-                *
-                * @property {number} [timeout]
-                * Specifies the request timeout in seconds.
-                *
-                * @property {boolean} [credentials=false]
-                * Whether to include credentials such as cookies in the request.
-                *
-                * @property {*} [content]
-                * Specifies the HTTP message body to send along with the request.
-                * If the value is a function, it is invoked and the return value
-                * used as content, if it is a FormData instance, it is used as-is,
-                * if it is an object, it will be converted to JSON, in all other
-                * cases it is converted to a string.
-                *
-            * @property {Object&lt;string, string>} [header]
-            * Specifies HTTP headers to set for the request.
-            *
-            * @property {function} [progress]
-            * An optional request callback function which receives ProgressEvent
-            * instances as sole argument during the HTTP request transfer.
-                */
-
-               /**
-                * Initiate an HTTP request to the given target.
-                *
-                * @instance
-                * @memberof LuCI.Request
-                * @param {string} target
-                * The URL to request.
-                *
-                * @param {LuCI.Request.RequestOptions} [options]
-                * Additional options to configure the request.
-                *
-                * @returns {Promise&lt;LuCI.Response>}
-                * The resulting HTTP response.
-                */
-               request: function(target, options) {
-                       var state = { xhr: new XMLHttpRequest(), url: this.expandURL(target), start: Date.now() },
-                           opt = Object.assign({}, options, state),
-                           content = null,
-                           contenttype = null,
-                           callback = this.handleReadyStateChange;
-
-                       return new Promise(function(resolveFn, rejectFn) {
-                               opt.xhr.onreadystatechange = callback.bind(opt, resolveFn, rejectFn);
-                               opt.method = String(opt.method || 'GET').toUpperCase();
-
-                               if ('query' in opt) {
-                                       var q = (opt.query != null) ? Object.keys(opt.query).map(function(k) {
-                                               if (opt.query[k] != null) {
-                                                       var v = (typeof(opt.query[k]) == 'object')
-                                                               ? JSON.stringify(opt.query[k])
-                                                               : String(opt.query[k]);
-
-                                                       return '%s=%s'.format(encodeURIComponent(k), encodeURIComponent(v));
-                                               }
-                                               else {
-                                                       return encodeURIComponent(k);
-                                               }
-                                       }).join('&amp;') : '';
-
-                                       if (q !== '') {
-                                               switch (opt.method) {
-                                               case 'GET':
-                                               case 'HEAD':
-                                               case 'OPTIONS':
-                                                       opt.url += ((/\?/).test(opt.url) ? '&amp;' : '?') + q;
-                                                       break;
-
-                                               default:
-                                                       if (content == null) {
-                                                               content = q;
-                                                               contenttype = 'application/x-www-form-urlencoded';
-                                                       }
-                                               }
-                                       }
-                               }
-
-                               if (!opt.cache)
-                                       opt.url += ((/\?/).test(opt.url) ? '&amp;' : '?') + (new Date()).getTime();
-
-                               if (isQueueableRequest(opt)) {
-                                       requestQueue.push([opt, rejectFn, resolveFn]);
-                                       requestAnimationFrame(flushRequestQueue);
-                                       return;
-                               }
-
-                               if ('username' in opt &amp;&amp; 'password' in opt)
-                                       opt.xhr.open(opt.method, opt.url, true, opt.username, opt.password);
-                               else
-                                       opt.xhr.open(opt.method, opt.url, true);
-
-                               opt.xhr.responseType = 'text';
-
-                               if ('overrideMimeType' in opt.xhr)
-                                       opt.xhr.overrideMimeType('application/octet-stream');
-
-                               if ('timeout' in opt)
-                                       opt.xhr.timeout = +opt.timeout;
-
-                               if ('credentials' in opt)
-                                       opt.xhr.withCredentials = !!opt.credentials;
-
-                               if (opt.content != null) {
-                                       switch (typeof(opt.content)) {
-                                       case 'function':
-                                               content = opt.content(xhr);
-                                               break;
-
-                                       case 'object':
-                                               if (!(opt.content instanceof FormData)) {
-                                                       content = JSON.stringify(opt.content);
-                                                       contenttype = 'application/json';
-                                               }
-                                               else {
-                                                       content = opt.content;
-                                               }
-                                               break;
-
-                                       default:
-                                               content = String(opt.content);
-                                       }
-                               }
-
-                               if ('headers' in opt)
-                                       for (var header in opt.headers)
-                                               if (opt.headers.hasOwnProperty(header)) {
-                                                       if (header.toLowerCase() != 'content-type')
-                                                               opt.xhr.setRequestHeader(header, opt.headers[header]);
-                                                       else
-                                                               contenttype = opt.headers[header];
-                                               }
-
-                               if ('progress' in opt &amp;&amp; 'upload' in opt.xhr)
-                                       opt.xhr.upload.addEventListener('progress', opt.progress);
-
-                               if (contenttype != null)
-                                       opt.xhr.setRequestHeader('Content-Type', contenttype);
-
-                               try {
-                                       opt.xhr.send(content);
-                               }
-                               catch (e) {
-                                       rejectFn.call(opt, e);
-                               }
-                       });
-               },
-
-               handleReadyStateChange: function(resolveFn, rejectFn, ev) {
-                       var xhr = this.xhr,
-                           duration = Date.now() - this.start;
-
-                       if (xhr.readyState !== 4)
-                               return;
-
-                       if (xhr.status === 0 &amp;&amp; xhr.statusText === '') {
-                               if (duration >= this.timeout)
-                                       rejectFn.call(this, new Error('XHR request timed out'));
-                               else
-                                       rejectFn.call(this, new Error('XHR request aborted by browser'));
-                       }
-                       else {
-                               var response = new Response(
-                                       xhr, xhr.responseURL || this.url, duration);
-
-                               Promise.all(Request.interceptors.map(function(fn) { return fn(response) }))
-                                       .then(resolveFn.bind(this, response))
-                                       .catch(rejectFn.bind(this));
-                       }
-               },
-
-               /**
-                * Initiate an HTTP GET request to the given target.
-                *
-                * @instance
-                * @memberof LuCI.Request
-                * @param {string} target
-                * The URL to request.
-                *
-                * @param {LuCI.Request.RequestOptions} [options]
-                * Additional options to configure the request.
-                *
-                * @returns {Promise&lt;LuCI.Response>}
-                * The resulting HTTP response.
-                */
-               get: function(url, options) {
-                       return this.request(url, Object.assign({ method: 'GET' }, options));
-               },
-
-               /**
-                * Initiate an HTTP POST request to the given target.
-                *
-                * @instance
-                * @memberof LuCI.Request
-                * @param {string} target
-                * The URL to request.
-                *
-                * @param {*} [data]
-                * The request data to send, see {@link LuCI.Request.RequestOptions} for details.
-                *
-                * @param {LuCI.Request.RequestOptions} [options]
-                * Additional options to configure the request.
-                *
-                * @returns {Promise&lt;LuCI.Response>}
-                * The resulting HTTP response.
-                */
-               post: function(url, data, options) {
-                       return this.request(url, Object.assign({ method: 'POST', content: data }, options));
-               },
-
-               /**
-                * Interceptor functions are invoked whenever an HTTP reply is received, in the order
-                * these functions have been registered.
-                * @callback LuCI.Request.interceptorFn
-                * @param {LuCI.Response} res
-                * The HTTP response object
-                */
-
-               /**
-                * Register an HTTP response interceptor function. Interceptor
-                * functions are useful to perform default actions on incoming HTTP
-                * responses, such as checking for expired authentication or for
-                * implementing request retries before returning a failure.
-                *
-                * @instance
-                * @memberof LuCI.Request
-                * @param {LuCI.Request.interceptorFn} interceptorFn
-                * The interceptor function to register.
-                *
-                * @returns {LuCI.Request.interceptorFn}
-                * The registered function.
-                */
-               addInterceptor: function(interceptorFn) {
-                       if (typeof(interceptorFn) == 'function')
-                               this.interceptors.push(interceptorFn);
-                       return interceptorFn;
-               },
-
-               /**
-                * Remove an HTTP response interceptor function. The passed function
-                * value must be the very same value that was used to register the
-                * function.
-                *
-                * @instance
-                * @memberof LuCI.Request
-                * @param {LuCI.Request.interceptorFn} interceptorFn
-                * The interceptor function to remove.
-                *
-                * @returns {boolean}
-                * Returns `true` if any function has been removed, else `false`.
-                */
-               removeInterceptor: function(interceptorFn) {
-                       var oldlen = this.interceptors.length, i = oldlen;
-                       while (i--)
-                               if (this.interceptors[i] === interceptorFn)
-                                       this.interceptors.splice(i, 1);
-                       return (this.interceptors.length &lt; oldlen);
-               },
-
-               /**
-                * @class
-                * @memberof LuCI.Request
-                * @hideconstructor
-                * @classdesc
-                *
-                * The `Request.poll` class provides some convience wrappers around
-                * {@link LuCI.Poll} mainly to simplify registering repeating HTTP
-                * request calls as polling functions.
-                */
-               poll: {
-                       /**
-                        * The callback function is invoked whenever an HTTP reply to a
-                        * polled request is received or when the polled request timed
-                        * out.
-                        *
-                        * @callback LuCI.Request.poll~callbackFn
-                        * @param {LuCI.Response} res
-                        * The HTTP response object.
-                        *
-                        * @param {*} data
-                        * The response JSON if the response could be parsed as such,
-                        * else `null`.
-                        *
-                        * @param {number} duration
-                        * The total duration of the request in milliseconds.
-                        */
-
-                       /**
-                        * Register a repeating HTTP request with an optional callback
-                        * to invoke whenever a response for the request is received.
-                        *
-                        * @instance
-                        * @memberof LuCI.Request.poll
-                        * @param {number} interval
-                        * The poll interval in seconds.
-                        *
-                        * @param {string} url
-                        * The URL to request on each poll.
-                        *
-                        * @param {LuCI.Request.RequestOptions} [options]
-                        * Additional options to configure the request.
-                        *
-                        * @param {LuCI.Request.poll~callbackFn} [callback]
-                        * {@link LuCI.Request.poll~callbackFn Callback} function to
-                        * invoke for each HTTP reply.
-                        *
-                        * @throws {TypeError}
-                        * Throws `TypeError` when an invalid interval was passed.
-                        *
-                        * @returns {function}
-                        * Returns the internally created poll function.
-                        */
-                       add: function(interval, url, options, callback) {
-                               if (isNaN(interval) || interval &lt;= 0)
-                                       throw new TypeError('Invalid poll interval');
-
-                               var ival = interval >>> 0,
-                                   opts = Object.assign({}, options, { timeout: ival * 1000 - 5 });
-
-                               var fn = function() {
-                                       return Request.request(url, options).then(function(res) {
-                                               if (!Poll.active())
-                                                       return;
-
-                                               try {
-                                                       callback(res, res.json(), res.duration);
-                                               }
-                                               catch (err) {
-                                                       callback(res, null, res.duration);
-                                               }
-                                       });
-                               };
-
-                               return (Poll.add(fn, ival) ? fn : null);
-                       },
-
-                       /**
-                        * Remove a polling request that has been previously added using `add()`.
-                        * This function is essentially a wrapper around
-                        * {@link LuCI.Poll.remove LuCI.Poll.remove()}.
-                        *
-                        * @instance
-                        * @memberof LuCI.Request.poll
-                        * @param {function} entry
-                        * The poll function returned by {@link LuCI.Request.poll#add add()}.
-                        *
-                        * @returns {boolean}
-                        * Returns `true` if any function has been removed, else `false`.
-                        */
-                       remove: function(entry) { return Poll.remove(entry) },
-
-                       /**
-                         * Alias for {@link LuCI.Poll.start LuCI.Poll.start()}.
-                         *
-                         * @instance
-                         * @memberof LuCI.Request.poll
-                         */
-                       start: function() { return Poll.start() },
-
-                       /**
-                         * Alias for {@link LuCI.Poll.stop LuCI.Poll.stop()}.
-                         *
-                         * @instance
-                         * @memberof LuCI.Request.poll
-                         */
-                       stop: function() { return Poll.stop() },
-
-                       /**
-                         * Alias for {@link LuCI.Poll.active LuCI.Poll.active()}.
-                         *
-                         * @instance
-                         * @memberof LuCI.Request.poll
-                         */
-                       active: function() { return Poll.active() }
-               }
-       });
-
-       /**
-        * @class
-        * @memberof LuCI
-        * @hideconstructor
-        * @classdesc
-        *
-        * The `Poll` class allows registering and unregistering poll actions,
-        * as well as starting, stopping and querying the state of the polling
-        * loop.
-        */
-       var Poll = Class.singleton(/** @lends LuCI.Poll.prototype */ {
-               __name__: 'LuCI.Poll',
-
-               queue: [],
-
-               /**
-                * Add a new operation to the polling loop. If the polling loop is not
-                * already started at this point, it will be implicitely started.
-                *
-                * @instance
-                * @memberof LuCI.Poll
-                * @param {function} fn
-                * The function to invoke on each poll interval.
-                *
-                * @param {number} interval
-                * The poll interval in seconds.
-                *
-                * @throws {TypeError}
-                * Throws `TypeError` when an invalid interval was passed.
-                *
-                * @returns {boolean}
-                * Returns `true` if the function has been added or `false` if it
-                * already is registered.
-                */
-               add: function(fn, interval) {
-                       if (interval == null || interval &lt;= 0)
-                               interval = window.L ? window.L.env.pollinterval : null;
-
-                       if (isNaN(interval) || typeof(fn) != 'function')
-                               throw new TypeError('Invalid argument to LuCI.Poll.add()');
-
-                       for (var i = 0; i &lt; this.queue.length; i++)
-                               if (this.queue[i].fn === fn)
-                                       return false;
-
-                       var e = {
-                               r: true,
-                               i: interval >>> 0,
-                               fn: fn
-                       };
-
-                       this.queue.push(e);
-
-                       if (this.tick != null &amp;&amp; !this.active())
-                               this.start();
-
-                       return true;
-               },
-
-               /**
-                * Remove an operation from the polling loop. If no further operatons
-                * are registered, the polling loop is implicitely stopped.
-                *
-                * @instance
-                * @memberof LuCI.Poll
-                * @param {function} fn
-                * The function to remove.
-                *
-                * @throws {TypeError}
-                * Throws `TypeError` when the given argument isn't a function.
-                *
-                * @returns {boolean}
-                * Returns `true` if the function has been removed or `false` if it
-                * wasn't found.
-                */
-               remove: function(fn) {
-                       if (typeof(fn) != 'function')
-                               throw new TypeError('Invalid argument to LuCI.Poll.remove()');
-
-                       var len = this.queue.length;
-
-                       for (var i = len; i > 0; i--)
-                               if (this.queue[i-1].fn === fn)
-                                       this.queue.splice(i-1, 1);
-
-                       if (!this.queue.length &amp;&amp; this.stop())
-                               this.tick = 0;
-
-                       return (this.queue.length != len);
-               },
-
-               /**
-                * (Re)start the polling loop. Dispatches a custom `poll-start` event
-                * to the `document` object upon successful start.
-                *
-                * @instance
-                * @memberof LuCI.Poll
-                * @returns {boolean}
-                * Returns `true` if polling has been started (or if no functions
-                * where registered) or `false` when the polling loop already runs.
-                */
-               start: function() {
-                       if (this.active())
-                               return false;
-
-                       this.tick = 0;
-
-                       if (this.queue.length) {
-                               this.timer = window.setInterval(this.step, 1000);
-                               this.step();
-                               document.dispatchEvent(new CustomEvent('poll-start'));
-                       }
-
-                       return true;
-               },
-
-               /**
-                * Stop the polling loop. Dispatches a custom `poll-stop` event
-                * to the `document` object upon successful stop.
-                *
-                * @instance
-                * @memberof LuCI.Poll
-                * @returns {boolean}
-                * Returns `true` if polling has been stopped or `false` if it din't
-                * run to begin with.
-                */
-               stop: function() {
-                       if (!this.active())
-                               return false;
-
-                       document.dispatchEvent(new CustomEvent('poll-stop'));
-                       window.clearInterval(this.timer);
-                       delete this.timer;
-                       delete this.tick;
-                       return true;
-               },
-
-               /* private */
-               step: function() {
-                       for (var i = 0, e = null; (e = Poll.queue[i]) != null; i++) {
-                               if ((Poll.tick % e.i) != 0)
-                                       continue;
-
-                               if (!e.r)
-                                       continue;
-
-                               e.r = false;
-
-                               Promise.resolve(e.fn()).finally((function() { this.r = true }).bind(e));
-                       }
-
-                       Poll.tick = (Poll.tick + 1) % Math.pow(2, 32);
-               },
-
-               /**
-                * Test whether the polling loop is running.
-                *
-                * @instance
-                * @memberof LuCI.Poll
-                * @returns {boolean} - Returns `true` if polling is active, else `false`.
-                */
-               active: function() {
-                       return (this.timer != null);
-               }
-       });
-
-
-       var dummyElem = null,
-           domParser = null,
-           originalCBIInit = null,
-           rpcBaseURL = null,
-           sysFeatures = null,
-           classes = {};
-
-       var LuCI = Class.extend(/** @lends LuCI.prototype */ {
-               __name__: 'LuCI',
-               __init__: function(env) {
-
-                       document.querySelectorAll('script[src*="/luci.js"]').forEach(function(s) {
-                               if (env.base_url == null || env.base_url == '') {
-                                       var m = (s.getAttribute('src') || '').match(/^(.*)\/luci\.js(?:\?v=([^?]+))?$/);
-                                       if (m) {
-                                               env.base_url = m[1];
-                                               env.resource_version = m[2];
-                                       }
-                               }
-                       });
-
-                       if (env.base_url == null)
-                               this.error('InternalError', 'Cannot find url of luci.js');
-
-                       Object.assign(this.env, env);
-
-                       document.addEventListener('poll-start', function(ev) {
-                               document.querySelectorAll('[id^="xhr_poll_status"]').forEach(function(e) {
-                                       e.style.display = (e.id == 'xhr_poll_status_off') ? 'none' : '';
-                               });
-                       });
-
-                       document.addEventListener('poll-stop', function(ev) {
-                               document.querySelectorAll('[id^="xhr_poll_status"]').forEach(function(e) {
-                                       e.style.display = (e.id == 'xhr_poll_status_on') ? 'none' : '';
-                               });
-                       });
-
-                       var domReady = new Promise(function(resolveFn, rejectFn) {
-                               document.addEventListener('DOMContentLoaded', resolveFn);
-                       });
-
-                       Promise.all([
-                               domReady,
-                               this.require('ui'),
-                               this.require('rpc'),
-                               this.require('form'),
-                               this.probeRPCBaseURL()
-                       ]).then(this.setupDOM.bind(this)).catch(this.error);
-
-                       originalCBIInit = window.cbi_init;
-                       window.cbi_init = function() {};
-               },
-
-               /**
-                * Captures the current stack trace and throws an error of the
-                * specified type as a new exception. Also logs the exception as
-                * error to the debug console if it is available.
-                *
-                * @instance
-                * @memberof LuCI
-                *
-                * @param {Error|string} [type=Error]
-                * Either a string specifying the type of the error to throw or an
-                * existing `Error` instance to copy.
-                *
-                * @param {string} [fmt=Unspecified error]
-                * A format string which is used to form the error message, together
-                * with all subsequent optional arguments.
-                *
-                * @param {...*} [args]
-                * Zero or more variable arguments to the supplied format string.
-                *
-                * @throws {Error}
-                * Throws the created error object with the captured stack trace
-                * appended to the message and the type set to the given type
-                * argument or copied from the given error instance.
-                */
-               raise: function(type, fmt /*, ...*/) {
-                       var e = null,
-                           msg = fmt ? String.prototype.format.apply(fmt, this.varargs(arguments, 2)) : null,
-                           stack = null;
-
-                       if (type instanceof Error) {
-                               e = type;
-
-                               if (msg)
-                                       e.message = msg + ': ' + e.message;
-                       }
-                       else {
-                               try { throw new Error('stacktrace') }
-                               catch (e2) { stack = (e2.stack || '').split(/\n/) }
-
-                               e = new (window[type || 'Error'] || Error)(msg || 'Unspecified error');
-                               e.name = type || 'Error';
-                       }
-
-                       stack = (stack || []).map(function(frame) {
-                               frame = frame.replace(/(.*?)@(.+):(\d+):(\d+)/g, 'at $1 ($2:$3:$4)').trim();
-                               return frame ? '  ' + frame : '';
-                       });
-
-                       if (!/^  at /.test(stack[0]))
-                               stack.shift();
-
-                       if (/\braise /.test(stack[0]))
-                               stack.shift();
-
-                       if (/\berror /.test(stack[0]))
-                               stack.shift();
-
-                       if (stack.length)
-                               e.message += '\n' + stack.join('\n');
-
-                       if (window.console &amp;&amp; console.debug)
-                               console.debug(e);
-
-                       throw e;
-               },
-
-               /**
-                * A wrapper around {@link LuCI#raise raise()} which also renders
-                * the error either as modal overlay when `ui.js` is already loaed
-                * or directly into the view body.
-                *
-                * @instance
-                * @memberof LuCI
-                *
-                * @param {Error|string} [type=Error]
-                * Either a string specifying the type of the error to throw or an
-                * existing `Error` instance to copy.
-                *
-                * @param {string} [fmt=Unspecified error]
-                * A format string which is used to form the error message, together
-                * with all subsequent optional arguments.
-                *
-                * @param {...*} [args]
-                * Zero or more variable arguments to the supplied format string.
-                *
-                * @throws {Error}
-                * Throws the created error object with the captured stack trace
-                * appended to the message and the type set to the given type
-                * argument or copied from the given error instance.
-                */
-               error: function(type, fmt /*, ...*/) {
-                       try {
-                               L.raise.apply(L, Array.prototype.slice.call(arguments));
-                       }
-                       catch (e) {
-                               if (!e.reported) {
-                                       if (L.ui)
-                                               L.ui.addNotification(e.name || _('Runtime error'),
-                                                       E('pre', {}, e.message), 'danger');
-                                       else
-                                               L.dom.content(document.querySelector('#maincontent'),
-                                                       E('pre', { 'class': 'alert-message error' }, e.message));
-
-                                       e.reported = true;
-                               }
-
-                               throw e;
-                       }
-               },
-
-               /**
-                * Return a bound function using the given `self` as `this` context
-                * and any further arguments as parameters to the bound function.
-                *
-                * @instance
-                * @memberof LuCI
-                *
-                * @param {function} fn
-                * The function to bind.
-                *
-                * @param {*} self
-                * The value to bind as `this` context to the specified function.
-                *
-                * @param {...*} [args]
-                * Zero or more variable arguments which are bound to the function
-                * as parameters.
-                *
-                * @returns {function}
-                * Returns the bound function.
-                */
-               bind: function(fn, self /*, ... */) {
-                       return Function.prototype.bind.apply(fn, this.varargs(arguments, 2, self));
-               },
-
-               /**
-                * Load an additional LuCI JavaScript class and its dependencies,
-                * instantiate it and return the resulting class instance. Each
-                * class is only loaded once. Subsequent attempts to load the same
-                * class will return the already instantiated class.
-                *
-                * @instance
-                * @memberof LuCI
-                *
-                * @param {string} name
-                * The name of the class to load in dotted notation. Dots will
-                * be replaced by spaces and joined with the runtime-determined
-                * base URL of LuCI.js to form an absolute URL to load the class
-                * file from.
-                *
-                * @throws {DependencyError}
-                * Throws a `DependencyError` when the class to load includes
-                * circular dependencies.
-                *
-                * @throws {NetworkError}
-                * Throws `NetworkError` when the underlying {@link LuCI.Request}
-                * call failed.
-                *
-                * @throws {SyntaxError}
-                * Throws `SyntaxError` when the loaded class file code cannot
-                * be interpreted by `eval`.
-                *
-                * @throws {TypeError}
-                * Throws `TypeError` when the class file could be loaded and
-                * interpreted, but when invoking its code did not yield a valid
-                * class instance.
-                *
-                * @returns {Promise&lt;LuCI#Class>}
-                * Returns the instantiated class.
-                */
-               require: function(name, from) {
-                       var L = this, url = null, from = from || [];
-
-                       /* Class already loaded */
-                       if (classes[name] != null) {
-                               /* Circular dependency */
-                               if (from.indexOf(name) != -1)
-                                       L.raise('DependencyError',
-                                               'Circular dependency: class "%s" depends on "%s"',
-                                               name, from.join('" which depends on "'));
-
-                               return Promise.resolve(classes[name]);
-                       }
-
-                       url = '%s/%s.js%s'.format(L.env.base_url, name.replace(/\./g, '/'), (L.env.resource_version ? '?v=' + L.env.resource_version : ''));
-                       from = [ name ].concat(from);
-
-                       var compileClass = function(res) {
-                               if (!res.ok)
-                                       L.raise('NetworkError',
-                                               'HTTP error %d while loading class file "%s"', res.status, url);
-
-                               var source = res.text(),
-                                   requirematch = /^require[ \t]+(\S+)(?:[ \t]+as[ \t]+([a-zA-Z_]\S*))?$/,
-                                   strictmatch = /^use[ \t]+strict$/,
-                                   depends = [],
-                                   args = '';
-
-                               /* find require statements in source */
-                               for (var i = 0, off = -1, quote = -1, esc = false; i &lt; source.length; i++) {
-                                       var chr = source.charCodeAt(i);
-
-                                       if (esc) {
-                                               esc = false;
-                                       }
-                                       else if (chr == 92) {
-                                               esc = true;
-                                       }
-                                       else if (chr == quote) {
-                                               var s = source.substring(off, i),
-                                                   m = requirematch.exec(s);
-
-                                               if (m) {
-                                                       var dep = m[1], as = m[2] || dep.replace(/[^a-zA-Z0-9_]/g, '_');
-                                                       depends.push(L.require(dep, from));
-                                                       args += ', ' + as;
-                                               }
-                                               else if (!strictmatch.exec(s)) {
-                                                       break;
-                                               }
-
-                                               off = -1;
-                                               quote = -1;
-                                       }
-                                       else if (quote == -1 &amp;&amp; (chr == 34 || chr == 39)) {
-                                               off = i + 1;
-                                               quote = chr;
-                                       }
-                               }
-
-                               /* load dependencies and instantiate class */
-                               return Promise.all(depends).then(function(instances) {
-                                       var _factory, _class;
-
-                                       try {
-                                               _factory = eval(
-                                                       '(function(window, document, L%s) { %s })\n\n//# sourceURL=%s\n'
-                                                               .format(args, source, res.url));
-                                       }
-                                       catch (error) {
-                                               L.raise('SyntaxError', '%s\n  in %s:%s',
-                                                       error.message, res.url, error.lineNumber || '?');
-                                       }
-
-                                       _factory.displayName = toCamelCase(name + 'ClassFactory');
-                                       _class = _factory.apply(_factory, [window, document, L].concat(instances));
-
-                                       if (!Class.isSubclass(_class))
-                                           L.error('TypeError', '"%s" factory yields invalid constructor', name);
-
-                                       if (_class.displayName == 'AnonymousClass')
-                                               _class.displayName = toCamelCase(name + 'Class');
-
-                                       var ptr = Object.getPrototypeOf(L),
-                                           parts = name.split(/\./),
-                                           instance = new _class();
-
-                                       for (var i = 0; ptr &amp;&amp; i &lt; parts.length - 1; i++)
-                                               ptr = ptr[parts[i]];
-
-                                       if (ptr)
-                                               ptr[parts[i]] = instance;
-
-                                       classes[name] = instance;
-
-                                       return instance;
-                               });
-                       };
-
-                       /* Request class file */
-                       classes[name] = Request.get(url, { cache: true }).then(compileClass);
-
-                       return classes[name];
-               },
-
-               /* DOM setup */
-               probeRPCBaseURL: function() {
-                       if (rpcBaseURL == null) {
-                               try {
-                                       rpcBaseURL = window.sessionStorage.getItem('rpcBaseURL');
-                               }
-                               catch (e) { }
-                       }
-
-                       if (rpcBaseURL == null) {
-                               var rpcFallbackURL = this.url('admin/ubus');
-
-                               rpcBaseURL = Request.get('/ubus/').then(function(res) {
-                                       return (rpcBaseURL = (res.status == 400) ? '/ubus/' : rpcFallbackURL);
-                               }, function() {
-                                       return (rpcBaseURL = rpcFallbackURL);
-                               }).then(function(url) {
-                                       try {
-                                               window.sessionStorage.setItem('rpcBaseURL', url);
-                                       }
-                                       catch (e) { }
-
-                                       return url;
-                               });
-                       }
-
-                       return Promise.resolve(rpcBaseURL);
-               },
-
-               probeSystemFeatures: function() {
-                       var sessionid = classes.rpc.getSessionID();
-
-                       if (sysFeatures == null) {
-                               try {
-                                       var data = JSON.parse(window.sessionStorage.getItem('sysFeatures'));
-
-                                       if (this.isObject(data) &amp;&amp; this.isObject(data[sessionid]))
-                                               sysFeatures = data[sessionid];
-                               }
-                               catch (e) {}
-                       }
-
-                       if (!this.isObject(sysFeatures)) {
-                               sysFeatures = classes.rpc.declare({
-                                       object: 'luci',
-                                       method: 'getFeatures',
-                                       expect: { '': {} }
-                               })().then(function(features) {
-                                       try {
-                                               var data = {};
-                                                   data[sessionid] = features;
-
-                                               window.sessionStorage.setItem('sysFeatures', JSON.stringify(data));
-                                       }
-                                       catch (e) {}
-
-                                       sysFeatures = features;
-
-                                       return features;
-                               });
-                       }
-
-                       return Promise.resolve(sysFeatures);
-               },
-
-               /**
-                * Test whether a particular system feature is available, such as
-                * hostapd SAE support or an installed firewall. The features are
-                * queried once at the beginning of the LuCI session and cached in
-                * `SessionStorage` throughout the lifetime of the associated tab or
-                * browser window.
-                *
-                * @instance
-                * @memberof LuCI
-                *
-                * @param {string} feature
-                * The feature to test. For detailed list of known feature flags,
-                * see `/modules/luci-base/root/usr/libexec/rpcd/luci`.
-                *
-                * @param {string} [subfeature]
-                * Some feature classes like `hostapd` provide sub-feature flags,
-                * such as `sae` or `11w` support. The `subfeature` argument can
-                * be used to query these.
-                *
-                * @return {boolean|null}
-                * Return `true` if the queried feature (and sub-feature) is available
-                * or `false` if the requested feature isn't present or known.
-                * Return `null` when a sub-feature was queried for a feature which
-                * has no sub-features.
-                */
-               hasSystemFeature: function() {
-                       var ft = sysFeatures[arguments[0]];
-
-                       if (arguments.length == 2)
-                               return this.isObject(ft) ? ft[arguments[1]] : null;
-
-                       return (ft != null &amp;&amp; ft != false);
-               },
-
-               /* private */
-               notifySessionExpiry: function() {
-                       Poll.stop();
-
-                       L.ui.showModal(_('Session expired'), [
-                               E('div', { class: 'alert-message warning' },
-                                       _('A new login is required since the authentication session expired.')),
-                               E('div', { class: 'right' },
-                                       E('div', {
-                                               class: 'btn primary',
-                                               click: function() {
-                                                       var loc = window.location;
-                                                       window.location = loc.protocol + '//' + loc.host + loc.pathname + loc.search;
-                                               }
-                                       }, _('To login…')))
-                       ]);
-
-                       L.raise('SessionError', 'Login session is expired');
-               },
-
-               /* private */
-               setupDOM: function(res) {
-                       var domEv = res[0],
-                           uiClass = res[1],
-                           rpcClass = res[2],
-                           formClass = res[3],
-                           rpcBaseURL = res[4];
-
-                       rpcClass.setBaseURL(rpcBaseURL);
-
-                       rpcClass.addInterceptor(function(msg, req) {
-                               if (!L.isObject(msg) || !L.isObject(msg.error) || msg.error.code != -32002)
-                                       return;
-
-                               if (!L.isObject(req) || (req.object == 'session' &amp;&amp; req.method == 'access'))
-                                       return;
-
-                               return rpcClass.declare({
-                                       'object': 'session',
-                                       'method': 'access',
-                                       'params': [ 'scope', 'object', 'function' ],
-                                       'expect': { access: true }
-                               })('uci', 'luci', 'read').catch(L.notifySessionExpiry);
-                       });
-
-                       Request.addInterceptor(function(res) {
-                               var isDenied = false;
-
-                               if (res.status == 403 &amp;&amp; res.headers.get('X-LuCI-Login-Required') == 'yes')
-                                       isDenied = true;
-
-                               if (!isDenied)
-                                       return;
-
-                               L.notifySessionExpiry();
-                       });
-
-                       return this.probeSystemFeatures().finally(this.initDOM);
-               },
-
-               /* private */
-               initDOM: function() {
-                       originalCBIInit();
-                       Poll.start();
-                       document.dispatchEvent(new CustomEvent('luci-loaded'));
-               },
-
-               /**
-                * The `env` object holds environment settings used by LuCI, such
-                * as request timeouts, base URLs etc.
-                *
-                * @instance
-                * @memberof LuCI
-                */
-               env: {},
-
-               /**
-                * Construct a relative URL path from the given prefix and parts.
-                * The resulting URL is guaranteed to only contain the characters
-                * `a-z`, `A-Z`, `0-9`, `_`, `.`, `%`, `,`, `;`, and `-` as well
-                * as `/` for the path separator.
-                *
-                * @instance
-                * @memberof LuCI
-                *
-                * @param {string} [prefix]
-                * The prefix to join the given parts with. If the `prefix` is
-                * omitted, it defaults to an empty string.
-                *
-                * @param {string[]} [parts]
-                * An array of parts to join into an URL path. Parts may contain
-                * slashes and any of the other characters mentioned above.
-                *
-                * @return {string}
-                * Return the joined URL path.
-                */
-               path: function(prefix, parts) {
-                       var url = [ prefix || '' ];
-
-                       for (var i = 0; i &lt; parts.length; i++)
-                               if (/^(?:[a-zA-Z0-9_.%,;-]+\/)*[a-zA-Z0-9_.%,;-]+$/.test(parts[i]))
-                                       url.push('/', parts[i]);
-
-                       if (url.length === 1)
-                               url.push('/');
-
-                       return url.join('');
-               },
-
-               /**
-                * Construct an URL  pathrelative to the script path of the server
-                * side LuCI application (usually `/cgi-bin/luci`).
-                *
-                * The resulting URL is guaranteed to only contain the characters
-                * `a-z`, `A-Z`, `0-9`, `_`, `.`, `%`, `,`, `;`, and `-` as well
-                * as `/` for the path separator.
-                *
-                * @instance
-                * @memberof LuCI
-                *
-                * @param {string[]} [parts]
-                * An array of parts to join into an URL path. Parts may contain
-                * slashes and any of the other characters mentioned above.
-                *
-                * @return {string}
-                * Returns the resulting URL path.
-                */
-               url: function() {
-                       return this.path(this.env.scriptname, arguments);
-               },
-
-               /**
-                * Construct an URL path relative to the global static resource path
-                * of the LuCI ui (usually `/luci-static/resources`).
-                *
-                * The resulting URL is guaranteed to only contain the characters
-                * `a-z`, `A-Z`, `0-9`, `_`, `.`, `%`, `,`, `;`, and `-` as well
-                * as `/` for the path separator.
-                *
-                * @instance
-                * @memberof LuCI
-                *
-                * @param {string[]} [parts]
-                * An array of parts to join into an URL path. Parts may contain
-                * slashes and any of the other characters mentioned above.
-                *
-                * @return {string}
-                * Returns the resulting URL path.
-                */
-               resource: function() {
-                       return this.path(this.env.resource, arguments);
-               },
-
-               /**
-                * Return the complete URL path to the current view.
-                *
-                * @instance
-                * @memberof LuCI
-                *
-                * @return {string}
-                * Returns the URL path to the current view.
-                */
-               location: function() {
-                       return this.path(this.env.scriptname, this.env.requestpath);
-               },
-
-
-               /**
-                * Tests whether the passed argument is a JavaScript object.
-                * This function is meant to be an object counterpart to the
-                * standard `Array.isArray()` function.
-                *
-                * @instance
-                * @memberof LuCI
-                *
-                * @param {*} [val]
-                * The value to test
-                *
-                * @return {boolean}
-                * Returns `true` if the given value is of type object and
-                * not `null`, else returns `false`.
-                */
-               isObject: function(val) {
-                       return (val != null &amp;&amp; typeof(val) == 'object');
-               },
-
-               /**
-                * Return an array of sorted object keys, optionally sorted by
-                * a different key or a different sorting mode.
-                *
-                * @instance
-                * @memberof LuCI
-                *
-                * @param {object} obj
-                * The object to extract the keys from. If the given value is
-                * not an object, the function will return an empty array.
-                *
-                * @param {string} [key]
-                * Specifies the key to order by. This is mainly useful for
-                * nested objects of objects or objects of arrays when sorting
-                * shall not be performed by the primary object keys but by
-                * some other key pointing to a value within the nested values.
-                *
-                * @param {string} [sortmode]
-                * May be either `addr` or `num` to override the natural
-                * lexicographic sorting with a sorting suitable for IP/MAC style
-                * addresses or numeric values respectively.
-                *
-                * @return {string[]}
-                * Returns an array containing the sorted keys of the given object.
-                */
-               sortedKeys: function(obj, key, sortmode) {
-                       if (obj == null || typeof(obj) != 'object')
-                               return [];
-
-                       return Object.keys(obj).map(function(e) {
-                               var v = (key != null) ? obj[e][key] : e;
-
-                               switch (sortmode) {
-                               case 'addr':
-                                       v = (v != null) ? v.replace(/(?:^|[.:])([0-9a-fA-F]{1,4})/g,
-                                               function(m0, m1) { return ('000' + m1.toLowerCase()).substr(-4) }) : null;
-                                       break;
-
-                               case 'num':
-                                       v = (v != null) ? +v : null;
-                                       break;
-                               }
-
-                               return [ e, v ];
-                       }).filter(function(e) {
-                               return (e[1] != null);
-                       }).sort(function(a, b) {
-                               return (a[1] > b[1]);
-                       }).map(function(e) {
-                               return e[0];
-                       });
-               },
-
-               /**
-                * Converts the given value to an array. If the given value is of
-                * type array, it is returned as-is, values of type object are
-                * returned as one-element array containing the object, empty
-                * strings and `null` values are returned as empty array, all other
-                * values are converted using `String()`, trimmed, split on white
-                * space and returned as array.
-                *
-                * @instance
-                * @memberof LuCI
-                *
-                * @param {*} val
-                * The value to convert into an array.
-                *
-                * @return {Array&lt;*>}
-                * Returns the resulting array.
-                */
-               toArray: function(val) {
-                       if (val == null)
-                               return [];
-                       else if (Array.isArray(val))
-                               return val;
-                       else if (typeof(val) == 'object')
-                               return [ val ];
-
-                       var s = String(val).trim();
-
-                       if (s == '')
-                               return [];
-
-                       return s.split(/\s+/);
-               },
-
-               /**
-                * Returns a promise resolving with either the given value or or with
-                * the given default in case the input value is a rejecting promise.
-                *
-                * @instance
-                * @memberof LuCI
-                *
-                * @param {*} value
-                * The value to resolve the promise with.
-                *
-                * @param {*} defvalue
-                * The default value to resolve the promise with in case the given
-                * input value is a rejecting promise.
-                *
-                * @returns {Promise&lt;*>}
-                * Returns a new promise resolving either to the given input value or
-                * to the given default value on error.
-                */
-               resolveDefault: function(value, defvalue) {
-                       return Promise.resolve(value).catch(function() { return defvalue });
-               },
-
-               /**
-                * The request callback function is invoked whenever an HTTP
-                * reply to a request made using the `L.get()`, `L.post()` or
-                * `L.poll()` function is timed out or received successfully.
-                *
-                * @instance
-                * @memberof LuCI
-                *
-                * @callback LuCI.requestCallbackFn
-                * @param {XMLHTTPRequest} xhr
-                * The XMLHTTPRequest instance used to make the request.
-                *
-                * @param {*} data
-                * The response JSON if the response could be parsed as such,
-                * else `null`.
-                *
-                * @param {number} duration
-                * The total duration of the request in milliseconds.
-                */
-
-               /**
-                * Issues a GET request to the given url and invokes the specified
-                * callback function. The function is a wrapper around
-                * {@link LuCI.Request#request Request.request()}.
-                *
-                * @deprecated
-                * @instance
-                * @memberof LuCI
-                *
-                * @param {string} url
-                * The URL to request.
-                *
-                * @param {Object&lt;string, string>} [args]
-                * Additional query string arguments to append to the URL.
-                *
-                * @param {LuCI.requestCallbackFn} cb
-                * The callback function to invoke when the request finishes.
-                *
-                * @return {Promise&lt;null>}
-                * Returns a promise resolving to `null` when concluded.
-                */
-               get: function(url, args, cb) {
-                       return this.poll(null, url, args, cb, false);
-               },
-
-               /**
-                * Issues a POST request to the given url and invokes the specified
-                * callback function. The function is a wrapper around
-                * {@link LuCI.Request#request Request.request()}. The request is
-                * sent using `application/x-www-form-urlencoded` encoding and will
-                * contain a field `token` with the current value of `LuCI.env.token`
-                * by default.
-                *
-                * @deprecated
-                * @instance
-                * @memberof LuCI
-                *
-                * @param {string} url
-                * The URL to request.
-                *
-                * @param {Object&lt;string, string>} [args]
-                * Additional post arguments to append to the request body.
-                *
-                * @param {LuCI.requestCallbackFn} cb
-                * The callback function to invoke when the request finishes.
-                *
-                * @return {Promise&lt;null>}
-                * Returns a promise resolving to `null` when concluded.
-                */
-               post: function(url, args, cb) {
-                       return this.poll(null, url, args, cb, true);
-               },
-
-               /**
-                * Register a polling HTTP request that invokes the specified
-                * callback function. The function is a wrapper around
-                * {@link LuCI.Request.poll#add Request.poll.add()}.
-                *
-                * @deprecated
-                * @instance
-                * @memberof LuCI
-                *
-                * @param {number} interval
-                * The poll interval to use. If set to a value less than or equal
-                * to `0`, it will default to the global poll interval configured
-                * in `LuCI.env.pollinterval`.
-                *
-                * @param {string} url
-                * The URL to request.
-                *
-                * @param {Object&lt;string, string>} [args]
-                * Specifies additional arguments for the request. For GET requests,
-                * the arguments are appended to the URL as query string, for POST
-                * requests, they'll be added to the request body.
-                *
-                * @param {LuCI.requestCallbackFn} cb
-                * The callback function to invoke whenever a request finishes.
-                *
-                * @param {boolean} [post=false]
-                * When set to `false` or not specified, poll requests will be made
-                * using the GET method. When set to `true`, POST requests will be
-                * issued. In case of POST requests, the request body will contain
-                * an argument `token` with the current value of `LuCI.env.token` by
-                * default, regardless of the parameters specified with `args`.
-                *
-                * @return {function}
-                * Returns the internally created function that has been passed to
-                * {@link LuCI.Request.poll#add Request.poll.add()}. This value can
-                * be passed to {@link LuCI.Poll.remove Poll.remove()} to remove the
-                * polling request.
-                */
-               poll: function(interval, url, args, cb, post) {
-                       if (interval !== null &amp;&amp; interval &lt;= 0)
-                               interval = this.env.pollinterval;
-
-                       var data = post ? { token: this.env.token } : null,
-                           method = post ? 'POST' : 'GET';
-
-                       if (!/^(?:\/|\S+:\/\/)/.test(url))
-                               url = this.url(url);
-
-                       if (args != null)
-                               data = Object.assign(data || {}, args);
-
-                       if (interval !== null)
-                               return Request.poll.add(interval, url, { method: method, query: data }, cb);
-                       else
-                               return Request.request(url, { method: method, query: data })
-                                       .then(function(res) {
-                                               var json = null;
-                                               if (/^application\/json\b/.test(res.headers.get('Content-Type')))
-                                                       try { json = res.json() } catch(e) {}
-                                               cb(res.xhr, json, res.duration);
-                                       });
-               },
-
-               /**
-                * Deprecated wrapper around {@link LuCI.Poll.remove Poll.remove()}.
-                *
-                * @deprecated
-                * @instance
-                * @memberof LuCI
-                *
-                * @param {function} entry
-                * The polling function to remove.
-                *
-                * @return {boolean}
-                * Returns `true` when the function has been removed or `false` if
-                * it could not be found.
-                */
-               stop: function(entry) { return Poll.remove(entry) },
-
-               /**
-                * Deprecated wrapper around {@link LuCI.Poll.stop Poll.stop()}.
-                *
-                * @deprecated
-                * @instance
-                * @memberof LuCI
-                *
-                * @return {boolean}
-                * Returns `true` when the polling loop has been stopped or `false`
-                * when it didn't run to begin with.
-                */
-               halt: function() { return Poll.stop() },
-
-               /**
-                * Deprecated wrapper around {@link LuCI.Poll.start Poll.start()}.
-                *
-                * @deprecated
-                * @instance
-                * @memberof LuCI
-                *
-                * @return {boolean}
-                * Returns `true` when the polling loop has been started or `false`
-                * when it was already running.
-                */
-               run: function() { return Poll.start() },
-
-
-               /**
-                * @class
-                * @memberof LuCI
-                * @hideconstructor
-                * @classdesc
-                *
-                * The `dom` class provides convenience method for creating and
-                * manipulating DOM elements.
-                */
-               dom: Class.singleton(/* @lends LuCI.dom.prototype */ {
-                       __name__: 'LuCI.DOM',
-
-                       /**
-                        * Tests whether the given argument is a valid DOM `Node`.
-                        *
-                        * @instance
-                        * @memberof LuCI.dom
-                        * @param {*} e
-                        * The value to test.
-                        *
-                        * @returns {boolean}
-                        * Returns `true` if the value is a DOM `Node`, else `false`.
-                        */
-                       elem: function(e) {
-                               return (e != null &amp;&amp; typeof(e) == 'object' &amp;&amp; 'nodeType' in e);
-                       },
-
-                       /**
-                        * Parses a given string as HTML and returns the first child node.
-                        *
-                        * @instance
-                        * @memberof LuCI.dom
-                        * @param {string} s
-                        * A string containing an HTML fragment to parse. Note that only
-                        * the first result of the resulting structure is returned, so an
-                        * input value of `&lt;div>foo&lt;/div> &lt;div>bar&lt;/div>` will only return
-                        * the first `div` element node.
-                        *
-                        * @returns {Node}
-                        * Returns the first DOM `Node` extracted from the HTML fragment or
-                        * `null` on parsing failures or if no element could be found.
-                        */
-                       parse: function(s) {
-                               var elem;
-
-                               try {
-                                       domParser = domParser || new DOMParser();
-                                       elem = domParser.parseFromString(s, 'text/html').body.firstChild;
-                               }
-                               catch(e) {}
-
-                               if (!elem) {
-                                       try {
-                                               dummyElem = dummyElem || document.createElement('div');
-                                               dummyElem.innerHTML = s;
-                                               elem = dummyElem.firstChild;
-                                       }
-                                       catch (e) {}
-                               }
-
-                               return elem || null;
-                       },
-
-                       /**
-                        * Tests whether a given `Node` matches the given query selector.
-                        *
-                        * This function is a convenience wrapper around the standard
-                        * `Node.matches("selector")` function with the added benefit that
-                        * the `node` argument may be a non-`Node` value, in which case
-                        * this function simply returns `false`.
-                        *
-                        * @instance
-                        * @memberof LuCI.dom
-                        * @param {*} node
-                        * The `Node` argument to test the selector against.
-                        *
-                        * @param {string} [selector]
-                        * The query selector expression to test against the given node.
-                        *
-                        * @returns {boolean}
-                        * Returns `true` if the given node matches the specified selector
-                        * or `false` when the node argument is no valid DOM `Node` or the
-                        * selector didn't match.
-                        */
-                       matches: function(node, selector) {
-                               var m = this.elem(node) ? node.matches || node.msMatchesSelector : null;
-                               return m ? m.call(node, selector) : false;
-                       },
-
-                       /**
-                        * Returns the closest parent node that matches the given query
-                        * selector expression.
-                        *
-                        * This function is a convenience wrapper around the standard
-                        * `Node.closest("selector")` function with the added benefit that
-                        * the `node` argument may be a non-`Node` value, in which case
-                        * this function simply returns `null`.
-                        *
-                        * @instance
-                        * @memberof LuCI.dom
-                        * @param {*} node
-                        * The `Node` argument to find the closest parent for.
-                        *
-                        * @param {string} [selector]
-                        * The query selector expression to test against each parent.
-                        *
-                        * @returns {Node|null}
-                        * Returns the closest parent node matching the selector or
-                        * `null` when the node argument is no valid DOM `Node` or the
-                        * selector didn't match any parent.
-                        */
-                       parent: function(node, selector) {
-                               if (this.elem(node) &amp;&amp; node.closest)
-                                       return node.closest(selector);
-
-                               while (this.elem(node))
-                                       if (this.matches(node, selector))
-                                               return node;
-                                       else
-                                               node = node.parentNode;
-
-                               return null;
-                       },
-
-                       /**
-                        * Appends the given children data to the given node.
-                        *
-                        * @instance
-                        * @memberof LuCI.dom
-                        * @param {*} node
-                        * The `Node` argument to append the children to.
-                        *
-                        * @param {*} [children]
-                        * The childrens to append to the given node.
-                        *
-                        * When `children` is an array, then each item of the array
-                        * will be either appended as child element or text node,
-                        * depending on whether the item is a DOM `Node` instance or
-                        * some other non-`null` value. Non-`Node`, non-`null` values
-                        * will be converted to strings first before being passed as
-                        * argument to `createTextNode()`.
-                        *
-                        * When `children` is a function, it will be invoked with
-                        * the passed `node` argument as sole parameter and the `append`
-                        * function will be invoked again, with the given `node` argument
-                        * as first and the return value of the `children` function as
-                        * second parameter.
-                        *
-                        * When `children` is is a DOM `Node` instance, it will be
-                        * appended to the given `node`.
-                        *
-                        * When `children` is any other non-`null` value, it will be
-                        * converted to a string and appened to the `innerHTML` property
-                        * of the given `node`.
-                        *
-                        * @returns {Node|null}
-                        * Returns the last children `Node` appended to the node or `null`
-                        * if either the `node` argument was no valid DOM `node` or if the
-                        * `children` was `null` or didn't result in further DOM nodes.
-                        */
-                       append: function(node, children) {
-                               if (!this.elem(node))
-                                       return null;
-
-                               if (Array.isArray(children)) {
-                                       for (var i = 0; i &lt; children.length; i++)
-                                               if (this.elem(children[i]))
-                                                       node.appendChild(children[i]);
-                                               else if (children !== null &amp;&amp; children !== undefined)
-                                                       node.appendChild(document.createTextNode('' + children[i]));
-
-                                       return node.lastChild;
-                               }
-                               else if (typeof(children) === 'function') {
-                                       return this.append(node, children(node));
-                               }
-                               else if (this.elem(children)) {
-                                       return node.appendChild(children);
-                               }
-                               else if (children !== null &amp;&amp; children !== undefined) {
-                                       node.innerHTML = '' + children;
-                                       return node.lastChild;
-                               }
-
-                               return null;
-                       },
-
-                       /**
-                        * Replaces the content of the given node with the given children.
-                        *
-                        * This function first removes any children of the given DOM
-                        * `Node` and then adds the given given children following the
-                        * rules outlined below.
-                        *
-                        * @instance
-                        * @memberof LuCI.dom
-                        * @param {*} node
-                        * The `Node` argument to replace the children of.
-                        *
-                        * @param {*} [children]
-                        * The childrens to replace into the given node.
-                        *
-                        * When `children` is an array, then each item of the array
-                        * will be either appended as child element or text node,
-                        * depending on whether the item is a DOM `Node` instance or
-                        * some other non-`null` value. Non-`Node`, non-`null` values
-                        * will be converted to strings first before being passed as
-                        * argument to `createTextNode()`.
-                        *
-                        * When `children` is a function, it will be invoked with
-                        * the passed `node` argument as sole parameter and the `append`
-                        * function will be invoked again, with the given `node` argument
-                        * as first and the return value of the `children` function as
-                        * second parameter.
-                        *
-                        * When `children` is is a DOM `Node` instance, it will be
-                        * appended to the given `node`.
-                        *
-                        * When `children` is any other non-`null` value, it will be
-                        * converted to a string and appened to the `innerHTML` property
-                        * of the given `node`.
-                        *
-                        * @returns {Node|null}
-                        * Returns the last children `Node` appended to the node or `null`
-                        * if either the `node` argument was no valid DOM `node` or if the
-                        * `children` was `null` or didn't result in further DOM nodes.
-                        */
-                       content: function(node, children) {
-                               if (!this.elem(node))
-                                       return null;
-
-                               var dataNodes = node.querySelectorAll('[data-idref]');
-
-                               for (var i = 0; i &lt; dataNodes.length; i++)
-                                       delete this.registry[dataNodes[i].getAttribute('data-idref')];
-
-                               while (node.firstChild)
-                                       node.removeChild(node.firstChild);
-
-                               return this.append(node, children);
-                       },
-
-                       /**
-                        * Sets attributes or registers event listeners on element nodes.
-                        *
-                        * @instance
-                        * @memberof LuCI.dom
-                        * @param {*} node
-                        * The `Node` argument to set the attributes or add the event
-                        * listeners for. When the given `node` value is not a valid
-                        * DOM `Node`, the function returns and does nothing.
-                        *
-                        * @param {string|Object&lt;string, *>} key
-                        * Specifies either the attribute or event handler name to use,
-                        * or an object containing multiple key, value pairs which are
-                        * each added to the node as either attribute or event handler,
-                        * depending on the respective value.
-                        *
-                        * @param {*} [val]
-                        * Specifies the attribute value or event handler function to add.
-                        * If the `key` parameter is an `Object`, this parameter will be
-                        * ignored.
-                        *
-                        * When `val` is of type function, it will be registered as event
-                        * handler on the given `node` with the `key` parameter being the
-                        * event name.
-                        *
-                        * When `val` is of type object, it will be serialized as JSON and
-                        * added as attribute to the given `node`, using the given `key`
-                        * as attribute name.
-                        *
-                        * When `val` is of any other type, it will be added as attribute
-                        * to the given `node` as-is, with the underlying `setAttribute()`
-                        * call implicitely turning it into a string.
-                        */
-                       attr: function(node, key, val) {
-                               if (!this.elem(node))
-                                       return null;
-
-                               var attr = null;
-
-                               if (typeof(key) === 'object' &amp;&amp; key !== null)
-                                       attr = key;
-                               else if (typeof(key) === 'string')
-                                       attr = {}, attr[key] = val;
-
-                               for (key in attr) {
-                                       if (!attr.hasOwnProperty(key) || attr[key] == null)
-                                               continue;
-
-                                       switch (typeof(attr[key])) {
-                                       case 'function':
-                                               node.addEventListener(key, attr[key]);
-                                               break;
-
-                                       case 'object':
-                                               node.setAttribute(key, JSON.stringify(attr[key]));
-                                               break;
-
-                                       default:
-                                               node.setAttribute(key, attr[key]);
-                                       }
-                               }
-                       },
-
-                       /**
-                        * Creates a new DOM `Node` from the given `html`, `attr` and
-                        * `data` parameters.
-                        *
-                        * This function has multiple signatures, it can be either invoked
-                        * in the form `create(html[, attr[, data]])` or in the form
-                        * `create(html[, data])`. The used variant is determined from the
-                        * type of the second argument.
-                        *
-                        * @instance
-                        * @memberof LuCI.dom
-                        * @param {*} html
-                        * Describes the node to create.
-                        *
-                        * When the value of `html` is of type array, a `DocumentFragment`
-                        * node is created and each item of the array is first converted
-                        * to a DOM `Node` by passing it through `create()` and then added
-                        * as child to the fragment.
-                        *
-                        * When the value of `html` is a DOM `Node` instance, no new
-                        * element will be created but the node will be used as-is.
-                        *
-                        * When the value of `html` is a string starting with `&lt;`, it will
-                        * be passed to `dom.parse()` and the resulting value is used.
-                        *
-                        * When the value of `html` is any other string, it will be passed
-                        * to `document.createElement()` for creating a new DOM `Node` of
-                        * the given name.
-                        *
-                        * @param {Object&lt;string, *>} [attr]
-                        * Specifies an Object of key, value pairs to set as attributes
-                        * or event handlers on the created node. Refer to
-                        * {@link LuCI.dom#attr dom.attr()} for details.
-                        *
-                        * @param {*} [data]
-                        * Specifies children to append to the newly created element.
-                        * Refer to {@link LuCI.dom#append dom.append()} for details.
-                        *
-                        * @throws {InvalidCharacterError}
-                        * Throws an `InvalidCharacterError` when the given `html`
-                        * argument contained malformed markup (such as not escaped
-                        * `&amp;` characters in XHTML mode) or when the given node name
-                        * in `html` contains characters which are not legal in DOM
-                        * element names, such as spaces.
-                        *
-                        * @returns {Node}
-                        * Returns the newly created `Node`.
-                        */
-                       create: function() {
-                               var html = arguments[0],
-                                   attr = arguments[1],
-                                   data = arguments[2],
-                                   elem;
-
-                               if (!(attr instanceof Object) || Array.isArray(attr))
-                                       data = attr, attr = null;
-
-                               if (Array.isArray(html)) {
-                                       elem = document.createDocumentFragment();
-                                       for (var i = 0; i &lt; html.length; i++)
-                                               elem.appendChild(this.create(html[i]));
-                               }
-                               else if (this.elem(html)) {
-                                       elem = html;
-                               }
-                               else if (html.charCodeAt(0) === 60) {
-                                       elem = this.parse(html);
-                               }
-                               else {
-                                       elem = document.createElement(html);
-                               }
-
-                               if (!elem)
-                                       return null;
-
-                               this.attr(elem, attr);
-                               this.append(elem, data);
-
-                               return elem;
-                       },
-
-                       registry: {},
-
-                       /**
-                        * Attaches or detaches arbitrary data to and from a DOM `Node`.
-                        *
-                        * This function is useful to attach non-string values or runtime
-                        * data that is not serializable to DOM nodes. To decouple data
-                        * from the DOM, values are not added directly to nodes, but
-                        * inserted into a registry instead which is then referenced by a
-                        * string key stored as `data-idref` attribute in the node.
-                        *
-                        * This function has multiple signatures and is sensitive to the
-                        * number of arguments passed to it.
-                        *
-                        *  - `dom.data(node)` -
-                        *     Fetches all data associated with the given node.
-                        *  - `dom.data(node, key)` -
-                        *     Fetches a specific key associated with the given node.
-                        *  - `dom.data(node, key, val)` -
-                        *     Sets a specific key to the given value associated with the
-                        *     given node.
-                        *  - `dom.data(node, null)` -
-                        *     Clears any data associated with the node.
-                        *  - `dom.data(node, key, null)` -
-                        *     Clears the given key associated with the node.
-                        *
-                        * @instance
-                        * @memberof LuCI.dom
-                        * @param {Node} node
-                        * The DOM `Node` instance to set or retrieve the data for.
-                        *
-                        * @param {string|null} [key]
-                        * This is either a string specifying the key to retrieve, or
-                        * `null` to unset the entire node data.
-                        *
-                        * @param {*|null} [val]
-                        * This is either a non-`null` value to set for a given key or
-                        * `null` to remove the given `key` from the specified node.
-                        *
-                        * @returns {*}
-                        * Returns the get or set value, or `null` when no value could
-                        * be found.
-                        */
-                       data: function(node, key, val) {
-                               var id = node.getAttribute('data-idref');
-
-                               /* clear all data */
-                               if (arguments.length > 1 &amp;&amp; key == null) {
-                                       if (id != null) {
-                                               node.removeAttribute('data-idref');
-                                               val = this.registry[id]
-                                               delete this.registry[id];
-                                               return val;
-                                       }
-
-                                       return null;
-                               }
-
-                               /* clear a key */
-                               else if (arguments.length > 2 &amp;&amp; key != null &amp;&amp; val == null) {
-                                       if (id != null) {
-                                               val = this.registry[id][key];
-                                               delete this.registry[id][key];
-                                               return val;
-                                       }
-
-                                       return null;
-                               }
-
-                               /* set a key */
-                               else if (arguments.length > 2 &amp;&amp; key != null &amp;&amp; val != null) {
-                                       if (id == null) {
-                                               do { id = Math.floor(Math.random() * 0xffffffff).toString(16) }
-                                               while (this.registry.hasOwnProperty(id));
-
-                                               node.setAttribute('data-idref', id);
-                                               this.registry[id] = {};
-                                       }
-
-                                       return (this.registry[id][key] = val);
-                               }
-
-                               /* get all data */
-                               else if (arguments.length == 1) {
-                                       if (id != null)
-                                               return this.registry[id];
-
-                                       return null;
-                               }
-
-                               /* get a key */
-                               else if (arguments.length == 2) {
-                                       if (id != null)
-                                               return this.registry[id][key];
-                               }
-
-                               return null;
-                       },
-
-                       /**
-                        * Binds the given class instance ot the specified DOM `Node`.
-                        *
-                        * This function uses the `dom.data()` facility to attach the
-                        * passed instance of a Class to a node. This is needed for
-                        * complex widget elements or similar where the corresponding
-                        * class instance responsible for the element must be retrieved
-                        * from DOM nodes obtained by `querySelector()` or similar means.
-                        *
-                        * @instance
-                        * @memberof LuCI.dom
-                        * @param {Node} node
-                        * The DOM `Node` instance to bind the class to.
-                        *
-                        * @param {Class} inst
-                        * The Class instance to bind to the node.
-                        *
-                        * @throws {TypeError}
-                        * Throws a `TypeError` when the given instance argument isn't
-                        * a valid Class instance.
-                        *
-                        * @returns {Class}
-                        * Returns the bound class instance.
-                        */
-                       bindClassInstance: function(node, inst) {
-                               if (!(inst instanceof Class))
-                                       L.error('TypeError', 'Argument must be a class instance');
-
-                               return this.data(node, '_class', inst);
-                       },
-
-                       /**
-                        * Finds a bound class instance on the given node itself or the
-                        * first bound instance on its closest parent node.
-                        *
-                        * @instance
-                        * @memberof LuCI.dom
-                        * @param {Node} node
-                        * The DOM `Node` instance to start from.
-                        *
-                        * @returns {Class|null}
-                        * Returns the founds class instance if any or `null` if no bound
-                        * class could be found on the node itself or any of its parents.
-                        */
-                       findClassInstance: function(node) {
-                               var inst = null;
-
-                               do {
-                                       inst = this.data(node, '_class');
-                                       node = node.parentNode;
-                               }
-                               while (!(inst instanceof Class) &amp;&amp; node != null);
-
-                               return inst;
-                       },
-
-                       /**
-                        * Finds a bound class instance on the given node itself or the
-                        * first bound instance on its closest parent node and invokes
-                        * the specified method name on the found class instance.
-                        *
-                        * @instance
-                        * @memberof LuCI.dom
-                        * @param {Node} node
-                        * The DOM `Node` instance to start from.
-                        *
-                        * @param {string} method
-                        * The name of the method to invoke on the found class instance.
-                        *
-                        * @param {...*} params
-                        * Additional arguments to pass to the invoked method as-is.
-                        *
-                        * @returns {*|null}
-                        * Returns the return value of the invoked method if a class
-                        * instance and method has been found. Returns `null` if either
-                        * no bound class instance could be found, or if the found
-                        * instance didn't have the requested `method`.
-                        */
-                       callClassMethod: function(node, method /*, ... */) {
-                               var inst = this.findClassInstance(node);
-
-                               if (inst == null || typeof(inst[method]) != 'function')
-                                       return null;
-
-                               return inst[method].apply(inst, inst.varargs(arguments, 2));
-                       },
-
-                       /**
-                        * The ignore callback function is invoked by `isEmpty()` for each
-                        * child node to decide whether to ignore a child node or not.
-                        *
-                        * When this function returns `false`, the node passed to it is
-                        * ignored, else not.
-                        *
-                        * @callback LuCI.dom~ignoreCallbackFn
-                        * @param {Node} node
-                        * The child node to test.
-                        *
-                        * @returns {boolean}
-                        * Boolean indicating whether to ignore the node or not.
-                        */
-
-                       /**
-                        * Tests whether a given DOM `Node` instance is empty or appears
-                        * empty.
-                        *
-                        * Any element child nodes which have the CSS class `hidden` set
-                        * or for which the optionally passed `ignoreFn` callback function
-                        * returns `false` are ignored.
-                        *
-                        * @instance
-                        * @memberof LuCI.dom
-                        * @param {Node} node
-                        * The DOM `Node` instance to test.
-                        *
-                        * @param {LuCI.dom~ignoreCallbackFn} [ignoreFn]
-                        * Specifies an optional function which is invoked for each child
-                        * node to decide whether the child node should be ignored or not.
-                        *
-                        * @returns {boolean}
-                        * Returns `true` if the node does not have any children or if
-                        * any children node either has a `hidden` CSS class or a `false`
-                        * result when testing it using the given `ignoreFn`.
-                        */
-                       isEmpty: function(node, ignoreFn) {
-                               for (var child = node.firstElementChild; child != null; child = child.nextElementSibling)
-                                       if (!child.classList.contains('hidden') &amp;&amp; (!ignoreFn || !ignoreFn(child)))
-                                               return false;
-
-                               return true;
-                       }
-               }),
-
-               Poll: Poll,
-               Class: Class,
-               Request: Request,
-
-               /**
-                * @class
-                * @memberof LuCI
-                * @hideconstructor
-                * @classdesc
-                *
-                * The `view` class forms the basis of views and provides a standard
-                * set of methods to inherit from.
-                */
-               view: Class.extend(/* @lends LuCI.view.prototype */ {
-                       __name__: 'LuCI.View',
-
-                       __init__: function() {
-                               var vp = document.getElementById('view');
-
-                               L.dom.content(vp, E('div', { 'class': 'spinning' }, _('Loading view…')));
-
-                               return Promise.resolve(this.load())
-                                       .then(L.bind(this.render, this))
-                                       .then(L.bind(function(nodes) {
-                                               var vp = document.getElementById('view');
-
-                                               L.dom.content(vp, nodes);
-                                               L.dom.append(vp, this.addFooter());
-                                       }, this)).catch(L.error);
-                       },
-
-                       /**
-                        * The load function is invoked before the view is rendered.
-                        *
-                        * The invocation of this function is wrapped by
-                        * `Promise.resolve()` so it may return Promises if needed.
-                        *
-                        * The return value of the function (or the resolved values
-                        * of the promise returned by it) will be passed as first
-                        * argument to `render()`.
-                        *
-                        * This function is supposed to be overwritten by subclasses,
-                        * the default implementation does nothing.
-                        *
-                        * @instance
-                        * @abstract
-                        * @memberof LuCI.view
-                        *
-                        * @returns {*|Promise&lt;*>}
-                        * May return any value or a Promise resolving to any value.
-                        */
-                       load: function() {},
-
-                       /**
-                        * The render function is invoked after the
-                        * {@link LuCI.view#load load()} function and responsible
-                        * for setting up the view contents. It must return a DOM
-                        * `Node` or `DocumentFragment` holding the contents to
-                        * insert into the view area.
-                        *
-                        * The invocation of this function is wrapped by
-                        * `Promise.resolve()` so it may return Promises if needed.
-                        *
-                        * The return value of the function (or the resolved values
-                        * of the promise returned by it) will be inserted into the
-                        * main content area using
-                        * {@link LuCI.dom#append dom.append()}.
-                        *
-                        * This function is supposed to be overwritten by subclasses,
-                        * the default implementation does nothing.
-                        *
-                        * @instance
-                        * @abstract
-                        * @memberof LuCI.view
-                        * @param {*|null} load_results
-                        * This function will receive the return value of the
-                        * {@link LuCI.view#load view.load()} function as first
-                        * argument.
-                        *
-                        * @returns {Node|Promise&lt;Node>}
-                        * Should return a DOM `Node` value or a `Promise` resolving
-                        * to a `Node` value.
-                        */
-                       render: function() {},
-
-                       /**
-                        * The handleSave function is invoked when the user clicks
-                        * the `Save` button in the page action footer.
-                        *
-                        * The default implementation should be sufficient for most
-                        * views using {@link form#Map form.Map()} based forms - it
-                        * will iterate all forms present in the view and invoke
-                        * the {@link form#Map#save Map.save()} method on each form.
-                        *
-                        * Views not using `Map` instances or requiring other special
-                        * logic should overwrite `handleSave()` with a custom
-                        * implementation.
-                        *
-                        * To disable the `Save` page footer button, views extending
-                        * this base class should overwrite the `handleSave` function
-                        * with `null`.
-                        *
-                        * The invocation of this function is wrapped by
-                        * `Promise.resolve()` so it may return Promises if needed.
-                        *
-                        * @instance
-                        * @memberof LuCI.view
-                        * @param {Event} ev
-                        * The DOM event that triggered the function.
-                        *
-                        * @returns {*|Promise&lt;*>}
-                        * Any return values of this function are discarded, but
-                        * passed through `Promise.resolve()` to ensure that any
-                        * returned promise runs to completion before the button
-                        * is reenabled.
-                        */
-                       handleSave: function(ev) {
-                               var tasks = [];
-
-                               document.getElementById('maincontent')
-                                       .querySelectorAll('.cbi-map').forEach(function(map) {
-                                               tasks.push(L.dom.callClassMethod(map, 'save'));
-                                       });
-
-                               return Promise.all(tasks);
-                       },
-
-                       /**
-                        * The handleSaveApply function is invoked when the user clicks
-                        * the `Save &amp; Apply` button in the page action footer.
-                        *
-                        * The default implementation should be sufficient for most
-                        * views using {@link form#Map form.Map()} based forms - it
-                        * will first invoke
-                        * {@link LuCI.view.handleSave view.handleSave()} and then
-                        * call {@link ui#changes#apply ui.changes.apply()} to start the
-                        * modal config apply and page reload flow.
-                        *
-                        * Views not using `Map` instances or requiring other special
-                        * logic should overwrite `handleSaveApply()` with a custom
-                        * implementation.
-                        *
-                        * To disable the `Save &amp; Apply` page footer button, views
-                        * extending this base class should overwrite the
-                        * `handleSaveApply` function with `null`.
-                        *
-                        * The invocation of this function is wrapped by
-                        * `Promise.resolve()` so it may return Promises if needed.
-                        *
-                        * @instance
-                        * @memberof LuCI.view
-                        * @param {Event} ev
-                        * The DOM event that triggered the function.
-                        *
-                        * @returns {*|Promise&lt;*>}
-                        * Any return values of this function are discarded, but
-                        * passed through `Promise.resolve()` to ensure that any
-                        * returned promise runs to completion before the button
-                        * is reenabled.
-                        */
-                       handleSaveApply: function(ev) {
-                               return this.handleSave(ev).then(function() {
-                                       L.ui.changes.apply(true);
-                               });
-                       },
-
-                       /**
-                        * The handleReset function is invoked when the user clicks
-                        * the `Reset` button in the page action footer.
-                        *
-                        * The default implementation should be sufficient for most
-                        * views using {@link form#Map form.Map()} based forms - it
-                        * will iterate all forms present in the view and invoke
-                        * the {@link form#Map#save Map.reset()} method on each form.
-                        *
-                        * Views not using `Map` instances or requiring other special
-                        * logic should overwrite `handleReset()` with a custom
-                        * implementation.
-                        *
-                        * To disable the `Reset` page footer button, views extending
-                        * this base class should overwrite the `handleReset` function
-                        * with `null`.
-                        *
-                        * The invocation of this function is wrapped by
-                        * `Promise.resolve()` so it may return Promises if needed.
-                        *
-                        * @instance
-                        * @memberof LuCI.view
-                        * @param {Event} ev
-                        * The DOM event that triggered the function.
-                        *
-                        * @returns {*|Promise&lt;*>}
-                        * Any return values of this function are discarded, but
-                        * passed through `Promise.resolve()` to ensure that any
-                        * returned promise runs to completion before the button
-                        * is reenabled.
-                        */
-                       handleReset: function(ev) {
-                               var tasks = [];
-
-                               document.getElementById('maincontent')
-                                       .querySelectorAll('.cbi-map').forEach(function(map) {
-                                               tasks.push(L.dom.callClassMethod(map, 'reset'));
-                                       });
-
-                               return Promise.all(tasks);
-                       },
-
-                       /**
-                        * Renders a standard page action footer if any of the
-                        * `handleSave()`, `handleSaveApply()` or `handleReset()`
-                        * functions are defined.
-                        *
-                        * The default implementation should be sufficient for most
-                        * views - it will render a standard page footer with action
-                        * buttons labeled `Save`, `Save &amp; Apply` and `Reset`
-                        * triggering the `handleSave()`, `handleSaveApply()` and
-                        * `handleReset()` functions respectively.
-                        *
-                        * When any of these `handle*()` functions is overwritten
-                        * with `null` by a view extending this class, the
-                        * corresponding button will not be rendered.
-                        *
-                        * @instance
-                        * @memberof LuCI.view
-                        * @returns {DocumentFragment}
-                        * Returns a `DocumentFragment` containing the footer bar
-                        * with buttons for each corresponding `handle*()` action
-                        * or an empty `DocumentFragment` if all three `handle*()`
-                        * methods are overwritten with `null`.
-                        */
-                       addFooter: function() {
-                               var footer = E([]);
-
-                               if (this.handleSaveApply || this.handleSave || this.handleReset) {
-                                       footer.appendChild(E('div', { 'class': 'cbi-page-actions' }, [
-                                               this.handleSaveApply ? E('button', {
-                                                       'class': 'cbi-button cbi-button-apply',
-                                                       'click': L.ui.createHandlerFn(this, 'handleSaveApply')
-                                               }, [ _('Save &amp; Apply') ]) : '', ' ',
-                                               this.handleSave ? E('button', {
-                                                       'class': 'cbi-button cbi-button-save',
-                                                       'click': L.ui.createHandlerFn(this, 'handleSave')
-                                               }, [ _('Save') ]) : '', ' ',
-                                               this.handleReset ? E('button', {
-                                                       'class': 'cbi-button cbi-button-reset',
-                                                       'click': L.ui.createHandlerFn(this, 'handleReset')
-                                               }, [ _('Reset') ]) : ''
-                                       ]));
-                               }
-
-                               return footer;
-                       }
-               })
-       });
-
-       /**
-        * @class
-        * @memberof LuCI
-        * @deprecated
-        * @classdesc
-        *
-        * The `LuCI.XHR` class is a legacy compatibility shim for the
-        * functionality formerly provided by `xhr.js`. It is registered as global
-        * `window.XHR` symbol for compatibility with legacy code.
-        *
-        * New code should use {@link LuCI.Request} instead to implement HTTP
-        * request handling.
-        */
-       var XHR = Class.extend(/** @lends LuCI.XHR.prototype */ {
-               __name__: 'LuCI.XHR',
-               __init__: function() {
-                       if (window.console &amp;&amp; console.debug)
-                               console.debug('Direct use XHR() is deprecated, please use L.Request instead');
-               },
-
-               _response: function(cb, res, json, duration) {
-                       if (this.active)
-                               cb(res, json, duration);
-                       delete this.active;
-               },
-
-               /**
-                * This function is a legacy wrapper around
-                * {@link LuCI#get LuCI.get()}.
-                *
-                * @instance
-                * @deprecated
-                * @memberof LuCI.XHR
-                *
-                * @param {string} url
-                * The URL to request
-                *
-                * @param {Object} [data]
-                * Additional query string data
-                *
-                * @param {LuCI.requestCallbackFn} [callback]
-                * Callback function to invoke on completion
-                *
-                * @param {number} [timeout]
-                * Request timeout to use
-                *
-                * @return {Promise&lt;null>}
-                */
-               get: function(url, data, callback, timeout) {
-                       this.active = true;
-                       L.get(url, data, this._response.bind(this, callback), timeout);
-               },
-
-               /**
-                * This function is a legacy wrapper around
-                * {@link LuCI#post LuCI.post()}.
-                *
-                * @instance
-                * @deprecated
-                * @memberof LuCI.XHR
-                *
-                * @param {string} url
-                * The URL to request
-                *
-                * @param {Object} [data]
-                * Additional data to append to the request body.
-                *
-                * @param {LuCI.requestCallbackFn} [callback]
-                * Callback function to invoke on completion
-                *
-                * @param {number} [timeout]
-                * Request timeout to use
-                *
-                * @return {Promise&lt;null>}
-                */
-               post: function(url, data, callback, timeout) {
-                       this.active = true;
-                       L.post(url, data, this._response.bind(this, callback), timeout);
-               },
-
-               /**
-                * Cancels a running request.
-                *
-                * This function does not actually cancel the underlying
-                * `XMLHTTPRequest` request but it sets a flag which prevents the
-                * invocation of the callback function when the request eventually
-                * finishes or timed out.
-                *
-                * @instance
-                * @deprecated
-                * @memberof LuCI.XHR
-                */
-               cancel: function() { delete this.active },
-
-               /**
-                * Checks the running state of the request.
-                *
-                * @instance
-                * @deprecated
-                * @memberof LuCI.XHR
-                *
-                * @returns {boolean}
-                * Returns `true` if the request is still running or `false` if it
-                * already completed.
-                */
-               busy: function() { return (this.active === true) },
-
-               /**
-                * Ignored for backwards compatibility.
-                *
-                * This function does nothing.
-                *
-                * @instance
-                * @deprecated
-                * @memberof LuCI.XHR
-                */
-               abort: function() {},
-
-               /**
-                * Existing for backwards compatibility.
-                *
-                * This function simply throws an `InternalError` when invoked.
-                *
-                * @instance
-                * @deprecated
-                * @memberof LuCI.XHR
-                *
-                * @throws {InternalError}
-                * Throws an `InternalError` with the message `Not implemented`
-                * when invoked.
-                */
-               send_form: function() { L.error('InternalError', 'Not implemented') },
-       });
-
-       XHR.get = function() { return window.L.get.apply(window.L, arguments) };
-       XHR.post = function() { return window.L.post.apply(window.L, arguments) };
-       XHR.poll = function() { return window.L.poll.apply(window.L, arguments) };
-       XHR.stop = Request.poll.remove.bind(Request.poll);
-       XHR.halt = Request.poll.stop.bind(Request.poll);
-       XHR.run = Request.poll.start.bind(Request.poll);
-       XHR.running = Request.poll.active.bind(Request.poll);
-
-       window.XHR = XHR;
-       window.LuCI = LuCI;
-})(window, document);
-</code></pre>
-        </article>
-    </section>
-
-
-
-
-</div>
-
-<nav>
-    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="LuCI.html">LuCI</a></li><li><a href="LuCI.Class.html">Class</a></li><li><a href="LuCI.dom.html">dom</a></li><li><a href="LuCI.fs.html">fs</a></li><li><a href="LuCI.Headers.html">Headers</a></li><li><a href="LuCI.Network.html">Network</a></li><li><a href="LuCI.Network.Device.html">Device</a></li><li><a href="LuCI.Network.Hosts.html">Hosts</a></li><li><a href="LuCI.Network.Protocol.html">Protocol</a></li><li><a href="LuCI.Network.WifiDevice.html">WifiDevice</a></li><li><a href="LuCI.Network.WifiNetwork.html">WifiNetwork</a></li><li><a href="LuCI.Poll.html">Poll</a></li><li><a href="LuCI.Request.html">Request</a></li><li><a href="LuCI.Request.poll.html">poll</a></li><li><a href="LuCI.Response.html">Response</a></li><li><a href="LuCI.rpc.html">rpc</a></li><li><a href="LuCI.uci.html">uci</a></li><li><a href="LuCI.view.html">view</a></li><li><a href="LuCI.XHR.html">XHR</a></li></ul>
-</nav>
-
-<br class="clear">
-
-<footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 09:33:05 GMT+0100 (Central European Standard Time)
-</footer>
-
-<script> prettyPrint(); </script>
-<script src="scripts/linenumber.js"> </script>
-</body>
-</html>
diff --git a/documentation/jsapi/network.js.html b/documentation/jsapi/network.js.html
deleted file mode 100644 (file)
index e066333..0000000
+++ /dev/null
@@ -1,4038 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="utf-8">
-    <title>JSDoc: Source: network.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: network.js</h1>
-
-    
-
-
-
-    
-    <section>
-        <article>
-            <pre class="prettyprint source linenums"><code>'use strict';
-'require uci';
-'require rpc';
-'require validation';
-
-var proto_errors = {
-       CONNECT_FAILED:                 _('Connection attempt failed'),
-       INVALID_ADDRESS:                _('IP address in invalid'),
-       INVALID_GATEWAY:                _('Gateway address is invalid'),
-       INVALID_LOCAL_ADDRESS:  _('Local IP address is invalid'),
-       MISSING_ADDRESS:                _('IP address is missing'),
-       MISSING_PEER_ADDRESS:   _('Peer address is missing'),
-       NO_DEVICE:                              _('Network device is not present'),
-       NO_IFACE:                               _('Unable to determine device name'),
-       NO_IFNAME:                              _('Unable to determine device name'),
-       NO_WAN_ADDRESS:                 _('Unable to determine external IP address'),
-       NO_WAN_LINK:                    _('Unable to determine upstream interface'),
-       PEER_RESOLVE_FAIL:              _('Unable to resolve peer host name'),
-       PIN_FAILED:                             _('PIN code rejected')
-};
-
-var iface_patterns_ignore = [
-       /^wmaster\d+/,
-       /^wifi\d+/,
-       /^hwsim\d+/,
-       /^imq\d+/,
-       /^ifb\d+/,
-       /^mon\.wlan\d+/,
-       /^sit\d+/,
-       /^gre\d+/,
-       /^gretap\d+/,
-       /^ip6gre\d+/,
-       /^ip6tnl\d+/,
-       /^tunl\d+/,
-       /^lo$/
-];
-
-var iface_patterns_wireless = [
-       /^wlan\d+/,
-       /^wl\d+/,
-       /^ath\d+/,
-       /^\w+\.network\d+/
-];
-
-var iface_patterns_virtual = [ ];
-
-var callLuciNetworkDevices = rpc.declare({
-       object: 'luci-rpc',
-       method: 'getNetworkDevices',
-       expect: { '': {} }
-});
-
-var callLuciWirelessDevices = rpc.declare({
-       object: 'luci-rpc',
-       method: 'getWirelessDevices',
-       expect: { '': {} }
-});
-
-var callLuciBoardJSON = rpc.declare({
-       object: 'luci-rpc',
-       method: 'getBoardJSON'
-});
-
-var callLuciHostHints = rpc.declare({
-       object: 'luci-rpc',
-       method: 'getHostHints',
-       expect: { '': {} }
-});
-
-var callIwinfoAssoclist = rpc.declare({
-       object: 'iwinfo',
-       method: 'assoclist',
-       params: [ 'device', 'mac' ],
-       expect: { results: [] }
-});
-
-var callIwinfoScan = rpc.declare({
-       object: 'iwinfo',
-       method: 'scan',
-       params: [ 'device' ],
-       nobatch: true,
-       expect: { results: [] }
-});
-
-var callNetworkInterfaceDump = rpc.declare({
-       object: 'network.interface',
-       method: 'dump',
-       expect: { 'interface': [] }
-});
-
-var callNetworkProtoHandlers = rpc.declare({
-       object: 'network',
-       method: 'get_proto_handlers',
-       expect: { '': {} }
-});
-
-var _init = null,
-    _state = null,
-    _protocols = {},
-    _protospecs = {};
-
-function getProtocolHandlers(cache) {
-       return callNetworkProtoHandlers().then(function(protos) {
-               /* Register "none" protocol */
-               if (!protos.hasOwnProperty('none'))
-                       Object.assign(protos, { none: { no_device: false } });
-
-               /* Hack: emulate relayd protocol */
-               if (!protos.hasOwnProperty('relay'))
-                       Object.assign(protos, { relay: { no_device: true } });
-
-               Object.assign(_protospecs, protos);
-
-               return Promise.all(Object.keys(protos).map(function(p) {
-                       return Promise.resolve(L.require('protocol.%s'.format(p))).catch(function(err) {
-                               if (L.isObject(err) &amp;&amp; err.name != 'NetworkError')
-                                       L.error(err);
-                       });
-               })).then(function() {
-                       return protos;
-               });
-       }).catch(function() {
-               return {};
-       });
-}
-
-function getWifiStateBySid(sid) {
-       var s = uci.get('wireless', sid);
-
-       if (s != null &amp;&amp; s['.type'] == 'wifi-iface') {
-               for (var radioname in _state.radios) {
-                       for (var i = 0; i &lt; _state.radios[radioname].interfaces.length; i++) {
-                               var netstate = _state.radios[radioname].interfaces[i];
-
-                               if (typeof(netstate.section) != 'string')
-                                       continue;
-
-                               var s2 = uci.get('wireless', netstate.section);
-
-                               if (s2 != null &amp;&amp; s['.type'] == s2['.type'] &amp;&amp; s['.name'] == s2['.name']) {
-                                       if (s2['.anonymous'] == false &amp;&amp; netstate.section.charAt(0) == '@')
-                                               return null;
-
-                                       return [ radioname, _state.radios[radioname], netstate ];
-                               }
-                       }
-               }
-       }
-
-       return null;
-}
-
-function getWifiStateByIfname(ifname) {
-       for (var radioname in _state.radios) {
-               for (var i = 0; i &lt; _state.radios[radioname].interfaces.length; i++) {
-                       var netstate = _state.radios[radioname].interfaces[i];
-
-                       if (typeof(netstate.ifname) != 'string')
-                               continue;
-
-                       if (netstate.ifname == ifname)
-                               return [ radioname, _state.radios[radioname], netstate ];
-               }
-       }
-
-       return null;
-}
-
-function isWifiIfname(ifname) {
-       for (var i = 0; i &lt; iface_patterns_wireless.length; i++)
-               if (iface_patterns_wireless[i].test(ifname))
-                       return true;
-
-       return false;
-}
-
-function getWifiSidByNetid(netid) {
-       var m = /^(\w+)\.network(\d+)$/.exec(netid);
-       if (m) {
-               var sections = uci.sections('wireless', 'wifi-iface');
-               for (var i = 0, n = 0; i &lt; sections.length; i++) {
-                       if (sections[i].device != m[1])
-                               continue;
-
-                       if (++n == +m[2])
-                               return sections[i]['.name'];
-               }
-       }
-
-       return null;
-}
-
-function getWifiSidByIfname(ifname) {
-       var sid = getWifiSidByNetid(ifname);
-
-       if (sid != null)
-               return sid;
-
-       var res = getWifiStateByIfname(ifname);
-
-       if (res != null &amp;&amp; L.isObject(res[2]) &amp;&amp; typeof(res[2].section) == 'string')
-               return res[2].section;
-
-       return null;
-}
-
-function getWifiNetidBySid(sid) {
-       var s = uci.get('wireless', sid);
-       if (s != null &amp;&amp; s['.type'] == 'wifi-iface') {
-               var radioname = s.device;
-               if (typeof(s.device) == 'string') {
-                       var i = 0, netid = null, sections = uci.sections('wireless', 'wifi-iface');
-                       for (var i = 0, n = 0; i &lt; sections.length; i++) {
-                               if (sections[i].device != s.device)
-                                       continue;
-
-                               n++;
-
-                               if (sections[i]['.name'] != s['.name'])
-                                       continue;
-
-                               return [ '%s.network%d'.format(s.device, n), s.device ];
-                       }
-
-               }
-       }
-
-       return null;
-}
-
-function getWifiNetidByNetname(name) {
-       var sections = uci.sections('wireless', 'wifi-iface');
-       for (var i = 0; i &lt; sections.length; i++) {
-               if (typeof(sections[i].network) != 'string')
-                       continue;
-
-               var nets = sections[i].network.split(/\s+/);
-               for (var j = 0; j &lt; nets.length; j++) {
-                       if (nets[j] != name)
-                               continue;
-
-                       return getWifiNetidBySid(sections[i]['.name']);
-               }
-       }
-
-       return null;
-}
-
-function isVirtualIfname(ifname) {
-       for (var i = 0; i &lt; iface_patterns_virtual.length; i++)
-               if (iface_patterns_virtual[i].test(ifname))
-                       return true;
-
-       return false;
-}
-
-function isIgnoredIfname(ifname) {
-       for (var i = 0; i &lt; iface_patterns_ignore.length; i++)
-               if (iface_patterns_ignore[i].test(ifname))
-                       return true;
-
-       return false;
-}
-
-function appendValue(config, section, option, value) {
-       var values = uci.get(config, section, option),
-           isArray = Array.isArray(values),
-           rv = false;
-
-       if (isArray == false)
-               values = L.toArray(values);
-
-       if (values.indexOf(value) == -1) {
-               values.push(value);
-               rv = true;
-       }
-
-       uci.set(config, section, option, isArray ? values : values.join(' '));
-
-       return rv;
-}
-
-function removeValue(config, section, option, value) {
-       var values = uci.get(config, section, option),
-           isArray = Array.isArray(values),
-           rv = false;
-
-       if (isArray == false)
-               values = L.toArray(values);
-
-       for (var i = values.length - 1; i >= 0; i--) {
-               if (values[i] == value) {
-                       values.splice(i, 1);
-                       rv = true;
-               }
-       }
-
-       if (values.length > 0)
-               uci.set(config, section, option, isArray ? values : values.join(' '));
-       else
-               uci.unset(config, section, option);
-
-       return rv;
-}
-
-function prefixToMask(bits, v6) {
-       var w = v6 ? 128 : 32,
-           m = [];
-
-       if (bits > w)
-               return null;
-
-       for (var i = 0; i &lt; w / 16; i++) {
-               var b = Math.min(16, bits);
-               m.push((0xffff &lt;&lt; (16 - b)) &amp; 0xffff);
-               bits -= b;
-       }
-
-       if (v6)
-               return String.prototype.format.apply('%x:%x:%x:%x:%x:%x:%x:%x', m).replace(/:0(?::0)+$/, '::');
-       else
-               return '%d.%d.%d.%d'.format(m[0] >>> 8, m[0] &amp; 0xff, m[1] >>> 8, m[1] &amp; 0xff);
-}
-
-function maskToPrefix(mask, v6) {
-       var m = v6 ? validation.parseIPv6(mask) : validation.parseIPv4(mask);
-
-       if (!m)
-               return null;
-
-       var bits = 0;
-
-       for (var i = 0, z = false; i &lt; m.length; i++) {
-               z = z || !m[i];
-
-               while (!z &amp;&amp; (m[i] &amp; (v6 ? 0x8000 : 0x80))) {
-                       m[i] = (m[i] &lt;&lt; 1) &amp; (v6 ? 0xffff : 0xff);
-                       bits++;
-               }
-
-               if (m[i])
-                       return null;
-       }
-
-       return bits;
-}
-
-function initNetworkState(refresh) {
-       if (_state == null || refresh) {
-               _init = _init || Promise.all([
-                       L.resolveDefault(callNetworkInterfaceDump(), []),
-                       L.resolveDefault(callLuciBoardJSON(), {}),
-                       L.resolveDefault(callLuciNetworkDevices(), {}),
-                       L.resolveDefault(callLuciWirelessDevices(), {}),
-                       L.resolveDefault(callLuciHostHints(), {}),
-                       getProtocolHandlers(),
-                       uci.load(['network', 'wireless', 'luci'])
-               ]).then(function(data) {
-                       var netifd_ifaces = data[0],
-                           board_json    = data[1],
-                           luci_devs     = data[2];
-
-                       var s = {
-                               isTunnel: {}, isBridge: {}, isSwitch: {}, isWifi: {},
-                               ifaces: netifd_ifaces, radios: data[3], hosts: data[4],
-                               netdevs: {}, bridges: {}, switches: {}
-                       };
-
-                       for (var name in luci_devs) {
-                               var dev = luci_devs[name];
-
-                               if (isVirtualIfname(name))
-                                       s.isTunnel[name] = true;
-
-                               if (!s.isTunnel[name] &amp;&amp; isIgnoredIfname(name))
-                                       continue;
-
-                               s.netdevs[name] = s.netdevs[name] || {
-                                       idx:      dev.ifindex,
-                                       name:     name,
-                                       rawname:  name,
-                                       flags:    dev.flags,
-                                       stats:    dev.stats,
-                                       macaddr:  dev.mac,
-                                       type:     dev.type,
-                                       mtu:      dev.mtu,
-                                       qlen:     dev.qlen,
-                                       ipaddrs:  [],
-                                       ip6addrs: []
-                               };
-
-                               if (Array.isArray(dev.ipaddrs))
-                                       for (var i = 0; i &lt; dev.ipaddrs.length; i++)
-                                               s.netdevs[name].ipaddrs.push(dev.ipaddrs[i].address + '/' + dev.ipaddrs[i].netmask);
-
-                               if (Array.isArray(dev.ip6addrs))
-                                       for (var i = 0; i &lt; dev.ip6addrs.length; i++)
-                                               s.netdevs[name].ip6addrs.push(dev.ip6addrs[i].address + '/' + dev.ip6addrs[i].netmask);
-                       }
-
-                       for (var name in luci_devs) {
-                               var dev = luci_devs[name];
-
-                               if (!dev.bridge)
-                                       continue;
-
-                               var b = {
-                                       name:    name,
-                                       id:      dev.id,
-                                       stp:     dev.stp,
-                                       ifnames: []
-                               };
-
-                               for (var i = 0; dev.ports &amp;&amp; i &lt; dev.ports.length; i++) {
-                                       var subdev = s.netdevs[dev.ports[i]];
-
-                                       if (subdev == null)
-                                               continue;
-
-                                       b.ifnames.push(subdev);
-                                       subdev.bridge = b;
-                               }
-
-                               s.bridges[name] = b;
-                               s.isBridge[name] = true;
-                       }
-
-                       if (L.isObject(board_json.switch)) {
-                               for (var switchname in board_json.switch) {
-                                       var layout = board_json.switch[switchname],
-                                           netdevs = {},
-                                           nports = {},
-                                           ports = [],
-                                           pnum = null,
-                                           role = null;
-
-                                       if (L.isObject(layout) &amp;&amp; Array.isArray(layout.ports)) {
-                                               for (var i = 0, port; (port = layout.ports[i]) != null; i++) {
-                                                       if (typeof(port) == 'object' &amp;&amp; typeof(port.num) == 'number' &amp;&amp;
-                                                               (typeof(port.role) == 'string' || typeof(port.device) == 'string')) {
-                                                               var spec = {
-                                                                       num:   port.num,
-                                                                       role:  port.role || 'cpu',
-                                                                       index: (port.index != null) ? port.index : port.num
-                                                               };
-
-                                                               if (port.device != null) {
-                                                                       spec.device = port.device;
-                                                                       spec.tagged = spec.need_tag;
-                                                                       netdevs[port.num] = port.device;
-                                                               }
-
-                                                               ports.push(spec);
-
-                                                               if (port.role != null)
-                                                                       nports[port.role] = (nports[port.role] || 0) + 1;
-                                                       }
-                                               }
-
-                                               ports.sort(function(a, b) {
-                                                       if (a.role != b.role)
-                                                               return (a.role &lt; b.role) ? -1 : 1;
-
-                                                       return (a.index - b.index);
-                                               });
-
-                                               for (var i = 0, port; (port = ports[i]) != null; i++) {
-                                                       if (port.role != role) {
-                                                               role = port.role;
-                                                               pnum = 1;
-                                                       }
-
-                                                       if (role == 'cpu')
-                                                               port.label = 'CPU (%s)'.format(port.device);
-                                                       else if (nports[role] > 1)
-                                                               port.label = '%s %d'.format(role.toUpperCase(), pnum++);
-                                                       else
-                                                               port.label = role.toUpperCase();
-
-                                                       delete port.role;
-                                                       delete port.index;
-                                               }
-
-                                               s.switches[switchname] = {
-                                                       ports: ports,
-                                                       netdevs: netdevs
-                                               };
-                                       }
-                               }
-                       }
-
-                       if (L.isObject(board_json.dsl) &amp;&amp; L.isObject(board_json.dsl.modem)) {
-                               s.hasDSLModem = board_json.dsl.modem;
-                       }
-
-                       _init = null;
-
-                       return (_state = s);
-               });
-       }
-
-       return (_state != null ? Promise.resolve(_state) : _init);
-}
-
-function ifnameOf(obj) {
-       if (obj instanceof Protocol)
-               return obj.getIfname();
-       else if (obj instanceof Device)
-               return obj.getName();
-       else if (obj instanceof WifiDevice)
-               return obj.getName();
-       else if (obj instanceof WifiNetwork)
-               return obj.getIfname();
-       else if (typeof(obj) == 'string')
-               return obj.replace(/:.+$/, '');
-
-       return null;
-}
-
-function networkSort(a, b) {
-       return a.getName() > b.getName();
-}
-
-function deviceSort(a, b) {
-       var typeWeigth = { wifi: 2, alias: 3 },
-        weightA = typeWeigth[a.getType()] || 1,
-        weightB = typeWeigth[b.getType()] || 1;
-
-    if (weightA != weightB)
-       return weightA - weightB;
-
-       return a.getName() > b.getName();
-}
-
-function formatWifiEncryption(enc) {
-       if (!L.isObject(enc))
-               return null;
-
-       if (!enc.enabled)
-               return 'None';
-
-       var ciphers = Array.isArray(enc.ciphers)
-               ? enc.ciphers.map(function(c) { return c.toUpperCase() }) : [ 'NONE' ];
-
-       if (Array.isArray(enc.wep)) {
-               var has_open = false,
-                   has_shared = false;
-
-               for (var i = 0; i &lt; enc.wep.length; i++)
-                       if (enc.wep[i] == 'open')
-                               has_open = true;
-                       else if (enc.wep[i] == 'shared')
-                               has_shared = true;
-
-               if (has_open &amp;&amp; has_shared)
-                       return 'WEP Open/Shared (%s)'.format(ciphers.join(', '));
-               else if (has_open)
-                       return 'WEP Open System (%s)'.format(ciphers.join(', '));
-               else if (has_shared)
-                       return 'WEP Shared Auth (%s)'.format(ciphers.join(', '));
-
-               return 'WEP';
-       }
-
-       if (Array.isArray(enc.wpa)) {
-               var versions = [],
-                   suites = Array.isArray(enc.authentication)
-                       ? enc.authentication.map(function(a) { return a.toUpperCase() }) : [ 'NONE' ];
-
-               for (var i = 0; i &lt; enc.wpa.length; i++)
-                       switch (enc.wpa[i]) {
-                       case 1:
-                               versions.push('WPA');
-                               break;
-
-                       default:
-                               versions.push('WPA%d'.format(enc.wpa[i]));
-                               break;
-                       }
-
-               if (versions.length > 1)
-                       return 'mixed %s %s (%s)'.format(versions.join('/'), suites.join(', '), ciphers.join(', '));
-
-               return '%s %s (%s)'.format(versions[0], suites.join(', '), ciphers.join(', '));
-       }
-
-       return 'Unknown';
-}
-
-function enumerateNetworks() {
-       var uciInterfaces = uci.sections('network', 'interface'),
-           networks = {};
-
-       for (var i = 0; i &lt; uciInterfaces.length; i++)
-               networks[uciInterfaces[i]['.name']] = this.instantiateNetwork(uciInterfaces[i]['.name']);
-
-       for (var i = 0; i &lt; _state.ifaces.length; i++)
-               if (networks[_state.ifaces[i].interface] == null)
-                       networks[_state.ifaces[i].interface] =
-                               this.instantiateNetwork(_state.ifaces[i].interface, _state.ifaces[i].proto);
-
-       var rv = [];
-
-       for (var network in networks)
-               if (networks.hasOwnProperty(network))
-                       rv.push(networks[network]);
-
-       rv.sort(networkSort);
-
-       return rv;
-}
-
-
-var Hosts, Network, Protocol, Device, WifiDevice, WifiNetwork;
-
-/**
- * @class
- * @memberof LuCI
- * @hideconstructor
- * @classdesc
- *
- * The `LuCI.Network` class combines data from multiple `ubus` apis to
- * provide an abstraction of the current network configuration state.
- *
- * It provides methods to enumerate interfaces and devices, to query
- * current configuration details and to manipulate settings.
- */
-Network = L.Class.extend(/** @lends LuCI.Network.prototype */ {
-       /**
-        * Converts the given prefix size in bits to a netmask.
-        *
-        * @method
-        *
-        * @param {number} bits
-        * The prefix size in bits.
-        *
-        * @param {boolean} [v6=false]
-        * Whether to convert the bits value into an IPv4 netmask (`false`) or
-        * an IPv6 netmask (`true`).
-        *
-        * @returns {null|string}
-        * Returns a string containing the netmask corresponding to the bit count
-        * or `null` when the given amount of bits exceeds the maximum possible
-        * value of `32` for IPv4 or `128` for IPv6.
-        */
-       prefixToMask: prefixToMask,
-
-       /**
-        * Converts the given netmask to a prefix size in bits.
-        *
-        * @method
-        *
-        * @param {string} netmask
-        * The netmask to convert into a bit count.
-        *
-        * @param {boolean} [v6=false]
-        * Whether to parse the given netmask as IPv4 (`false`) or IPv6 (`true`)
-        * address.
-        *
-        * @returns {null|number}
-        * Returns the number of prefix bits contained in the netmask or `null`
-        * if the given netmask value was invalid.
-        */
-       maskToPrefix: maskToPrefix,
-
-       /**
-        * An encryption entry describes active wireless encryption settings
-        * such as the used key management protocols, active ciphers and
-        * protocol versions.
-        *
-        * @typedef {Object&lt;string, boolean|Array&lt;number|string>>} LuCI.Network.WifiEncryption
-        * @memberof LuCI.Network
-        *
-        * @property {boolean} enabled
-        * Specifies whether any kind of encryption, such as `WEP` or `WPA` is
-        * enabled. If set to `false`, then no encryption is active and the
-        * corresponding network is open.
-        *
-        * @property {string[]} [wep]
-        * When the `wep` property exists, the network uses WEP encryption.
-        * In this case, the property is set to an array of active WEP modes
-        * which might be either `open`, `shared` or both.
-        *
-        * @property {number[]} [wpa]
-        * When the `wpa` property exists, the network uses WPA security.
-        * In this case, the property is set to an array containing the WPA
-        * protocol versions used, e.g. `[ 1, 2 ]` for WPA/WPA2 mixed mode or
-        * `[ 3 ]` for WPA3-SAE.
-        *
-        * @property {string[]} [authentication]
-        * The `authentication` property only applies to WPA encryption and
-        * is defined when the `wpa` property is set as well. It points to
-        * an array of active authentication suites used by the network, e.g.
-        * `[ "psk" ]` for a WPA(2)-PSK network or `[ "psk", "sae" ]` for
-        * mixed WPA2-PSK/WPA3-SAE encryption.
-        *
-        * @property {string[]} [ciphers]
-        * If either WEP or WPA encryption is active, then the `ciphers`
-        * property will be set to an array describing the active encryption
-        * ciphers used by the network, e.g. `[ "tkip", "ccmp" ]` for a
-        * WPA/WPA2-PSK mixed network or `[ "wep-40", "wep-104" ]` for an
-        * WEP network.
-        */
-
-       /**
-        * Converts a given {@link LuCI.Network.WifiEncryption encryption entry}
-        * into a human readable string such as `mixed WPA/WPA2 PSK (TKIP, CCMP)`
-        * or `WPA3 SAE (CCMP)`.
-        *
-        * @method
-        *
-        * @param {LuCI.Network.WifiEncryption} encryption
-        * The wireless encryption entry to convert.
-        *
-        * @returns {null|string}
-        * Returns the description string for the given encryption entry or
-        * `null` if the given entry was invalid.
-        */
-       formatWifiEncryption: formatWifiEncryption,
-
-       /**
-        * Flushes the local network state cache and fetches updated information
-        * from the remote `ubus` apis.
-        *
-        * @returns {Promise&lt;Object>}
-        * Returns a promise resolving to the internal network state object.
-        */
-       flushCache: function() {
-               initNetworkState(true);
-               return _init;
-       },
-
-       /**
-        * Instantiates the given {@link LuCI.Network.Protocol Protocol} backend,
-        * optionally using the given network name.
-        *
-        * @param {string} protoname
-        * The protocol backend to use, e.g. `static` or `dhcp`.
-        *
-        * @param {string} [netname=__dummy__]
-        * The network name to use for the instantiated protocol. This should be
-        * usually set to one of the interfaces described in /etc/config/network
-        * but it is allowed to omit it, e.g. to query protocol capabilities
-        * without the need for an existing interface.
-        *
-        * @returns {null|LuCI.Network.Protocol}
-        * Returns the instantiated protocol backend class or `null` if the given
-        * protocol isn't known.
-        */
-       getProtocol: function(protoname, netname) {
-               var v = _protocols[protoname];
-               if (v != null)
-                       return new v(netname || '__dummy__');
-
-               return null;
-       },
-
-       /**
-        * Obtains instances of all known {@link LuCI.Network.Protocol Protocol}
-        * backend classes.
-        *
-        * @returns {Array&lt;LuCI.Network.Protocol>}
-        * Returns an array of protocol class instances.
-        */
-       getProtocols: function() {
-               var rv = [];
-
-               for (var protoname in _protocols)
-                       rv.push(new _protocols[protoname]('__dummy__'));
-
-               return rv;
-       },
-
-       /**
-        * Registers a new {@link LuCI.Network.Protocol Protocol} subclass
-        * with the given methods and returns the resulting subclass value.
-        *
-        * This functions internally calls
-        * {@link LuCI.Class.extend Class.extend()} on the `Network.Protocol`
-        * base class.
-        *
-        * @param {string} protoname
-        * The name of the new protocol to register.
-        *
-        * @param {Object&lt;string, *>} methods
-        * The member methods and values of the new `Protocol` subclass to
-        * be passed to {@link LuCI.Class.extend Class.extend()}.
-        *
-        * @returns {LuCI.Network.Protocol}
-        * Returns the new `Protocol` subclass.
-        */
-       registerProtocol: function(protoname, methods) {
-               var spec = L.isObject(_protospecs) ? _protospecs[protoname] : null;
-               var proto = Protocol.extend(Object.assign({
-                       getI18n: function() {
-                               return protoname;
-                       },
-
-                       isFloating: function() {
-                               return false;
-                       },
-
-                       isVirtual: function() {
-                               return (L.isObject(spec) &amp;&amp; spec.no_device == true);
-                       },
-
-                       renderFormOptions: function(section) {
-
-                       }
-               }, methods, {
-                       __init__: function(name) {
-                               this.sid = name;
-                       },
-
-                       getProtocol: function() {
-                               return protoname;
-                       }
-               }));
-
-               _protocols[protoname] = proto;
-
-               return proto;
-       },
-
-       /**
-        * Registers a new regular expression pattern to recognize
-        * virtual interfaces.
-        *
-        * @param {RegExp} pat
-        * A `RegExp` instance to match a virtual interface name
-        * such as `6in4-wan` or `tun0`.
-        */
-       registerPatternVirtual: function(pat) {
-               iface_patterns_virtual.push(pat);
-       },
-
-       /**
-        * Registers a new human readable translation string for a `Protocol`
-        * error code.
-        *
-        * @param {string} code
-        * The `ubus` protocol error code to register a translation for, e.g.
-        * `NO_DEVICE`.
-        *
-        * @param {string} message
-        * The message to use as translation for the given protocol error code.
-        *
-        * @returns {boolean}
-        * Returns `true` if the error code description has been added or `false`
-        * if either the arguments were invalid or if there already was a
-        * description for the given code.
-        */
-       registerErrorCode: function(code, message) {
-               if (typeof(code) == 'string' &amp;&amp;
-                   typeof(message) == 'string' &amp;&amp;
-                   !proto_errors.hasOwnProperty(code)) {
-                       proto_errors[code] = message;
-                       return true;
-               }
-
-               return false;
-       },
-
-       /**
-        * Adds a new network of the given name and update it with the given
-        * uci option values.
-        *
-        * If a network with the given name already exist but is empty, then
-        * this function will update its option, otherwise it will do nothing.
-        *
-        * @param {string} name
-        * The name of the network to add. Must be in the format `[a-zA-Z0-9_]+`.
-        *
-        * @param {Object&lt;string, string|string[]>} [options]
-        * An object of uci option values to set on the new network or to
-        * update in an existing, empty network.
-        *
-        * @returns {Promise&lt;null|LuCI.Network.Protocol>}
-        * Returns a promise resolving to the `Protocol` subclass instance
-        * describing the added network or resolving to `null` if the name
-        * was invalid or if a non-empty network of the given name already
-        * existed.
-        */
-       addNetwork: function(name, options) {
-               return this.getNetwork(name).then(L.bind(function(existingNetwork) {
-                       if (name != null &amp;&amp; /^[a-zA-Z0-9_]+$/.test(name) &amp;&amp; existingNetwork == null) {
-                               var sid = uci.add('network', 'interface', name);
-
-                               if (sid != null) {
-                                       if (L.isObject(options))
-                                               for (var key in options)
-                                                       if (options.hasOwnProperty(key))
-                                                               uci.set('network', sid, key, options[key]);
-
-                                       return this.instantiateNetwork(sid);
-                               }
-                       }
-                       else if (existingNetwork != null &amp;&amp; existingNetwork.isEmpty()) {
-                               if (L.isObject(options))
-                                       for (var key in options)
-                                               if (options.hasOwnProperty(key))
-                                                       existingNetwork.set(key, options[key]);
-
-                               return existingNetwork;
-                       }
-               }, this));
-       },
-
-       /**
-        * Get a {@link LuCI.Network.Protocol Protocol} instance describing
-        * the network with the given name.
-        *
-        * @param {string} name
-        * The logical interface name of the network get, e.g. `lan` or `wan`.
-        *
-        * @returns {Promise&lt;null|LuCI.Network.Protocol>}
-        * Returns a promise resolving to a
-        * {@link LuCI.Network.Protocol Protocol} subclass instance describing
-        * the network or `null` if the network did not exist.
-        */
-       getNetwork: function(name) {
-               return initNetworkState().then(L.bind(function() {
-                       var section = (name != null) ? uci.get('network', name) : null;
-
-                       if (section != null &amp;&amp; section['.type'] == 'interface') {
-                               return this.instantiateNetwork(name);
-                       }
-                       else if (name != null) {
-                               for (var i = 0; i &lt; _state.ifaces.length; i++)
-                                       if (_state.ifaces[i].interface == name)
-                                               return this.instantiateNetwork(name, _state.ifaces[i].proto);
-                       }
-
-                       return null;
-               }, this));
-       },
-
-       /**
-        * Gets an array containing all known networks.
-        *
-        * @returns {Promise&lt;Array&lt;LuCI.Network.Protocol>>}
-        * Returns a promise resolving to a name-sorted array of
-        * {@link LuCI.Network.Protocol Protocol} subclass instances
-        * describing all known networks.
-        */
-       getNetworks: function() {
-               return initNetworkState().then(L.bind(enumerateNetworks, this));
-       },
-
-       /**
-        * Deletes the given network and its references from the network and
-        * firewall configuration.
-        *
-        * @param {string} name
-        * The name of the network to delete.
-        *
-        * @returns {Promise&lt;boolean>}
-        * Returns a promise resolving to either `true` if the network and
-        * references to it were successfully deleted from the configuration or
-        * `false` if the given network could not be found.
-        */
-       deleteNetwork: function(name) {
-               var requireFirewall = Promise.resolve(L.require('firewall')).catch(function() {});
-
-               return Promise.all([ requireFirewall, initNetworkState() ]).then(function() {
-                       var uciInterface = uci.get('network', name);
-
-                       if (uciInterface != null &amp;&amp; uciInterface['.type'] == 'interface') {
-                               uci.remove('network', name);
-
-                               uci.sections('luci', 'ifstate', function(s) {
-                                       if (s.interface == name)
-                                               uci.remove('luci', s['.name']);
-                               });
-
-                               uci.sections('network', 'alias', function(s) {
-                                       if (s.interface == name)
-                                               uci.remove('network', s['.name']);
-                               });
-
-                               uci.sections('network', 'route', function(s) {
-                                       if (s.interface == name)
-                                               uci.remove('network', s['.name']);
-                               });
-
-                               uci.sections('network', 'route6', function(s) {
-                                       if (s.interface == name)
-                                               uci.remove('network', s['.name']);
-                               });
-
-                               uci.sections('wireless', 'wifi-iface', function(s) {
-                                       var networks = L.toArray(s.network).filter(function(network) { return network != name });
-
-                                       if (networks.length > 0)
-                                               uci.set('wireless', s['.name'], 'network', networks.join(' '));
-                                       else
-                                               uci.unset('wireless', s['.name'], 'network');
-                               });
-
-                               if (L.firewall)
-                                       return L.firewall.deleteNetwork(name).then(function() { return true });
-
-                               return true;
-                       }
-
-                       return false;
-               });
-       },
-
-       /**
-        * Rename the given network and its references to a new name.
-        *
-        * @param {string} oldName
-        * The current name of the network.
-        *
-        * @param {string} newName
-        * The name to rename the network to, must be in the format
-        * `[a-z-A-Z0-9_]+`.
-        *
-        * @returns {Promise&lt;boolean>}
-        * Returns a promise resolving to either `true` if the network was
-        * successfully renamed or `false` if the new name was invalid, if
-        * a network with the new name already exists or if the network to
-        * rename could not be found.
-        */
-       renameNetwork: function(oldName, newName) {
-               return initNetworkState().then(function() {
-                       if (newName == null || !/^[a-zA-Z0-9_]+$/.test(newName) || uci.get('network', newName) != null)
-                               return false;
-
-                       var oldNetwork = uci.get('network', oldName);
-
-                       if (oldNetwork == null || oldNetwork['.type'] != 'interface')
-                               return false;
-
-                       var sid = uci.add('network', 'interface', newName);
-
-                       for (var key in oldNetwork)
-                               if (oldNetwork.hasOwnProperty(key) &amp;&amp; key.charAt(0) != '.')
-                                       uci.set('network', sid, key, oldNetwork[key]);
-
-                       uci.sections('luci', 'ifstate', function(s) {
-                               if (s.interface == oldName)
-                                       uci.set('luci', s['.name'], 'interface', newName);
-                       });
-
-                       uci.sections('network', 'alias', function(s) {
-                               if (s.interface == oldName)
-                                       uci.set('network', s['.name'], 'interface', newName);
-                       });
-
-                       uci.sections('network', 'route', function(s) {
-                               if (s.interface == oldName)
-                                       uci.set('network', s['.name'], 'interface', newName);
-                       });
-
-                       uci.sections('network', 'route6', function(s) {
-                               if (s.interface == oldName)
-                                       uci.set('network', s['.name'], 'interface', newName);
-                       });
-
-                       uci.sections('wireless', 'wifi-iface', function(s) {
-                               var networks = L.toArray(s.network).map(function(network) { return (network == oldName ? newName : network) });
-
-                               if (networks.length > 0)
-                                       uci.set('wireless', s['.name'], 'network', networks.join(' '));
-                       });
-
-                       uci.remove('network', oldName);
-
-                       return true;
-               });
-       },
-
-       /**
-        * Get a {@link LuCI.Network.Device Device} instance describing the
-        * given network device.
-        *
-        * @param {string} name
-        * The name of the network device to get, e.g. `eth0` or `br-lan`.
-        *
-        * @returns {Promise&lt;null|LuCI.Network.Device>}
-        * Returns a promise resolving to the `Device` instance describing
-        * the network device or `null` if the given device name could not
-        * be found.
-        */
-       getDevice: function(name) {
-               return initNetworkState().then(L.bind(function() {
-                       if (name == null)
-                               return null;
-
-                       if (_state.netdevs.hasOwnProperty(name) || isWifiIfname(name))
-                               return this.instantiateDevice(name);
-
-                       var netid = getWifiNetidBySid(name);
-                       if (netid != null)
-                               return this.instantiateDevice(netid[0]);
-
-                       return null;
-               }, this));
-       },
-
-       /**
-        * Get a sorted list of all found network devices.
-        *
-        * @returns {Promise&lt;Array&lt;LuCI.Network.Device>>}
-        * Returns a promise resolving to a sorted array of `Device` class
-        * instances describing the network devices found on the system.
-        */
-       getDevices: function() {
-               return initNetworkState().then(L.bind(function() {
-                       var devices = {};
-
-                       /* find simple devices */
-                       var uciInterfaces = uci.sections('network', 'interface');
-                       for (var i = 0; i &lt; uciInterfaces.length; i++) {
-                               var ifnames = L.toArray(uciInterfaces[i].ifname);
-
-                               for (var j = 0; j &lt; ifnames.length; j++) {
-                                       if (ifnames[j].charAt(0) == '@')
-                                               continue;
-
-                                       if (isIgnoredIfname(ifnames[j]) || isVirtualIfname(ifnames[j]) || isWifiIfname(ifnames[j]))
-                                               continue;
-
-                                       devices[ifnames[j]] = this.instantiateDevice(ifnames[j]);
-                               }
-                       }
-
-                       for (var ifname in _state.netdevs) {
-                               if (devices.hasOwnProperty(ifname))
-                                       continue;
-
-                               if (isIgnoredIfname(ifname) || isVirtualIfname(ifname) || isWifiIfname(ifname))
-                                       continue;
-
-                               devices[ifname] = this.instantiateDevice(ifname);
-                       }
-
-                       /* find VLAN devices */
-                       var uciSwitchVLANs = uci.sections('network', 'switch_vlan');
-                       for (var i = 0; i &lt; uciSwitchVLANs.length; i++) {
-                               if (typeof(uciSwitchVLANs[i].ports) != 'string' ||
-                                   typeof(uciSwitchVLANs[i].device) != 'string' ||
-                                   !_state.switches.hasOwnProperty(uciSwitchVLANs[i].device))
-                                       continue;
-
-                               var ports = uciSwitchVLANs[i].ports.split(/\s+/);
-                               for (var j = 0; j &lt; ports.length; j++) {
-                                       var m = ports[j].match(/^(\d+)([tu]?)$/);
-                                       if (m == null)
-                                               continue;
-
-                                       var netdev = _state.switches[uciSwitchVLANs[i].device].netdevs[m[1]];
-                                       if (netdev == null)
-                                               continue;
-
-                                       if (!devices.hasOwnProperty(netdev))
-                                               devices[netdev] = this.instantiateDevice(netdev);
-
-                                       _state.isSwitch[netdev] = true;
-
-                                       if (m[2] != 't')
-                                               continue;
-
-                                       var vid = uciSwitchVLANs[i].vid || uciSwitchVLANs[i].vlan;
-                                           vid = (vid != null ? +vid : null);
-
-                                       if (vid == null || vid &lt; 0 || vid > 4095)
-                                               continue;
-
-                                       var vlandev = '%s.%d'.format(netdev, vid);
-
-                                       if (!devices.hasOwnProperty(vlandev))
-                                               devices[vlandev] = this.instantiateDevice(vlandev);
-
-                                       _state.isSwitch[vlandev] = true;
-                               }
-                       }
-
-                       /* find wireless interfaces */
-                       var uciWifiIfaces = uci.sections('wireless', 'wifi-iface'),
-                           networkCount = {};
-
-                       for (var i = 0; i &lt; uciWifiIfaces.length; i++) {
-                               if (typeof(uciWifiIfaces[i].device) != 'string')
-                                       continue;
-
-                               networkCount[uciWifiIfaces[i].device] = (networkCount[uciWifiIfaces[i].device] || 0) + 1;
-
-                               var netid = '%s.network%d'.format(uciWifiIfaces[i].device, networkCount[uciWifiIfaces[i].device]);
-
-                               devices[netid] = this.instantiateDevice(netid);
-                       }
-
-                       var rv = [];
-
-                       for (var netdev in devices)
-                               if (devices.hasOwnProperty(netdev))
-                                       rv.push(devices[netdev]);
-
-                       rv.sort(deviceSort);
-
-                       return rv;
-               }, this));
-       },
-
-       /**
-        * Test if a given network device name is in the list of patterns for
-        * device names to ignore.
-        *
-        * Ignored device names are usually Linux network devices which are
-        * spawned implicitly by kernel modules such as `tunl0` or `hwsim0`
-        * and which are unsuitable for use in network configuration.
-        *
-        * @param {string} name
-        * The device name to test.
-        *
-        * @returns {boolean}
-        * Returns `true` if the given name is in the ignore pattern list,
-        * else returns `false`.
-        */
-       isIgnoredDevice: function(name) {
-               return isIgnoredIfname(name);
-       },
-
-       /**
-        * Get a {@link LuCI.Network.WifiDevice WifiDevice} instance describing
-        * the given wireless radio.
-        *
-        * @param {string} devname
-        * The configuration name of the wireless radio to lookup, e.g. `radio0`
-        * for the first mac80211 phy on the system.
-        *
-        * @returns {Promise&lt;null|LuCI.Network.WifiDevice>}
-        * Returns a promise resolving to the `WifiDevice` instance describing
-        * the underlying radio device or `null` if the wireless radio could not
-        * be found.
-        */
-       getWifiDevice: function(devname) {
-               return initNetworkState().then(L.bind(function() {
-                       var existingDevice = uci.get('wireless', devname);
-
-                       if (existingDevice == null || existingDevice['.type'] != 'wifi-device')
-                               return null;
-
-                       return this.instantiateWifiDevice(devname, _state.radios[devname] || {});
-               }, this));
-       },
-
-       /**
-        * Obtain a list of all configured radio devices.
-        *
-        * @returns {Promise&lt;Array&lt;LuCI.Network.WifiDevice>>}
-        * Returns a promise resolving to an array of `WifiDevice` instances
-        * describing the wireless radios configured in the system.
-        * The order of the array corresponds to the order of the radios in
-        * the configuration.
-        */
-       getWifiDevices: function() {
-               return initNetworkState().then(L.bind(function() {
-                       var uciWifiDevices = uci.sections('wireless', 'wifi-device'),
-                           rv = [];
-
-                       for (var i = 0; i &lt; uciWifiDevices.length; i++) {
-                               var devname = uciWifiDevices[i]['.name'];
-                               rv.push(this.instantiateWifiDevice(devname, _state.radios[devname] || {}));
-                       }
-
-                       return rv;
-               }, this));
-       },
-
-       /**
-        * Get a {@link LuCI.Network.WifiNetwork WifiNetwork} instance describing
-        * the given wireless network.
-        *
-        * @param {string} netname
-        * The name of the wireless network to lookup. This may be either an uci
-        * configuration section ID, a network ID in the form `radio#.network#`
-        * or a Linux network device name like `wlan0` which is resolved to the
-        * corresponding configuration section through `ubus` runtime information.
-        *
-        * @returns {Promise&lt;null|LuCI.Network.WifiNetwork>}
-        * Returns a promise resolving to the `WifiNetwork` instance describing
-        * the wireless network or `null` if the corresponding network could not
-        * be found.
-        */
-       getWifiNetwork: function(netname) {
-               var sid, res, netid, radioname, radiostate, netstate;
-
-               return initNetworkState().then(L.bind(function() {
-                       sid = getWifiSidByNetid(netname);
-
-                       if (sid != null) {
-                               res        = getWifiStateBySid(sid);
-                               netid      = netname;
-                               radioname  = res ? res[0] : null;
-                               radiostate = res ? res[1] : null;
-                               netstate   = res ? res[2] : null;
-                       }
-                       else {
-                               res = getWifiStateByIfname(netname);
-
-                               if (res != null) {
-                                       radioname  = res[0];
-                                       radiostate = res[1];
-                                       netstate   = res[2];
-                                       sid        = netstate.section;
-                                       netid      = L.toArray(getWifiNetidBySid(sid))[0];
-                               }
-                               else {
-                                       res = getWifiStateBySid(netname);
-
-                                       if (res != null) {
-                                               radioname  = res[0];
-                                               radiostate = res[1];
-                                               netstate   = res[2];
-                                               sid        = netname;
-                                               netid      = L.toArray(getWifiNetidBySid(sid))[0];
-                                       }
-                                       else {
-                                               res = getWifiNetidBySid(netname);
-
-                                               if (res != null) {
-                                                       netid     = res[0];
-                                                       radioname = res[1];
-                                                       sid       = netname;
-                                               }
-                                       }
-                               }
-                       }
-
-                       return this.instantiateWifiNetwork(sid || netname, radioname, radiostate, netid, netstate);
-               }, this));
-       },
-
-       /**
-        * Adds a new wireless network to the configuration and sets its options
-        * to the provided values.
-        *
-        * @param {Object&lt;string, string|string[]>} options
-        * The options to set for the newly added wireless network. This object
-        * must at least contain a `device` property which is set to the radio
-        * name the new network belongs to.
-        *
-        * @returns {Promise&lt;null|LuCI.Network.WifiNetwork>}
-        * Returns a promise resolving to a `WifiNetwork` instance describing
-        * the newly added wireless network or `null` if the given options
-        * were invalid or if the associated radio device could not be found.
-        */
-       addWifiNetwork: function(options) {
-               return initNetworkState().then(L.bind(function() {
-                       if (options == null ||
-                           typeof(options) != 'object' ||
-                           typeof(options.device) != 'string')
-                           return null;
-
-                       var existingDevice = uci.get('wireless', options.device);
-                       if (existingDevice == null || existingDevice['.type'] != 'wifi-device')
-                               return null;
-
-                       /* XXX: need to add a named section (wifinet#) here */
-                       var sid = uci.add('wireless', 'wifi-iface');
-                       for (var key in options)
-                               if (options.hasOwnProperty(key))
-                                       uci.set('wireless', sid, key, options[key]);
-
-                       var radioname = existingDevice['.name'],
-                           netid = getWifiNetidBySid(sid) || [];
-
-                       return this.instantiateWifiNetwork(sid, radioname, _state.radios[radioname], netid[0], null);
-               }, this));
-       },
-
-       /**
-        * Deletes the given wireless network from the configuration.
-        *
-        * @param {string} netname
-        * The name of the network to remove. This may be either a
-        * network ID in the form `radio#.network#` or a Linux network device
-        * name like `wlan0` which is resolved to the corresponding configuration
-        * section through `ubus` runtime information.
-        *
-        * @returns {Promise&lt;boolean>}
-        * Returns a promise resolving to `true` if the wireless network has been
-        * successfully deleted from the configuration or `false` if it could not
-        * be found.
-        */
-       deleteWifiNetwork: function(netname) {
-               return initNetworkState().then(L.bind(function() {
-                       var sid = getWifiSidByIfname(netname);
-
-                       if (sid == null)
-                               return false;
-
-                       uci.remove('wireless', sid);
-                       return true;
-               }, this));
-       },
-
-       /* private */
-       getStatusByRoute: function(addr, mask) {
-               return initNetworkState().then(L.bind(function() {
-                       var rv = [];
-
-                       for (var i = 0; i &lt; _state.ifaces.length; i++) {
-                               if (!Array.isArray(_state.ifaces[i].route))
-                                       continue;
-
-                               for (var j = 0; j &lt; _state.ifaces[i].route.length; j++) {
-                                       if (typeof(_state.ifaces[i].route[j]) != 'object' ||
-                                           typeof(_state.ifaces[i].route[j].target) != 'string' ||
-                                           typeof(_state.ifaces[i].route[j].mask) != 'number')
-                                           continue;
-
-                                       if (_state.ifaces[i].route[j].table)
-                                               continue;
-
-                                       if (_state.ifaces[i].route[j].target != addr ||
-                                           _state.ifaces[i].route[j].mask != mask)
-                                           continue;
-
-                                       rv.push(_state.ifaces[i]);
-                               }
-                       }
-
-                       return rv;
-               }, this));
-       },
-
-       /* private */
-       getStatusByAddress: function(addr) {
-               return initNetworkState().then(L.bind(function() {
-                       var rv = [];
-
-                       for (var i = 0; i &lt; _state.ifaces.length; i++) {
-                               if (Array.isArray(_state.ifaces[i]['ipv4-address']))
-                                       for (var j = 0; j &lt; _state.ifaces[i]['ipv4-address'].length; j++)
-                                               if (typeof(_state.ifaces[i]['ipv4-address'][j]) == 'object' &amp;&amp;
-                                                   _state.ifaces[i]['ipv4-address'][j].address == addr)
-                                                       return _state.ifaces[i];
-
-                               if (Array.isArray(_state.ifaces[i]['ipv6-address']))
-                                       for (var j = 0; j &lt; _state.ifaces[i]['ipv6-address'].length; j++)
-                                               if (typeof(_state.ifaces[i]['ipv6-address'][j]) == 'object' &amp;&amp;
-                                                   _state.ifaces[i]['ipv6-address'][j].address == addr)
-                                                       return _state.ifaces[i];
-
-                               if (Array.isArray(_state.ifaces[i]['ipv6-prefix-assignment']))
-                                       for (var j = 0; j &lt; _state.ifaces[i]['ipv6-prefix-assignment'].length; j++)
-                                               if (typeof(_state.ifaces[i]['ipv6-prefix-assignment'][j]) == 'object' &amp;&amp;
-                                                       typeof(_state.ifaces[i]['ipv6-prefix-assignment'][j]['local-address']) == 'object' &amp;&amp;
-                                                   _state.ifaces[i]['ipv6-prefix-assignment'][j]['local-address'].address == addr)
-                                                       return _state.ifaces[i];
-                       }
-
-                       return null;
-               }, this));
-       },
-
-       /**
-        * Get IPv4 wan networks.
-        *
-        * This function looks up all networks having a default `0.0.0.0/0` route
-        * and returns them as array.
-        *
-        * @returns {Promise&lt;Array&lt;LuCI.Network.Protocol>>}
-        * Returns a promise resolving to an array of `Protocol` subclass
-        * instances describing the found default route interfaces.
-        */
-       getWANNetworks: function() {
-               return this.getStatusByRoute('0.0.0.0', 0).then(L.bind(function(statuses) {
-                       var rv = [];
-
-                       for (var i = 0; i &lt; statuses.length; i++)
-                               rv.push(this.instantiateNetwork(statuses[i].interface, statuses[i].proto));
-
-                       return rv;
-               }, this));
-       },
-
-       /**
-        * Get IPv6 wan networks.
-        *
-        * This function looks up all networks having a default `::/0` route
-        * and returns them as array.
-        *
-        * @returns {Promise&lt;Array&lt;LuCI.Network.Protocol>>}
-        * Returns a promise resolving to an array of `Protocol` subclass
-        * instances describing the found IPv6 default route interfaces.
-        */
-       getWAN6Networks: function() {
-               return this.getStatusByRoute('::', 0).then(L.bind(function(statuses) {
-                       var rv = [];
-
-                       for (var i = 0; i &lt; statuses.length; i++)
-                               rv.push(this.instantiateNetwork(statuses[i].interface, statuses[i].proto));
-
-                       return rv;
-               }, this));
-       },
-
-       /**
-        * Describes an swconfig switch topology by specifying the CPU
-        * connections and external port labels of a switch.
-        *
-        * @typedef {Object&lt;string, Object|Array>} SwitchTopology
-        * @memberof LuCI.Network
-        *
-        * @property {Object&lt;number, string>} netdevs
-        * The `netdevs` property points to an object describing the CPU port
-        * connections of the switch. The numeric key of the enclosed object is
-        * the port number, the value contains the Linux network device name the
-        * port is hardwired to.
-        *
-        * @property {Array&lt;Object&lt;string, boolean|number|string>>} ports
-        * The `ports` property points to an array describing the populated
-        * ports of the switch in the external label order. Each array item is
-        * an object containg the following keys:
-        *  - `num` - the internal switch port number
-        *  - `label` - the label of the port, e.g. `LAN 1` or `CPU (eth0)`
-        *  - `device` - the connected Linux network device name (CPU ports only)
-        *  - `tagged` - a boolean indicating whether the port must be tagged to
-        *     function (CPU ports only)
-        */
-
-       /**
-        * Returns the topologies of all swconfig switches found on the system.
-        *
-        * @returns {Promise&lt;Object&lt;string, LuCI.Network.SwitchTopology>>}
-        * Returns a promise resolving to an object containing the topologies
-        * of each switch. The object keys correspond to the name of the switches
-        * such as `switch0`, the values are
-        * {@link LuCI.Network.SwitchTopology SwitchTopology} objects describing
-        * the layout.
-        */
-       getSwitchTopologies: function() {
-               return initNetworkState().then(function() {
-                       return _state.switches;
-               });
-       },
-
-       /* private */
-       instantiateNetwork: function(name, proto) {
-               if (name == null)
-                       return null;
-
-               proto = (proto == null ? uci.get('network', name, 'proto') : proto);
-
-               var protoClass = _protocols[proto] || Protocol;
-               return new protoClass(name);
-       },
-
-       /* private */
-       instantiateDevice: function(name, network, extend) {
-               if (extend != null)
-                       return new (Device.extend(extend))(name, network);
-
-               return new Device(name, network);
-       },
-
-       /* private */
-       instantiateWifiDevice: function(radioname, radiostate) {
-               return new WifiDevice(radioname, radiostate);
-       },
-
-       /* private */
-       instantiateWifiNetwork: function(sid, radioname, radiostate, netid, netstate) {
-               return new WifiNetwork(sid, radioname, radiostate, netid, netstate);
-       },
-
-       /**
-        * Obtains the the network device name of the given object.
-        *
-        * @param {LuCI.Network.Protocol|LuCI.Network.Device|LuCI.Network.WifiDevice|LuCI.Network.WifiNetwork|string} obj
-        * The object to get the device name from.
-        *
-        * @returns {null|string}
-        * Returns a string containing the device name or `null` if the given
-        * object could not be converted to a name.
-        */
-       getIfnameOf: function(obj) {
-               return ifnameOf(obj);
-       },
-
-       /**
-        * Queries the internal DSL modem type from board information.
-        *
-        * @returns {Promise&lt;null|string>}
-        * Returns a promise resolving to the type of the internal modem
-        * (e.g. `vdsl`) or to `null` if no internal modem is present.
-        */
-       getDSLModemType: function() {
-               return initNetworkState().then(function() {
-                       return _state.hasDSLModem ? _state.hasDSLModem.type : null;
-               });
-       },
-
-       /**
-        * Queries aggregated information about known hosts.
-        *
-        * This function aggregates information from various sources such as
-        * DHCP lease databases, ARP and IPv6 neighbour entries, wireless
-        * association list etc. and returns a {@link LuCI.Network.Hosts Hosts}
-        * class instance describing the found hosts.
-        *
-        * @returns {Promise&lt;LuCI.Network.Hosts>}
-        * Returns a `Hosts` instance describing host known on the system.
-        */
-       getHostHints: function() {
-               return initNetworkState().then(function() {
-                       return new Hosts(_state.hosts);
-               });
-       }
-});
-
-/**
- * @class
- * @memberof LuCI.Network
- * @hideconstructor
- * @classdesc
- *
- * The `LuCI.Network.Hosts` class encapsulates host information aggregated
- * from multiple sources and provides convenience functions to access the
- * host information by different criteria.
- */
-Hosts = L.Class.extend(/** @lends LuCI.Network.Hosts.prototype */ {
-       __init__: function(hosts) {
-               this.hosts = hosts;
-       },
-
-       /**
-        * Lookup the hostname associated with the given MAC address.
-        *
-        * @param {string} mac
-        * The MAC address to lookup.
-        *
-        * @returns {null|string}
-        * Returns the hostname associated with the given MAC or `null` if
-        * no matching host could be found or if no hostname is known for
-        * the corresponding host.
-        */
-       getHostnameByMACAddr: function(mac) {
-               return this.hosts[mac] ? this.hosts[mac].name : null;
-       },
-
-       /**
-        * Lookup the IPv4 address associated with the given MAC address.
-        *
-        * @param {string} mac
-        * The MAC address to lookup.
-        *
-        * @returns {null|string}
-        * Returns the IPv4 address associated with the given MAC or `null` if
-        * no matching host could be found or if no IPv4 address is known for
-        * the corresponding host.
-        */
-       getIPAddrByMACAddr: function(mac) {
-               return this.hosts[mac] ? this.hosts[mac].ipv4 : null;
-       },
-
-       /**
-        * Lookup the IPv6 address associated with the given MAC address.
-        *
-        * @param {string} mac
-        * The MAC address to lookup.
-        *
-        * @returns {null|string}
-        * Returns the IPv6 address associated with the given MAC or `null` if
-        * no matching host could be found or if no IPv6 address is known for
-        * the corresponding host.
-        */
-       getIP6AddrByMACAddr: function(mac) {
-               return this.hosts[mac] ? this.hosts[mac].ipv6 : null;
-       },
-
-       /**
-        * Lookup the hostname associated with the given IPv4 address.
-        *
-        * @param {string} ipaddr
-        * The IPv4 address to lookup.
-        *
-        * @returns {null|string}
-        * Returns the hostname associated with the given IPv4 or `null` if
-        * no matching host could be found or if no hostname is known for
-        * the corresponding host.
-        */
-       getHostnameByIPAddr: function(ipaddr) {
-               for (var mac in this.hosts)
-                       if (this.hosts[mac].ipv4 == ipaddr &amp;&amp; this.hosts[mac].name != null)
-                               return this.hosts[mac].name;
-               return null;
-       },
-
-       /**
-        * Lookup the MAC address associated with the given IPv4 address.
-        *
-        * @param {string} ipaddr
-        * The IPv4 address to lookup.
-        *
-        * @returns {null|string}
-        * Returns the MAC address associated with the given IPv4 or `null` if
-        * no matching host could be found or if no MAC address is known for
-        * the corresponding host.
-        */
-       getMACAddrByIPAddr: function(ipaddr) {
-               for (var mac in this.hosts)
-                       if (this.hosts[mac].ipv4 == ipaddr)
-                               return mac;
-               return null;
-       },
-
-       /**
-        * Lookup the hostname associated with the given IPv6 address.
-        *
-        * @param {string} ipaddr
-        * The IPv6 address to lookup.
-        *
-        * @returns {null|string}
-        * Returns the hostname associated with the given IPv6 or `null` if
-        * no matching host could be found or if no hostname is known for
-        * the corresponding host.
-        */
-       getHostnameByIP6Addr: function(ip6addr) {
-               for (var mac in this.hosts)
-                       if (this.hosts[mac].ipv6 == ip6addr &amp;&amp; this.hosts[mac].name != null)
-                               return this.hosts[mac].name;
-               return null;
-       },
-
-       /**
-        * Lookup the MAC address associated with the given IPv6 address.
-        *
-        * @param {string} ipaddr
-        * The IPv6 address to lookup.
-        *
-        * @returns {null|string}
-        * Returns the MAC address associated with the given IPv6 or `null` if
-        * no matching host could be found or if no MAC address is known for
-        * the corresponding host.
-        */
-       getMACAddrByIP6Addr: function(ip6addr) {
-               for (var mac in this.hosts)
-                       if (this.hosts[mac].ipv6 == ip6addr)
-                               return mac;
-               return null;
-       },
-
-       /**
-        * Return an array of (MAC address, name hint) tuples sorted by
-        * MAC address.
-        *
-        * @param {boolean} [preferIp6=false]
-        * Whether to prefer IPv6 addresses (`true`) or IPv4 addresses (`false`)
-        * as name hint when no hostname is known for a specific MAC address.
-        *
-        * @returns {Array&lt;Array&lt;string>>}
-        * Returns an array of arrays containing a name hint for each found
-        * MAC address on the system. The array is sorted ascending by MAC.
-        *
-        * Each item of the resulting array is a two element array with the
-        * MAC being the first element and the name hint being the second
-        * element. The name hint is either the hostname, an IPv4 or an IPv6
-        * address related to the MAC address.
-        *
-        * If no hostname but both IPv4 and IPv6 addresses are known, the
-        * `preferIP6` flag specifies whether the IPv6 or the IPv4 address
-        * is used as hint.
-        */
-       getMACHints: function(preferIp6) {
-               var rv = [];
-               for (var mac in this.hosts) {
-                       var hint = this.hosts[mac].name ||
-                               this.hosts[mac][preferIp6 ? 'ipv6' : 'ipv4'] ||
-                               this.hosts[mac][preferIp6 ? 'ipv4' : 'ipv6'];
-
-                       rv.push([mac, hint]);
-               }
-               return rv.sort(function(a, b) { return a[0] > b[0] });
-       }
-});
-
-/**
- * @class
- * @memberof LuCI.Network
- * @hideconstructor
- * @classdesc
- *
- * The `Network.Protocol` class serves as base for protocol specific
- * subclasses which describe logical UCI networks defined by `config
- * interface` sections in `/etc/config/network`.
- */
-Protocol = L.Class.extend(/** @lends LuCI.Network.Protocol.prototype */ {
-       __init__: function(name) {
-               this.sid = name;
-       },
-
-       _get: function(opt) {
-               var val = uci.get('network', this.sid, opt);
-
-               if (Array.isArray(val))
-                       return val.join(' ');
-
-               return val || '';
-       },
-
-       _ubus: function(field) {
-               for (var i = 0; i &lt; _state.ifaces.length; i++) {
-                       if (_state.ifaces[i].interface != this.sid)
-                               continue;
-
-                       return (field != null ? _state.ifaces[i][field] : _state.ifaces[i]);
-               }
-       },
-
-       /**
-        * Read the given UCI option value of this network.
-        *
-        * @param {string} opt
-        * The UCI option name to read.
-        *
-        * @returns {null|string|string[]}
-        * Returns the UCI option value or `null` if the requested option is
-        * not found.
-        */
-       get: function(opt) {
-               return uci.get('network', this.sid, opt);
-       },
-
-       /**
-        * Set the given UCI option of this network to the given value.
-        *
-        * @param {string} opt
-        * The name of the UCI option to set.
-        *
-        * @param {null|string|string[]} val
-        * The value to set or `null` to remove the given option from the
-        * configuration.
-        */
-       set: function(opt, val) {
-               return uci.set('network', this.sid, opt, val);
-       },
-
-       /**
-        * Get the associared Linux network device of this network.
-        *
-        * @returns {null|string}
-        * Returns the name of the associated network device or `null` if
-        * it could not be determined.
-        */
-       getIfname: function() {
-               var ifname;
-
-               if (this.isFloating())
-                       ifname = this._ubus('l3_device');
-               else
-                       ifname = this._ubus('device') || this._ubus('l3_device');
-
-               if (ifname != null)
-                       return ifname;
-
-               var res = getWifiNetidByNetname(this.sid);
-               return (res != null ? res[0] : null);
-       },
-
-       /**
-        * Get the name of this network protocol class.
-        *
-        * This function will be overwritten by subclasses created by
-        * {@link LuCI.Network#registerProtocol Network.registerProtocol()}.
-        *
-        * @abstract
-        * @returns {string}
-        * Returns the name of the network protocol implementation, e.g.
-        * `static` or `dhcp`.
-        */
-       getProtocol: function() {
-               return null;
-       },
-
-       /**
-        * Return a human readable description for the protcol, such as
-        * `Static address` or `DHCP client`.
-        *
-        * This function should be overwritten by subclasses.
-        *
-        * @abstract
-        * @returns {string}
-        * Returns the description string.
-        */
-       getI18n: function() {
-               switch (this.getProtocol()) {
-               case 'none':   return _('Unmanaged');
-               case 'static': return _('Static address');
-               case 'dhcp':   return _('DHCP client');
-               default:       return _('Unknown');
-               }
-       },
-
-       /**
-        * Get the type of the underlying interface.
-        *
-        * This function actually is a convenience wrapper around
-        * `proto.get("type")` and is mainly used by other `LuCI.Network` code
-        * to check whether the interface is declared as bridge in UCI.
-        *
-        * @returns {null|string}
-        * Returns the value of the `type` option of the associated logical
-        * interface or `null` if no `type` option is set.
-        */
-       getType: function() {
-               return this._get('type');
-       },
-
-       /**
-        * Get the name of the associated logical interface.
-        *
-        * @returns {string}
-        * Returns the logical interface name, such as `lan` or `wan`.
-        */
-       getName: function() {
-               return this.sid;
-       },
-
-       /**
-        * Get the uptime of the logical interface.
-        *
-        * @returns {number}
-        * Returns the uptime of the associated interface in seconds.
-        */
-       getUptime: function() {
-               return this._ubus('uptime') || 0;
-       },
-
-       /**
-        * Get the logical interface expiry time in seconds.
-        *
-        * For protocols that have a concept of a lease, such as DHCP or
-        * DHCPv6, this function returns the remaining time in seconds
-        * until the lease expires.
-        *
-        * @returns {number}
-        * Returns the amount of seconds until the lease expires or `-1`
-        * if it isn't applicable to the associated protocol.
-        */
-       getExpiry: function() {
-               var u = this._ubus('uptime'),
-                   d = this._ubus('data');
-
-               if (typeof(u) == 'number' &amp;&amp; d != null &amp;&amp;
-                   typeof(d) == 'object' &amp;&amp; typeof(d.leasetime) == 'number') {
-                       var r = d.leasetime - (u % d.leasetime);
-                       return (r > 0 ? r : 0);
-               }
-
-               return -1;
-       },
-
-       /**
-        * Get the metric value of the logical interface.
-        *
-        * @returns {number}
-        * Returns the current metric value used for device and network
-        * routes spawned by the associated logical interface.
-        */
-       getMetric: function() {
-               return this._ubus('metric') || 0;
-       },
-
-       /**
-        * Get the requested firewall zone name of the logical interface.
-        *
-        * Some protocol implementations request a specific firewall zone
-        * to trigger inclusion of their resulting network devices into the
-        * firewall rule set.
-        *
-        * @returns {null|string}
-        * Returns the requested firewall zone name as published in the
-        * `ubus` runtime information or `null` if the remote protocol
-        * handler didn't request a zone.
-        */
-       getZoneName: function() {
-               var d = this._ubus('data');
-
-               if (L.isObject(d) &amp;&amp; typeof(d.zone) == 'string')
-                       return d.zone;
-
-               return null;
-       },
-
-       /**
-        * Query the first (primary) IPv4 address of the logical interface.
-        *
-        * @returns {null|string}
-        * Returns the primary IPv4 address registered by the protocol handler
-        * or `null` if no IPv4 addresses were set.
-        */
-       getIPAddr: function() {
-               var addrs = this._ubus('ipv4-address');
-               return ((Array.isArray(addrs) &amp;&amp; addrs.length) ? addrs[0].address : null);
-       },
-
-       /**
-        * Query all IPv4 addresses of the logical interface.
-        *
-        * @returns {string[]}
-        * Returns an array of IPv4 addresses in CIDR notation which have been
-        * registered by the protocol handler. The order of the resulting array
-        * follows the order of the addresses in `ubus` runtime information.
-        */
-       getIPAddrs: function() {
-               var addrs = this._ubus('ipv4-address'),
-                   rv = [];
-
-               if (Array.isArray(addrs))
-                       for (var i = 0; i &lt; addrs.length; i++)
-                               rv.push('%s/%d'.format(addrs[i].address, addrs[i].mask));
-
-               return rv;
-       },
-
-       /**
-        * Query the first (primary) IPv4 netmask of the logical interface.
-        *
-        * @returns {null|string}
-        * Returns the netmask of the primary IPv4 address registered by the
-        * protocol handler or `null` if no IPv4 addresses were set.
-        */
-       getNetmask: function() {
-               var addrs = this._ubus('ipv4-address');
-               if (Array.isArray(addrs) &amp;&amp; addrs.length)
-                       return prefixToMask(addrs[0].mask, false);
-       },
-
-       /**
-        * Query the gateway (nexthop) of the default route associated with
-        * this logical interface.
-        *
-        * @returns {string}
-        * Returns a string containing the IPv4 nexthop address of the associated
-        * default route or `null` if no default route was found.
-        */
-       getGatewayAddr: function() {
-               var routes = this._ubus('route');
-
-               if (Array.isArray(routes))
-                       for (var i = 0; i &lt; routes.length; i++)
-                               if (typeof(routes[i]) == 'object' &amp;&amp;
-                                   routes[i].target == '0.0.0.0' &amp;&amp;
-                                   routes[i].mask == 0)
-                                   return routes[i].nexthop;
-
-               return null;
-       },
-
-       /**
-        * Query the IPv4 DNS servers associated with the logical interface.
-        *
-        * @returns {string[]}
-        * Returns an array of IPv4 DNS servers registered by the remote
-        * protocol backend.
-        */
-       getDNSAddrs: function() {
-               var addrs = this._ubus('dns-server'),
-                   rv = [];
-
-               if (Array.isArray(addrs))
-                       for (var i = 0; i &lt; addrs.length; i++)
-                               if (!/:/.test(addrs[i]))
-                                       rv.push(addrs[i]);
-
-               return rv;
-       },
-
-       /**
-        * Query the first (primary) IPv6 address of the logical interface.
-        *
-        * @returns {null|string}
-        * Returns the primary IPv6 address registered by the protocol handler
-        * in CIDR notation or `null` if no IPv6 addresses were set.
-        */
-       getIP6Addr: function() {
-               var addrs = this._ubus('ipv6-address');
-
-               if (Array.isArray(addrs) &amp;&amp; L.isObject(addrs[0]))
-                       return '%s/%d'.format(addrs[0].address, addrs[0].mask);
-
-               addrs = this._ubus('ipv6-prefix-assignment');
-
-               if (Array.isArray(addrs) &amp;&amp; L.isObject(addrs[0]) &amp;&amp; L.isObject(addrs[0]['local-address']))
-                       return '%s/%d'.format(addrs[0]['local-address'].address, addrs[0]['local-address'].mask);
-
-               return null;
-       },
-
-       /**
-        * Query all IPv6 addresses of the logical interface.
-        *
-        * @returns {string[]}
-        * Returns an array of IPv6 addresses in CIDR notation which have been
-        * registered by the protocol handler. The order of the resulting array
-        * follows the order of the addresses in `ubus` runtime information.
-        */
-       getIP6Addrs: function() {
-               var addrs = this._ubus('ipv6-address'),
-                   rv = [];
-
-               if (Array.isArray(addrs))
-                       for (var i = 0; i &lt; addrs.length; i++)
-                               if (L.isObject(addrs[i]))
-                                       rv.push('%s/%d'.format(addrs[i].address, addrs[i].mask));
-
-               addrs = this._ubus('ipv6-prefix-assignment');
-
-               if (Array.isArray(addrs))
-                       for (var i = 0; i &lt; addrs.length; i++)
-                               if (L.isObject(addrs[i]) &amp;&amp; L.isObject(addrs[i]['local-address']))
-                                       rv.push('%s/%d'.format(addrs[i]['local-address'].address, addrs[i]['local-address'].mask));
-
-               return rv;
-       },
-
-       /**
-        * Query the gateway (nexthop) of the IPv6 default route associated with
-        * this logical interface.
-        *
-        * @returns {string}
-        * Returns a string containing the IPv6 nexthop address of the associated
-        * default route or `null` if no default route was found.
-        */
-       getGateway6Addr: function() {
-               var routes = this._ubus('route');
-
-               if (Array.isArray(routes))
-                       for (var i = 0; i &lt; routes.length; i++)
-                               if (typeof(routes[i]) == 'object' &amp;&amp;
-                                   routes[i].target == '::' &amp;&amp;
-                                   routes[i].mask == 0)
-                                   return routes[i].nexthop;
-
-               return null;
-       },
-
-       /**
-        * Query the IPv6 DNS servers associated with the logical interface.
-        *
-        * @returns {string[]}
-        * Returns an array of IPv6 DNS servers registered by the remote
-        * protocol backend.
-        */
-       getDNS6Addrs: function() {
-               var addrs = this._ubus('dns-server'),
-                   rv = [];
-
-               if (Array.isArray(addrs))
-                       for (var i = 0; i &lt; addrs.length; i++)
-                               if (/:/.test(addrs[i]))
-                                       rv.push(addrs[i]);
-
-               return rv;
-       },
-
-       /**
-        * Query the routed IPv6 prefix associated with the logical interface.
-        *
-        * @returns {null|string}
-        * Returns the routed IPv6 prefix registered by the remote protocol
-        * handler or `null` if no prefix is present.
-        */
-       getIP6Prefix: function() {
-               var prefixes = this._ubus('ipv6-prefix');
-
-               if (Array.isArray(prefixes) &amp;&amp; L.isObject(prefixes[0]))
-                       return '%s/%d'.format(prefixes[0].address, prefixes[0].mask);
-
-               return null;
-       },
-
-       /**
-        * Query interface error messages published in `ubus` runtime state.
-        *
-        * Interface errors are emitted by remote protocol handlers if the setup
-        * of the underlying logical interface failed, e.g. due to bad
-        * configuration or network connectivity issues.
-        *
-        * This function will translate the found error codes to human readable
-        * messages using the descriptions registered by
-        * {@link LuCI.Network#registerErrorCode Network.registerErrorCode()}
-        * and fall back to `"Unknown error (%s)"` where `%s` is replaced by the
-        * error code in case no translation can be found.
-        *
-        * @returns {string[]}
-        * Returns an array of translated interface error messages.
-        */
-       getErrors: function() {
-               var errors = this._ubus('errors'),
-                   rv = null;
-
-               if (Array.isArray(errors)) {
-                       for (var i = 0; i &lt; errors.length; i++) {
-                               if (!L.isObject(errors[i]) || typeof(errors[i].code) != 'string')
-                                       continue;
-
-                               rv = rv || [];
-                               rv.push(proto_errors[errors[i].code] || _('Unknown error (%s)').format(errors[i].code));
-                       }
-               }
-
-               return rv;
-       },
-
-       /**
-        * Checks whether the underlying logical interface is declared as bridge.
-        *
-        * @returns {boolean}
-        * Returns `true` when the interface is declared with `option type bridge`
-        * and when the associated protocol implementation is not marked virtual
-        * or `false` when the logical interface is no bridge.
-        */
-       isBridge: function() {
-               return (!this.isVirtual() &amp;&amp; this.getType() == 'bridge');
-       },
-
-       /**
-        * Get the name of the opkg package providing the protocol functionality.
-        *
-        * This function should be overwritten by protocol specific subclasses.
-        *
-        * @abstract
-        *
-        * @returns {string}
-        * Returns the name of the opkg package required for the protocol to
-        * function, e.g. `odhcp6c` for the `dhcpv6` prototocol.
-        */
-       getOpkgPackage: function() {
-               return null;
-       },
-
-       /**
-        * Checks whether the protocol functionality is installed.
-        *
-        * This function exists for compatibility with old code, it always
-        * returns `true`.
-        *
-        * @deprecated
-        * @abstract
-        *
-        * @returns {boolean}
-        * Returns `true` if the protocol support is installed, else `false`.
-        */
-       isInstalled: function() {
-               return true;
-       },
-
-       /**
-        * Checks whether this protocol is "virtual".
-        *
-        * A "virtual" protocol is a protocol which spawns its own interfaces
-        * on demand instead of using existing physical interfaces.
-        *
-        * Examples for virtual protocols are `6in4` which `gre` spawn tunnel
-        * network device on startup, examples for non-virtual protcols are
-        * `dhcp` or `static` which apply IP configuration to existing interfaces.
-        *
-        * This function should be overwritten by subclasses.
-        *
-        * @returns {boolean}
-        * Returns a boolean indicating whether the underlying protocol spawns
-        * dynamic interfaces (`true`) or not (`false`).
-        */
-       isVirtual: function() {
-               return false;
-       },
-
-       /**
-        * Checks whether this protocol is "floating".
-        *
-        * A "floating" protocol is a protocol which spawns its own interfaces
-        * on demand, like a virtual one but which relies on an existinf lower
-        * level interface to initiate the connection.
-        *
-        * An example for such a protocol is "pppoe".
-        *
-        * This function exists for backwards compatibility with older code
-        * but should not be used anymore.
-        *
-        * @deprecated
-        * @returns {boolean}
-        * Returns a boolean indicating whether this protocol is floating (`true`)
-        * or not (`false`).
-        */
-       isFloating: function() {
-               return false;
-       },
-
-       /**
-        * Checks whether this logical interface is dynamic.
-        *
-        * A dynamic interface is an interface which has been created at runtime,
-        * e.g. as sub-interface of another interface, but which is not backed by
-        * any user configuration. Such dynamic interfaces cannot be edited but
-        * only brought down or restarted.
-        *
-        * @returns {boolean}
-        * Returns a boolean indicating whether this interface is dynamic (`true`)
-        * or not (`false`).
-        */
-       isDynamic: function() {
-               return (this._ubus('dynamic') == true);
-       },
-
-       /**
-        * Checks whether this interface is an alias interface.
-        *
-        * Alias interfaces are interfaces layering on top of another interface
-        * and are denoted by a special `@interfacename` notation in the
-        * underlying `ifname` option.
-        *
-        * @returns {null|string}
-        * Returns the name of the parent interface if this logical interface
-        * is an alias or `null` if it is not an alias interface.
-        */
-       isAlias: function() {
-               var ifnames = L.toArray(uci.get('network', this.sid, 'ifname')),
-                   parent = null;
-
-               for (var i = 0; i &lt; ifnames.length; i++)
-                       if (ifnames[i].charAt(0) == '@')
-                               parent = ifnames[i].substr(1);
-                       else if (parent != null)
-                               parent = null;
-
-               return parent;
-       },
-
-       /**
-        * Checks whether this logical interface is "empty", meaning that ut
-        * has no network devices attached.
-        *
-        * @returns {boolean}
-        * Returns `true` if this logical interface is empty, else `false`.
-        */
-       isEmpty: function() {
-               if (this.isFloating())
-                       return false;
-
-               var empty = true,
-                   ifname = this._get('ifname');
-
-               if (ifname != null &amp;&amp; ifname.match(/\S+/))
-                       empty = false;
-
-               if (empty == true &amp;&amp; getWifiNetidBySid(this.sid) != null)
-                       empty = false;
-
-               return empty;
-       },
-
-       /**
-        * Checks whether this logical interface is configured and running.
-        *
-        * @returns {boolean}
-        * Returns `true` when the interface is active or `false` when it is not.
-        */
-       isUp: function() {
-               return (this._ubus('up') == true);
-       },
-
-       /**
-        * Add the given network device to the logical interface.
-        *
-        * @param {LuCI.Network.Protocol|LuCI.Network.Device|LuCI.Network.WifiDevice|LuCI.Network.WifiNetwork|string} device
-        * The object or device name to add to the logical interface. In case the
-        * given argument is not a string, it is resolved though the
-        * {@link LuCI.Network#getIfnameOf Network.getIfnameOf()} function.
-        *
-        * @returns {boolean}
-        * Returns `true` if the device name has been added or `false` if any
-        * argument was invalid, if the device was already part of the logical
-        * interface or if the logical interface is virtual.
-        */
-       addDevice: function(ifname) {
-               ifname = ifnameOf(ifname);
-
-               if (ifname == null || this.isFloating())
-                       return false;
-
-               var wif = getWifiSidByIfname(ifname);
-
-               if (wif != null)
-                       return appendValue('wireless', wif, 'network', this.sid);
-
-               return appendValue('network', this.sid, 'ifname', ifname);
-       },
-
-       /**
-        * Remove the given network device from the logical interface.
-        *
-        * @param {LuCI.Network.Protocol|LuCI.Network.Device|LuCI.Network.WifiDevice|LuCI.Network.WifiNetwork|string} device
-        * The object or device name to remove from the logical interface. In case
-        * the given argument is not a string, it is resolved though the
-        * {@link LuCI.Network#getIfnameOf Network.getIfnameOf()} function.
-        *
-        * @returns {boolean}
-        * Returns `true` if the device name has been added or `false` if any
-        * argument was invalid, if the device was already part of the logical
-        * interface or if the logical interface is virtual.
-        */
-       deleteDevice: function(ifname) {
-               var rv = false;
-
-               ifname = ifnameOf(ifname);
-
-               if (ifname == null || this.isFloating())
-                       return false;
-
-               var wif = getWifiSidByIfname(ifname);
-
-               if (wif != null)
-                       rv = removeValue('wireless', wif, 'network', this.sid);
-
-               if (removeValue('network', this.sid, 'ifname', ifname))
-                       rv = true;
-
-               return rv;
-       },
-
-       /**
-        * Returns the Linux network device associated with this logical
-        * interface.
-        *
-        * @returns {LuCI.Network.Device}
-        * Returns a `Network.Device` class instance representing the
-        * expected Linux network device according to the configuration.
-        */
-       getDevice: function() {
-               if (this.isVirtual()) {
-                       var ifname = '%s-%s'.format(this.getProtocol(), this.sid);
-                       _state.isTunnel[this.getProtocol() + '-' + this.sid] = true;
-                       return L.network.instantiateDevice(ifname, this);
-               }
-               else if (this.isBridge()) {
-                       var ifname = 'br-%s'.format(this.sid);
-                       _state.isBridge[ifname] = true;
-                       return new Device(ifname, this);
-               }
-               else {
-                       var ifnames = L.toArray(uci.get('network', this.sid, 'ifname'));
-
-                       for (var i = 0; i &lt; ifnames.length; i++) {
-                               var m = ifnames[i].match(/^([^:/]+)/);
-                               return ((m &amp;&amp; m[1]) ? L.network.instantiateDevice(m[1], this) : null);
-                       }
-
-                       ifname = getWifiNetidByNetname(this.sid);
-
-                       return (ifname != null ? L.network.instantiateDevice(ifname[0], this) : null);
-               }
-       },
-
-       /**
-        * Returns the layer 2 linux network device currently associated
-        * with this logical interface.
-        *
-        * @returns {LuCI.Network.Device}
-        * Returns a `Network.Device` class instance representing the Linux
-        * network device currently associated with the logical interface.
-        */
-       getL2Device: function() {
-               var ifname = this._ubus('device');
-               return (ifname != null ? L.network.instantiateDevice(ifname, this) : null);
-       },
-
-       /**
-        * Returns the layer 3 linux network device currently associated
-        * with this logical interface.
-        *
-        * @returns {LuCI.Network.Device}
-        * Returns a `Network.Device` class instance representing the Linux
-        * network device currently associated with the logical interface.
-        */
-       getL3Device: function() {
-               var ifname = this._ubus('l3_device');
-               return (ifname != null ? L.network.instantiateDevice(ifname, this) : null);
-       },
-
-       /**
-        * Returns a list of network sub-devices associated with this logical
-        * interface.
-        *
-        * @returns {null|Array&lt;LuCI.Network.Device>}
-        * Returns an array of of `Network.Device` class instances representing
-        * the sub-devices attached to this logical interface or `null` if the
-        * logical interface does not support sub-devices, e.g. because it is
-        * virtual and not a bridge.
-        */
-       getDevices: function() {
-               var rv = [];
-
-               if (!this.isBridge() &amp;&amp; !(this.isVirtual() &amp;&amp; !this.isFloating()))
-                       return null;
-
-               var ifnames = L.toArray(uci.get('network', this.sid, 'ifname'));
-
-               for (var i = 0; i &lt; ifnames.length; i++) {
-                       if (ifnames[i].charAt(0) == '@')
-                               continue;
-
-                       var m = ifnames[i].match(/^([^:/]+)/);
-                       if (m != null)
-                               rv.push(L.network.instantiateDevice(m[1], this));
-               }
-
-               var uciWifiIfaces = uci.sections('wireless', 'wifi-iface');
-
-               for (var i = 0; i &lt; uciWifiIfaces.length; i++) {
-                       if (typeof(uciWifiIfaces[i].device) != 'string')
-                               continue;
-
-                       var networks = L.toArray(uciWifiIfaces[i].network);
-
-                       for (var j = 0; j &lt; networks.length; j++) {
-                               if (networks[j] != this.sid)
-                                       continue;
-
-                               var netid = getWifiNetidBySid(uciWifiIfaces[i]['.name']);
-
-                               if (netid != null)
-                                       rv.push(L.network.instantiateDevice(netid[0], this));
-                       }
-               }
-
-               rv.sort(deviceSort);
-
-               return rv;
-       },
-
-       /**
-        * Checks whether this logical interface contains the given device
-        * object.
-        *
-        * @param {LuCI.Network.Protocol|LuCI.Network.Device|LuCI.Network.WifiDevice|LuCI.Network.WifiNetwork|string} device
-        * The object or device name to check. In case the given argument is not
-        * a string, it is resolved though the
-        * {@link LuCI.Network#getIfnameOf Network.getIfnameOf()} function.
-        *
-        * @returns {boolean}
-        * Returns `true` when this logical interface contains the given network
-        * device or `false` if not.
-        */
-       containsDevice: function(ifname) {
-               ifname = ifnameOf(ifname);
-
-               if (ifname == null)
-                       return false;
-               else if (this.isVirtual() &amp;&amp; '%s-%s'.format(this.getProtocol(), this.sid) == ifname)
-                       return true;
-               else if (this.isBridge() &amp;&amp; 'br-%s'.format(this.sid) == ifname)
-                       return true;
-
-               var ifnames = L.toArray(uci.get('network', this.sid, 'ifname'));
-
-               for (var i = 0; i &lt; ifnames.length; i++) {
-                       var m = ifnames[i].match(/^([^:/]+)/);
-                       if (m != null &amp;&amp; m[1] == ifname)
-                               return true;
-               }
-
-               var wif = getWifiSidByIfname(ifname);
-
-               if (wif != null) {
-                       var networks = L.toArray(uci.get('wireless', wif, 'network'));
-
-                       for (var i = 0; i &lt; networks.length; i++)
-                               if (networks[i] == this.sid)
-                                       return true;
-               }
-
-               return false;
-       }
-});
-
-/**
- * @class
- * @memberof LuCI.Network
- * @hideconstructor
- * @classdesc
- *
- * A `Network.Device` class instance represents an underlying Linux network
- * device and allows querying device details such as packet statistics or MTU.
- */
-Device = L.Class.extend(/** @lends LuCI.Network.Device.prototype */ {
-       __init__: function(ifname, network) {
-               var wif = getWifiSidByIfname(ifname);
-
-               if (wif != null) {
-                       var res = getWifiStateBySid(wif) || [],
-                           netid = getWifiNetidBySid(wif) || [];
-
-                       this.wif    = new WifiNetwork(wif, res[0], res[1], netid[0], res[2], { ifname: ifname });
-                       this.ifname = this.wif.getIfname();
-               }
-
-               this.ifname  = this.ifname || ifname;
-               this.dev     = _state.netdevs[this.ifname];
-               this.network = network;
-       },
-
-       _devstate: function(/* ... */) {
-               var rv = this.dev;
-
-               for (var i = 0; i &lt; arguments.length; i++)
-                       if (L.isObject(rv))
-                               rv = rv[arguments[i]];
-                       else
-                               return null;
-
-               return rv;
-       },
-
-       /**
-        * Get the name of the network device.
-        *
-        * @returns {string}
-        * Returns the name of the device, e.g. `eth0` or `wlan0`.
-        */
-       getName: function() {
-               return (this.wif != null ? this.wif.getIfname() : this.ifname);
-       },
-
-       /**
-        * Get the MAC address of the device.
-        *
-        * @returns {null|string}
-        * Returns the MAC address of the device or `null` if not applicable,
-        * e.g. for non-ethernet tunnel devices.
-        */
-       getMAC: function() {
-               var mac = this._devstate('macaddr');
-               return mac ? mac.toUpperCase() : null;
-       },
-
-       /**
-        * Get the MTU of the device.
-        *
-        * @returns {number}
-        * Returns the MTU of the device.
-        */
-       getMTU: function() {
-               return this._devstate('mtu');
-       },
-
-       /**
-        * Get the IPv4 addresses configured on the device.
-        *
-        * @returns {string[]}
-        * Returns an array of IPv4 address strings.
-        */
-       getIPAddrs: function() {
-               var addrs = this._devstate('ipaddrs');
-               return (Array.isArray(addrs) ? addrs : []);
-       },
-
-       /**
-        * Get the IPv6 addresses configured on the device.
-        *
-        * @returns {string[]}
-        * Returns an array of IPv6 address strings.
-        */
-       getIP6Addrs: function() {
-               var addrs = this._devstate('ip6addrs');
-               return (Array.isArray(addrs) ? addrs : []);
-       },
-
-       /**
-        * Get the type of the device..
-        *
-        * @returns {string}
-        * Returns a string describing the type of the network device:
-        *  - `alias` if it is an abstract alias device (`@` notation)
-        *  - `wifi` if it is a wireless interface (e.g. `wlan0`)
-        *  - `bridge` if it is a bridge device (e.g. `br-lan`)
-        *  - `tunnel` if it is a tun or tap device (e.g. `tun0`)
-        *  - `vlan` if it is a vlan device (e.g. `eth0.1`)
-        *  - `switch` if it is a switch device (e.g.`eth1` connected to switch0)
-        *  - `ethernet` for all other device types
-        */
-       getType: function() {
-               if (this.ifname != null &amp;&amp; this.ifname.charAt(0) == '@')
-                       return 'alias';
-               else if (this.wif != null || isWifiIfname(this.ifname))
-                       return 'wifi';
-               else if (_state.isBridge[this.ifname])
-                       return 'bridge';
-               else if (_state.isTunnel[this.ifname])
-                       return 'tunnel';
-               else if (this.ifname.indexOf('.') > -1)
-                       return 'vlan';
-               else if (_state.isSwitch[this.ifname])
-                       return 'switch';
-               else
-                       return 'ethernet';
-       },
-
-       /**
-        * Get a short description string for the device.
-        *
-        * @returns {string}
-        * Returns the device name for non-wifi devices or a string containing
-        * the operation mode and SSID for wifi devices.
-        */
-       getShortName: function() {
-               if (this.wif != null)
-                       return this.wif.getShortName();
-
-               return this.ifname;
-       },
-
-       /**
-        * Get a long description string for the device.
-        *
-        * @returns {string}
-        * Returns a string containing the type description and device name
-        * for non-wifi devices or operation mode and ssid for wifi ones.
-        */
-       getI18n: function() {
-               if (this.wif != null) {
-                       return '%s: %s "%s"'.format(
-                               _('Wireless Network'),
-                               this.wif.getActiveMode(),
-                               this.wif.getActiveSSID() || this.wif.getActiveBSSID() || this.wif.getID() || '?');
-               }
-
-               return '%s: "%s"'.format(this.getTypeI18n(), this.getName());
-       },
-
-       /**
-        * Get a string describing the device type.
-        *
-        * @returns {string}
-        * Returns a string describing the type, e.g. "Wireless Adapter" or
-        * "Bridge".
-        */
-       getTypeI18n: function() {
-               switch (this.getType()) {
-               case 'alias':
-                       return _('Alias Interface');
-
-               case 'wifi':
-                       return _('Wireless Adapter');
-
-               case 'bridge':
-                       return _('Bridge');
-
-               case 'switch':
-                       return _('Ethernet Switch');
-
-               case 'vlan':
-                       return (_state.isSwitch[this.ifname] ? _('Switch VLAN') : _('Software VLAN'));
-
-               case 'tunnel':
-                       return _('Tunnel Interface');
-
-               default:
-                       return _('Ethernet Adapter');
-               }
-       },
-
-       /**
-        * Get the associated bridge ports of the device.
-        *
-        * @returns {null|Array&lt;LuCI.Network.Device>}
-        * Returns an array of `Network.Device` instances representing the ports
-        * (slave interfaces) of the bridge or `null` when this device isn't
-        * a Linux bridge.
-        */
-       getPorts: function() {
-               var br = _state.bridges[this.ifname],
-                   rv = [];
-
-               if (br == null || !Array.isArray(br.ifnames))
-                       return null;
-
-               for (var i = 0; i &lt; br.ifnames.length; i++)
-                       rv.push(L.network.instantiateDevice(br.ifnames[i].name));
-
-               rv.sort(deviceSort);
-
-               return rv;
-       },
-
-       /**
-        * Get the bridge ID
-        *
-        * @returns {null|string}
-        * Returns the ID of this network bridge or `null` if this network
-        * device is not a Linux bridge.
-        */
-       getBridgeID: function() {
-               var br = _state.bridges[this.ifname];
-               return (br != null ? br.id : null);
-       },
-
-       /**
-        * Get the bridge STP setting
-        *
-        * @returns {boolean}
-        * Returns `true` when this device is a Linux bridge and has `stp`
-        * enabled, else `false`.
-        */
-       getBridgeSTP: function() {
-               var br = _state.bridges[this.ifname];
-               return (br != null ? !!br.stp : false);
-       },
-
-       /**
-        * Checks whether this device is up.
-        *
-        * @returns {boolean}
-        * Returns `true` when the associated device is running pr `false`
-        * when it is down or absent.
-        */
-       isUp: function() {
-               var up = this._devstate('flags', 'up');
-
-               if (up == null)
-                       up = (this.getType() == 'alias');
-
-               return up;
-       },
-
-       /**
-        * Checks whether this device is a Linux bridge.
-        *
-        * @returns {boolean}
-        * Returns `true` when the network device is present and a Linux bridge,
-        * else `false`.
-        */
-       isBridge: function() {
-               return (this.getType() == 'bridge');
-       },
-
-       /**
-        * Checks whether this device is part of a Linux bridge.
-        *
-        * @returns {boolean}
-        * Returns `true` when this network device is part of a bridge,
-        * else `false`.
-        */
-       isBridgePort: function() {
-               return (this._devstate('bridge') != null);
-       },
-
-       /**
-        * Get the amount of transmitted bytes.
-        *
-        * @returns {number}
-        * Returns the amount of bytes transmitted by the network device.
-        */
-       getTXBytes: function() {
-               var stat = this._devstate('stats');
-               return (stat != null ? stat.tx_bytes || 0 : 0);
-       },
-
-       /**
-        * Get the amount of received bytes.
-        *
-        * @returns {number}
-        * Returns the amount of bytes received by the network device.
-        */
-       getRXBytes: function() {
-               var stat = this._devstate('stats');
-               return (stat != null ? stat.rx_bytes || 0 : 0);
-       },
-
-       /**
-        * Get the amount of transmitted packets.
-        *
-        * @returns {number}
-        * Returns the amount of packets transmitted by the network device.
-        */
-       getTXPackets: function() {
-               var stat = this._devstate('stats');
-               return (stat != null ? stat.tx_packets || 0 : 0);
-       },
-
-       /**
-        * Get the amount of received packets.
-        *
-        * @returns {number}
-        * Returns the amount of packets received by the network device.
-        */
-       getRXPackets: function() {
-               var stat = this._devstate('stats');
-               return (stat != null ? stat.rx_packets || 0 : 0);
-       },
-
-       /**
-        * Get the primary logical interface this device is assigned to.
-        *
-        * @returns {null|LuCI.Network.Protocol}
-        * Returns a `Network.Protocol` instance representing the logical
-        * interface this device is attached to or `null` if it is not
-        * assigned to any logical interface.
-        */
-       getNetwork: function() {
-               return this.getNetworks()[0];
-       },
-
-       /**
-        * Get the logical interfaces this device is assigned to.
-        *
-        * @returns {Array&lt;LuCI.Network.Protocol>}
-        * Returns an array of `Network.Protocol` instances representing the
-        * logical interfaces this device is assigned to.
-        */
-       getNetworks: function() {
-               if (this.networks == null) {
-                       this.networks = [];
-
-                       var networks = enumerateNetworks.apply(L.network);
-
-                       for (var i = 0; i &lt; networks.length; i++)
-                               if (networks[i].containsDevice(this.ifname) || networks[i].getIfname() == this.ifname)
-                                       this.networks.push(networks[i]);
-
-                       this.networks.sort(networkSort);
-               }
-
-               return this.networks;
-       },
-
-       /**
-        * Get the related wireless network this device is related to.
-        *
-        * @returns {null|LuCI.Network.WifiNetwork}
-        * Returns a `Network.WifiNetwork` instance representing the wireless
-        * network corresponding to this network device or `null` if this device
-        * is not a wireless device.
-        */
-       getWifiNetwork: function() {
-               return (this.wif != null ? this.wif : null);
-       }
-});
-
-/**
- * @class
- * @memberof LuCI.Network
- * @hideconstructor
- * @classdesc
- *
- * A `Network.WifiDevice` class instance represents a wireless radio device
- * present on the system and provides wireless capability information as
- * well as methods for enumerating related wireless networks.
- */
-WifiDevice = L.Class.extend(/** @lends LuCI.Network.WifiDevice.prototype */ {
-       __init__: function(name, radiostate) {
-               var uciWifiDevice = uci.get('wireless', name);
-
-               if (uciWifiDevice != null &amp;&amp;
-                   uciWifiDevice['.type'] == 'wifi-device' &amp;&amp;
-                   uciWifiDevice['.name'] != null) {
-                       this.sid    = uciWifiDevice['.name'];
-               }
-
-               this.sid    = this.sid || name;
-               this._ubusdata = {
-                       radio: name,
-                       dev:   radiostate
-               };
-       },
-
-       /* private */
-       ubus: function(/* ... */) {
-               var v = this._ubusdata;
-
-               for (var i = 0; i &lt; arguments.length; i++)
-                       if (L.isObject(v))
-                               v = v[arguments[i]];
-                       else
-                               return null;
-
-               return v;
-       },
-
-       /**
-        * Read the given UCI option value of this wireless device.
-        *
-        * @param {string} opt
-        * The UCI option name to read.
-        *
-        * @returns {null|string|string[]}
-        * Returns the UCI option value or `null` if the requested option is
-        * not found.
-        */
-       get: function(opt) {
-               return uci.get('wireless', this.sid, opt);
-       },
-
-       /**
-        * Set the given UCI option of this network to the given value.
-        *
-        * @param {string} opt
-        * The name of the UCI option to set.
-        *
-        * @param {null|string|string[]} val
-        * The value to set or `null` to remove the given option from the
-        * configuration.
-        */
-       set: function(opt, value) {
-               return uci.set('wireless', this.sid, opt, value);
-       },
-
-       /**
-        * Checks whether this wireless radio is disabled.
-        *
-        * @returns {boolean}
-        * Returns `true` when the wireless radio is marked as disabled in `ubus`
-        * runtime state or when the `disabled` option is set in the corresponding
-        * UCI configuration.
-        */
-       isDisabled: function() {
-               return this.ubus('dev', 'disabled') || this.get('disabled') == '1';
-       },
-
-       /**
-        * Get the configuration name of this wireless radio.
-        *
-        * @returns {string}
-        * Returns the UCI section name (e.g. `radio0`) of the corresponding
-        * radio configuration which also serves as unique logical identifier
-        * for the wireless phy.
-        */
-       getName: function() {
-               return this.sid;
-       },
-
-       /**
-        * Gets a list of supported hwmodes.
-        *
-        * The hwmode values describe the frequency band and wireless standard
-        * versions supported by the wireless phy.
-        *
-        * @returns {string[]}
-        * Returns an array of valid hwmode values for this radio. Currently
-        * known mode values are:
-        *  - `a` - Legacy 802.11a mode, 5 GHz, up to 54 Mbit/s
-        *  - `b` - Legacy 802.11b mode, 2.4 GHz, up to 11 Mbit/s
-        *  - `g` - Legacy 802.11g mode, 2.4 GHz, up to 54 Mbit/s
-        *  - `n` - IEEE 802.11n mode, 2.4 or 5 GHz, up to 600 Mbit/s
-        *  - `ac` - IEEE 802.11ac mode, 5 GHz, up to 6770 Mbit/s
-        */
-       getHWModes: function() {
-               var hwmodes = this.ubus('dev', 'iwinfo', 'hwmodes');
-               return Array.isArray(hwmodes) ? hwmodes : [ 'b', 'g' ];
-       },
-
-       /**
-        * Gets a list of supported htmodes.
-        *
-        * The htmode values describe the wide-frequency options supported by
-        * the wireless phy.
-        *
-        * @returns {string[]}
-        * Returns an array of valid htmode values for this radio. Currently
-        * known mode values are:
-        *  - `HT20` - applicable to IEEE 802.11n, 20 MHz wide channels
-        *  - `HT40` - applicable to IEEE 802.11n, 40 MHz wide channels
-        *  - `VHT20` - applicable to IEEE 802.11ac, 20 MHz wide channels
-        *  - `VHT40` - applicable to IEEE 802.11ac, 40 MHz wide channels
-        *  - `VHT80` - applicable to IEEE 802.11ac, 80 MHz wide channels
-        *  - `VHT160` - applicable to IEEE 802.11ac, 160 MHz wide channels
-        */
-       getHTModes: function() {
-               var htmodes = this.ubus('dev', 'iwinfo', 'htmodes');
-               return (Array.isArray(htmodes) &amp;&amp; htmodes.length) ? htmodes : null;
-       },
-
-       /**
-        * Get a string describing the wireless radio hardware.
-        *
-        * @returns {string}
-        * Returns the description string.
-        */
-       getI18n: function() {
-               var hw = this.ubus('dev', 'iwinfo', 'hardware'),
-                   type = L.isObject(hw) ? hw.name : null;
-
-               if (this.ubus('dev', 'iwinfo', 'type') == 'wl')
-                       type = 'Broadcom';
-
-               var hwmodes = this.getHWModes(),
-                   modestr = '';
-
-               hwmodes.sort(function(a, b) {
-                       return (a.length != b.length ? a.length > b.length : a > b);
-               });
-
-               modestr = hwmodes.join('');
-
-               return '%s 802.11%s Wireless Controller (%s)'.format(type || 'Generic', modestr, this.getName());
-       },
-
-       /**
-        * A wireless scan result object describes a neighbouring wireless
-        * network found in the vincinity.
-        *
-        * @typedef {Object&lt;string, number|string|LuCI.Network.WifiEncryption>} WifiScanResult
-        * @memberof LuCI.Network
-        *
-        * @property {string} ssid
-        * The SSID / Mesh ID of the network.
-        *
-        * @property {string} bssid
-        * The BSSID if the network.
-        *
-        * @property {string} mode
-        * The operation mode of the network (`Master`, `Ad-Hoc`, `Mesh Point`).
-        *
-        * @property {number} channel
-        * The wireless channel of the network.
-        *
-        * @property {number} signal
-        * The received signal strength of the network in dBm.
-        *
-        * @property {number} quality
-        * The numeric quality level of the signal, can be used in conjunction
-        * with `quality_max` to calculate a quality percentage.
-        *
-        * @property {number} quality_max
-        * The maximum possible quality level of the signal, can be used in
-        * conjunction with `quality` to calculate a quality percentage.
-        *
-        * @property {LuCI.Network.WifiEncryption} encryption
-        * The encryption used by the wireless network.
-        */
-
-       /**
-        * Trigger a wireless scan on this radio device and obtain a list of
-        * nearby networks.
-        *
-        * @returns {Promise&lt;Array&lt;LuCI.Network.WifiScanResult>>}
-        * Returns a promise resolving to an array of scan result objects
-        * describing the networks found in the vincinity.
-        */
-       getScanList: function() {
-               return callIwinfoScan(this.sid);
-       },
-
-       /**
-        * Check whether the wireless radio is marked as up in the `ubus`
-        * runtime state.
-        *
-        * @returns {boolean}
-        * Returns `true` when the radio device is up, else `false`.
-        */
-       isUp: function() {
-               if (L.isObject(_state.radios[this.sid]))
-                       return (_state.radios[this.sid].up == true);
-
-               return false;
-       },
-
-       /**
-        * Get the wifi network of the given name belonging to this radio device
-        *
-        * @param {string} network
-        * The name of the wireless network to lookup. This may be either an uci
-        * configuration section ID, a network ID in the form `radio#.network#`
-        * or a Linux network device name like `wlan0` which is resolved to the
-        * corresponding configuration section through `ubus` runtime information.
-        *
-        * @returns {Promise&lt;LuCI.Network.WifiNetwork>}
-        * Returns a promise resolving to a `Network.WifiNetwork` instance
-        * representing the wireless network and rejecting with `null` if
-        * the given network could not be found or is not associated with
-        * this radio device.
-        */
-       getWifiNetwork: function(network) {
-               return L.network.getWifiNetwork(network).then(L.bind(function(networkInstance) {
-                       var uciWifiIface = (networkInstance.sid ? uci.get('wireless', networkInstance.sid) : null);
-
-                       if (uciWifiIface == null || uciWifiIface['.type'] != 'wifi-iface' || uciWifiIface.device != this.sid)
-                               return Promise.reject();
-
-                       return networkInstance;
-               }, this));
-       },
-
-       /**
-        * Get all wireless networks associated with this wireless radio device.
-        *
-        * @returns {Promise&lt;Array&lt;LuCI.Network.WifiNetwork>>}
-        * Returns a promise resolving to an array of `Network.WifiNetwork`
-        * instances respresenting the wireless networks associated with this
-        * radio device.
-        */
-       getWifiNetworks: function() {
-               var uciWifiIfaces = uci.sections('wireless', 'wifi-iface'),
-                   tasks = [];
-
-               for (var i = 0; i &lt; uciWifiIfaces.length; i++)
-                       if (uciWifiIfaces[i].device == this.sid)
-                               tasks.push(L.network.getWifiNetwork(uciWifiIfaces[i]['.name']));
-
-               return Promise.all(tasks);
-       },
-
-       /**
-        * Adds a new wireless network associated with this radio device to the
-        * configuration and sets its options to the provided values.
-        *
-        * @param {Object&lt;string, string|string[]>} [options]
-        * The options to set for the newly added wireless network.
-        *
-        * @returns {Promise&lt;null|LuCI.Network.WifiNetwork>}
-        * Returns a promise resolving to a `WifiNetwork` instance describing
-        * the newly added wireless network or `null` if the given options
-        * were invalid.
-        */
-       addWifiNetwork: function(options) {
-               if (!L.isObject(options))
-                       options = {};
-
-               options.device = this.sid;
-
-               return L.network.addWifiNetwork(options);
-       },
-
-       /**
-        * Deletes the wireless network with the given name associated with this
-        * radio device.
-        *
-        * @param {string} network
-        * The name of the wireless network to lookup. This may be either an uci
-        * configuration section ID, a network ID in the form `radio#.network#`
-        * or a Linux network device name like `wlan0` which is resolved to the
-        * corresponding configuration section through `ubus` runtime information.
-        *
-        * @returns {Promise&lt;boolean>}
-        * Returns a promise resolving to `true` when the wireless network was
-        * successfully deleted from the configuration or `false` when the given
-        * network could not be found or if the found network was not associated
-        * with this wireless radio device.
-        */
-       deleteWifiNetwork: function(network) {
-               var sid = null;
-
-               if (network instanceof WifiNetwork) {
-                       sid = network.sid;
-               }
-               else {
-                       var uciWifiIface = uci.get('wireless', network);
-
-                       if (uciWifiIface == null || uciWifiIface['.type'] != 'wifi-iface')
-                               sid = getWifiSidByIfname(network);
-               }
-
-               if (sid == null || uci.get('wireless', sid, 'device') != this.sid)
-                       return Promise.resolve(false);
-
-               uci.delete('wireless', network);
-
-               return Promise.resolve(true);
-       }
-});
-
-/**
- * @class
- * @memberof LuCI.Network
- * @hideconstructor
- * @classdesc
- *
- * A `Network.WifiNetwork` instance represents a wireless network (vif)
- * configured on top of a radio device and provides functions for querying
- * the runtime state of the network. Most radio devices support multiple
- * such networks in parallel.
- */
-WifiNetwork = L.Class.extend(/** @lends LuCI.Network.WifiNetwork.prototype */ {
-       __init__: function(sid, radioname, radiostate, netid, netstate) {
-               this.sid    = sid;
-               this.netid  = netid;
-               this._ubusdata = {
-                       radio: radioname,
-                       dev:   radiostate,
-                       net:   netstate
-               };
-       },
-
-       ubus: function(/* ... */) {
-               var v = this._ubusdata;
-
-               for (var i = 0; i &lt; arguments.length; i++)
-                       if (L.isObject(v))
-                               v = v[arguments[i]];
-                       else
-                               return null;
-
-               return v;
-       },
-
-       /**
-        * Read the given UCI option value of this wireless network.
-        *
-        * @param {string} opt
-        * The UCI option name to read.
-        *
-        * @returns {null|string|string[]}
-        * Returns the UCI option value or `null` if the requested option is
-        * not found.
-        */
-       get: function(opt) {
-               return uci.get('wireless', this.sid, opt);
-       },
-
-       /**
-        * Set the given UCI option of this network to the given value.
-        *
-        * @param {string} opt
-        * The name of the UCI option to set.
-        *
-        * @param {null|string|string[]} val
-        * The value to set or `null` to remove the given option from the
-        * configuration.
-        */
-       set: function(opt, value) {
-               return uci.set('wireless', this.sid, opt, value);
-       },
-
-       /**
-        * Checks whether this wireless network is disabled.
-        *
-        * @returns {boolean}
-        * Returns `true` when the wireless radio is marked as disabled in `ubus`
-        * runtime state or when the `disabled` option is set in the corresponding
-        * UCI configuration.
-        */
-       isDisabled: function() {
-               return this.ubus('dev', 'disabled') || this.get('disabled') == '1';
-       },
-
-       /**
-        * Get the configured operation mode of the wireless network.
-        *
-        * @returns {string}
-        * Returns the configured operation mode. Possible values are:
-        *  - `ap` - Master (Access Point) mode
-        *  - `sta` - Station (client) mode
-        *  - `adhoc` - Ad-Hoc (IBSS) mode
-        *  - `mesh` - Mesh (IEEE 802.11s) mode
-        *  - `monitor` - Monitor mode
-        */
-       getMode: function() {
-               return this.ubus('net', 'config', 'mode') || this.get('mode') || 'ap';
-       },
-
-       /**
-        * Get the configured SSID of the wireless network.
-        *
-        * @returns {null|string}
-        * Returns the configured SSID value or `null` when this network is
-        * in mesh mode.
-        */
-       getSSID: function() {
-               if (this.getMode() == 'mesh')
-                       return null;
-
-               return this.ubus('net', 'config', 'ssid') || this.get('ssid');
-       },
-
-       /**
-        * Get the configured Mesh ID of the wireless network.
-        *
-        * @returns {null|string}
-        * Returns the configured mesh ID value or `null` when this network
-        * is not in mesh mode.
-        */
-       getMeshID: function() {
-               if (this.getMode() != 'mesh')
-                       return null;
-
-               return this.ubus('net', 'config', 'mesh_id') || this.get('mesh_id');
-       },
-
-       /**
-        * Get the configured BSSID of the wireless network.
-        *
-        * @returns {null|string}
-        * Returns the BSSID value or `null` if none has been specified.
-        */
-       getBSSID: function() {
-               return this.ubus('net', 'config', 'bssid') || this.get('bssid');
-       },
-
-       /**
-        * Get the names of the logical interfaces this wireless network is
-        * attached to.
-        *
-        * @returns {string[]}
-        * Returns an array of logical interface names.
-        */
-       getNetworkNames: function() {
-               return L.toArray(this.ubus('net', 'config', 'network') || this.get('network'));
-       },
-
-       /**
-        * Get the internal network ID of this wireless network.
-        *
-        * The network ID is a LuCI specific identifer in the form
-        * `radio#.network#` to identify wireless networks by their corresponding
-        * radio and network index numbers.
-        *
-        * @returns {string}
-        * Returns the LuCI specific network ID.
-        */
-       getID: function() {
-               return this.netid;
-       },
-
-       /**
-        * Get the configuration ID of this wireless network.
-        *
-        * @returns {string}
-        * Returns the corresponding UCI section ID of the network.
-        */
-       getName: function() {
-               return this.sid;
-       },
-
-       /**
-        * Get the Linux network device name.
-        *
-        * @returns {null|string}
-        * Returns the current Linux network device name as resolved from
-        * `ubus` runtime information or `null` if this network has no
-        * associated network device, e.g. when not configured or up.
-        */
-       getIfname: function() {
-               var ifname = this.ubus('net', 'ifname') || this.ubus('net', 'iwinfo', 'ifname');
-
-               if (ifname == null || ifname.match(/^(wifi|radio)\d/))
-                       ifname = this.netid;
-
-               return ifname;
-       },
-
-       /**
-        * Get the name of the corresponding wifi radio device.
-        *
-        * @returns {null|string}
-        * Returns the name of the radio device this network is configured on
-        * or `null` if it cannot be determined.
-        */
-       getWifiDeviceName: function() {
-               return this.ubus('radio') || this.get('device');
-       },
-
-       /**
-        * Get the corresponding wifi radio device.
-        *
-        * @returns {null|LuCI.Network.WifiDevice}
-        * Returns a `Network.WifiDevice` instance representing the corresponding
-        * wifi radio device or `null` if the related radio device could not be
-        * found.
-        */
-       getWifiDevice: function() {
-               var radioname = this.getWifiDeviceName();
-
-               if (radioname == null)
-                       return Promise.reject();
-
-               return L.network.getWifiDevice(radioname);
-       },
-
-       /**
-        * Check whether the radio network is up.
-        *
-        * This function actually queries the up state of the related radio
-        * device and assumes this network to be up as well when the parent
-        * radio is up. This is due to the fact that OpenWrt does not control
-        * virtual interfaces individually but within one common hostapd
-        * instance.
-        *
-        * @returns {boolean}
-        * Returns `true` when the network is up, else `false`.
-        */
-       isUp: function() {
-               var device = this.getDevice();
-
-               if (device == null)
-                       return false;
-
-               return device.isUp();
-       },
-
-       /**
-        * Query the current operation mode from runtime information.
-        *
-        * @returns {string}
-        * Returns the human readable mode name as reported by `ubus` runtime
-        * state. Possible returned values are:
-        *  - `Master`
-        *  - `Ad-Hoc`
-        *  - `Client`
-        *  - `Monitor`
-        *  - `Master (VLAN)`
-        *  - `WDS`
-        *  - `Mesh Point`
-        *  - `P2P Client`
-        *  - `P2P Go`
-        *  - `Unknown`
-        */
-       getActiveMode: function() {
-               var mode = this.ubus('net', 'iwinfo', 'mode') || this.ubus('net', 'config', 'mode') || this.get('mode') || 'ap';
-
-               switch (mode) {
-               case 'ap':      return 'Master';
-               case 'sta':     return 'Client';
-               case 'adhoc':   return 'Ad-Hoc';
-               case 'mesh':    return 'Mesh';
-               case 'monitor': return 'Monitor';
-               default:        return mode;
-               }
-       },
-
-       /**
-        * Query the current operation mode from runtime information as
-        * translated string.
-        *
-        * @returns {string}
-        * Returns the translated, human readable mode name as reported by
-        *`ubus` runtime state.
-        */
-       getActiveModeI18n: function() {
-               var mode = this.getActiveMode();
-
-               switch (mode) {
-               case 'Master':  return _('Master');
-               case 'Client':  return _('Client');
-               case 'Ad-Hoc':  return _('Ad-Hoc');
-               case 'Mash':    return _('Mesh');
-               case 'Monitor': return _('Monitor');
-               default:        return mode;
-               }
-       },
-
-       /**
-        * Query the current SSID from runtime information.
-        *
-        * @returns {string}
-        * Returns the current SSID or Mesh ID as reported by `ubus` runtime
-        * information.
-        */
-       getActiveSSID: function() {
-               return this.ubus('net', 'iwinfo', 'ssid') || this.ubus('net', 'config', 'ssid') || this.get('ssid');
-       },
-
-       /**
-        * Query the current BSSID from runtime information.
-        *
-        * @returns {string}
-        * Returns the current BSSID or Mesh ID as reported by `ubus` runtime
-        * information.
-        */
-       getActiveBSSID: function() {
-               return this.ubus('net', 'iwinfo', 'bssid') || this.ubus('net', 'config', 'bssid') || this.get('bssid');
-       },
-
-       /**
-        * Query the current encryption settings from runtime information.
-        *
-        * @returns {string}
-        * Returns a string describing the current encryption or `-` if the the
-        * encryption state could not be found in `ubus` runtime information.
-        */
-       getActiveEncryption: function() {
-               return formatWifiEncryption(this.ubus('net', 'iwinfo', 'encryption')) || '-';
-       },
-
-       /**
-        * A wireless peer entry describes the properties of a remote wireless
-        * peer associated with a local network.
-        *
-        * @typedef {Object&lt;string, boolean|number|string|LuCI.Network.WifiRateEntry>} WifiPeerEntry
-        * @memberof LuCI.Network
-        *
-        * @property {string} mac
-        * The MAC address (BSSID).
-        *
-        * @property {number} signal
-        * The received signal strength.
-        *
-        * @property {number} [signal_avg]
-        * The average signal strength if supported by the driver.
-        *
-        * @property {number} [noise]
-        * The current noise floor of the radio. May be `0` or absent if not
-        * supported by the driver.
-        *
-        * @property {number} inactive
-        * The amount of milliseconds the peer has been inactive, e.g. due
-        * to powersave.
-        *
-        * @property {number} connected_time
-        * The amount of milliseconds the peer is associated to this network.
-        *
-        * @property {number} [thr]
-        * The estimated throughput of the peer, May be `0` or absent if not
-        * supported by the driver.
-        *
-        * @property {boolean} authorized
-        * Specifies whether the peer is authorized to associate to this network.
-        *
-        * @property {boolean} authenticated
-        * Specifies whether the peer completed authentication to this network.
-        *
-        * @property {string} preamble
-        * The preamble mode used by the peer. May be `long` or `short`.
-        *
-        * @property {boolean} wme
-        * Specifies whether the peer supports WME/WMM capabilities.
-        *
-        * @property {boolean} mfp
-        * Specifies whether management frame protection is active.
-        *
-        * @property {boolean} tdls
-        * Specifies whether TDLS is active.
-        *
-        * @property {number} [mesh llid]
-        * The mesh LLID, may be `0` or absent if not applicable or supported
-        * by the driver.
-        *
-        * @property {number} [mesh plid]
-        * The mesh PLID, may be `0` or absent if not applicable or supported
-        * by the driver.
-        *
-        * @property {string} [mesh plink]
-        * The mesh peer link state description, may be an empty string (`''`)
-        * or absent if not applicable or supported by the driver.
-        *
-        * The following states are known:
-        *  - `LISTEN`
-        *  - `OPN_SNT`
-        *  - `OPN_RCVD`
-        *  - `CNF_RCVD`
-        *  - `ESTAB`
-        *  - `HOLDING`
-        *  - `BLOCKED`
-        *  - `UNKNOWN`
-        *
-        * @property {number} [mesh local PS]
-        * The local powersafe mode for the peer link, may be an empty
-        * string (`''`) or absent if not applicable or supported by
-        * the driver.
-        *
-        * The following modes are known:
-        *  - `ACTIVE` (no power save)
-        *  - `LIGHT SLEEP`
-        *  - `DEEP SLEEP`
-        *  - `UNKNOWN`
-        *
-        * @property {number} [mesh peer PS]
-        * The remote powersafe mode for the peer link, may be an empty
-        * string (`''`) or absent if not applicable or supported by
-        * the driver.
-        *
-        * The following modes are known:
-        *  - `ACTIVE` (no power save)
-        *  - `LIGHT SLEEP`
-        *  - `DEEP SLEEP`
-        *  - `UNKNOWN`
-        *
-        * @property {number} [mesh non-peer PS]
-        * The powersafe mode for all non-peer neigbours, may be an empty
-        * string (`''`) or absent if not applicable or supported by the driver.
-        *
-        * The following modes are known:
-        *  - `ACTIVE` (no power save)
-        *  - `LIGHT SLEEP`
-        *  - `DEEP SLEEP`
-        *  - `UNKNOWN`
-        *
-        * @property {LuCI.Network.WifiRateEntry} rx
-        * Describes the receiving wireless rate from the peer.
-        *
-        * @property {LuCI.Network.WifiRateEntry} tx
-        * Describes the transmitting wireless rate to the peer.
-        */
-
-       /**
-        * A wireless rate entry describes the properties of a wireless
-        * transmission rate to or from a peer.
-        *
-        * @typedef {Object&lt;string, boolean|number>} WifiRateEntry
-        * @memberof LuCI.Network
-        *
-        * @property {number} [drop_misc]
-        * The amount of received misc. packages that have been dropped, e.g.
-        * due to corruption or missing authentication. Only applicable to
-        * receiving rates.
-        *
-        * @property {number} packets
-        * The amount of packets that have been received or sent.
-        *
-        * @property {number} bytes
-        * The amount of bytes that have been received or sent.
-        *
-        * @property {number} [failed]
-        * The amount of failed tranmission attempts. Only applicable to
-        * transmit rates.
-        *
-        * @property {number} [retries]
-        * The amount of retried transmissions. Only applicable to transmit
-        * rates.
-        *
-        * @property {boolean} is_ht
-        * Specifies whether this rate is an HT (IEEE 802.11n) rate.
-        *
-        * @property {boolean} is_vht
-        * Specifies whether this rate is an VHT (IEEE 802.11ac) rate.
-        *
-        * @property {number} mhz
-        * The channel width in MHz used for the transmission.
-        *
-        * @property {number} rate
-        * The bitrate in bit/s of the transmission.
-        *
-        * @property {number} [mcs]
-        * The MCS index of the used transmission rate. Only applicable to
-        * HT or VHT rates.
-        *
-        * @property {number} [40mhz]
-        * Specifies whether the tranmission rate used 40MHz wide channel.
-        * Only applicable to HT or VHT rates.
-        *
-        * Note: this option exists for backwards compatibility only and its
-        * use is discouraged. The `mhz` field should be used instead to
-        * determine the channel width.
-        *
-        * @property {boolean} [short_gi]
-        * Specifies whether a short guard interval is used for the transmission.
-        * Only applicable to HT or VHT rates.
-        *
-        * @property {number} [nss]
-        * Specifies the number of spatial streams used by the transmission.
-        * Only applicable to VHT rates.
-        */
-
-       /**
-        * Fetch the list of associated peers.
-        *
-        * @returns {Promise&lt;Array&lt;LuCI.Network.WifiPeerEntry>>}
-        * Returns a promise resolving to an array of wireless peers associated
-        * with this network.
-        */
-       getAssocList: function() {
-               return callIwinfoAssoclist(this.getIfname());
-       },
-
-       /**
-        * Query the current operating frequency of the wireless network.
-        *
-        * @returns {null|string}
-        * Returns the current operating frequency of the network from `ubus`
-        * runtime information in GHz or `null` if the information is not
-        * available.
-        */
-       getFrequency: function() {
-               var freq = this.ubus('net', 'iwinfo', 'frequency');
-
-               if (freq != null &amp;&amp; freq > 0)
-                       return '%.03f'.format(freq / 1000);
-
-               return null;
-       },
-
-       /**
-        * Query the current average bitrate of all peers associated to this
-        * wireless network.
-        *
-        * @returns {null|number}
-        * Returns the average bit rate among all peers associated to the network
-        * as reported by `ubus` runtime information or `null` if the information
-        * is not available.
-        */
-       getBitRate: function() {
-               var rate = this.ubus('net', 'iwinfo', 'bitrate');
-
-               if (rate != null &amp;&amp; rate > 0)
-                       return (rate / 1000);
-
-               return null;
-       },
-
-       /**
-        * Query the current wireless channel.
-        *
-        * @returns {null|number}
-        * Returns the wireless channel as reported by `ubus` runtime information
-        * or `null` if it cannot be determined.
-        */
-       getChannel: function() {
-               return this.ubus('net', 'iwinfo', 'channel') || this.ubus('dev', 'config', 'channel') || this.get('channel');
-       },
-
-       /**
-        * Query the current wireless signal.
-        *
-        * @returns {null|number}
-        * Returns the wireless signal in dBm as reported by `ubus` runtime
-        * information or `null` if it cannot be determined.
-        */
-       getSignal: function() {
-               return this.ubus('net', 'iwinfo', 'signal') || 0;
-       },
-
-       /**
-        * Query the current radio noise floor.
-        *
-        * @returns {number}
-        * Returns the radio noise floor in dBm as reported by `ubus` runtime
-        * information or `0` if it cannot be determined.
-        */
-       getNoise: function() {
-               return this.ubus('net', 'iwinfo', 'noise') || 0;
-       },
-
-       /**
-        * Query the current country code.
-        *
-        * @returns {string}
-        * Returns the wireless country code as reported by `ubus` runtime
-        * information or `00` if it cannot be determined.
-        */
-       getCountryCode: function() {
-               return this.ubus('net', 'iwinfo', 'country') || this.ubus('dev', 'config', 'country') || '00';
-       },
-
-       /**
-        * Query the current radio TX power.
-        *
-        * @returns {null|number}
-        * Returns the wireless network transmit power in dBm as reported by
-        * `ubus` runtime information or `null` if it cannot be determined.
-        */
-       getTXPower: function() {
-               return this.ubus('net', 'iwinfo', 'txpower');
-       },
-
-       /**
-        * Query the radio TX power offset.
-        *
-        * Some wireless radios have a fixed power offset, e.g. due to the
-        * use of external amplifiers.
-        *
-        * @returns {number}
-        * Returns the wireless network transmit power offset in dBm as reported
-        * by `ubus` runtime information or `0` if there is no offset, or if it
-        * cannot be determined.
-        */
-       getTXPowerOffset: function() {
-               return this.ubus('net', 'iwinfo', 'txpower_offset') || 0;
-       },
-
-       /**
-        * Calculate the current signal.
-        *
-        * @deprecated
-        * @returns {number}
-        * Returns the calculated signal level, which is the difference between
-        * noise and signal (SNR), divided by 5.
-        */
-       getSignalLevel: function(signal, noise) {
-               if (this.getActiveBSSID() == '00:00:00:00:00:00')
-                       return -1;
-
-               signal = signal || this.getSignal();
-               noise  = noise  || this.getNoise();
-
-               if (signal &lt; 0 &amp;&amp; noise &lt; 0) {
-                       var snr = -1 * (noise - signal);
-                       return Math.floor(snr / 5);
-               }
-
-               return 0;
-       },
-
-       /**
-        * Calculate the current signal quality percentage.
-        *
-        * @returns {number}
-        * Returns the calculated signal quality in percent. The value is
-        * calculated from the `quality` and `quality_max` indicators reported
-        * by `ubus` runtime state.
-        */
-       getSignalPercent: function() {
-               var qc = this.ubus('net', 'iwinfo', 'quality') || 0,
-                   qm = this.ubus('net', 'iwinfo', 'quality_max') || 0;
-
-               if (qc > 0 &amp;&amp; qm > 0)
-                       return Math.floor((100 / qm) * qc);
-
-               return 0;
-       },
-
-       /**
-        * Get a short description string for this wireless network.
-        *
-        * @returns {string}
-        * Returns a string describing this network, consisting of the
-        * active operation mode, followed by either the SSID, BSSID or
-        * internal network ID, depending on which information is available.
-        */
-       getShortName: function() {
-               return '%s "%s"'.format(
-                       this.getActiveModeI18n(),
-                       this.getActiveSSID() || this.getActiveBSSID() || this.getID());
-       },
-
-       /**
-        * Get a description string for this wireless network.
-        *
-        * @returns {string}
-        * Returns a string describing this network, consisting of the
-        * term `Wireless Network`, followed by the active operation mode,
-        * the SSID, BSSID or internal network ID and the Linux network device
-        * name, depending on which information is available.
-        */
-       getI18n: function() {
-               return '%s: %s "%s" (%s)'.format(
-                       _('Wireless Network'),
-                       this.getActiveModeI18n(),
-                       this.getActiveSSID() || this.getActiveBSSID() || this.getID(),
-                       this.getIfname());
-       },
-
-       /**
-        * Get the primary logical interface this wireless network is attached to.
-        *
-        * @returns {null|LuCI.Network.Protocol}
-        * Returns a `Network.Protocol` instance representing the logical
-        * interface or `null` if this network is not attached to any logical
-        * interface.
-        */
-       getNetwork: function() {
-               return this.getNetworks()[0];
-       },
-
-       /**
-        * Get the logical interfaces this wireless network is attached to.
-        *
-        * @returns {Array&lt;LuCI.Network.Protocol>}
-        * Returns an array of `Network.Protocol` instances representing the
-        * logical interfaces this wireless network is attached to.
-        */
-       getNetworks: function() {
-               var networkNames = this.getNetworkNames(),
-                   networks = [];
-
-               for (var i = 0; i &lt; networkNames.length; i++) {
-                       var uciInterface = uci.get('network', networkNames[i]);
-
-                       if (uciInterface == null || uciInterface['.type'] != 'interface')
-                               continue;
-
-                       networks.push(L.network.instantiateNetwork(networkNames[i]));
-               }
-
-               networks.sort(networkSort);
-
-               return networks;
-       },
-
-       /**
-        * Get the associated Linux network device.
-        *
-        * @returns {LuCI.Network.Device}
-        * Returns a `Network.Device` instance representing the Linux network
-        * device associted with this wireless network.
-        */
-       getDevice: function() {
-               return L.network.instantiateDevice(this.getIfname());
-       }
-});
-
-return Network;
-</code></pre>
-        </article>
-    </section>
-
-
-
-
-</div>
-
-<nav>
-    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="LuCI.html">LuCI</a></li><li><a href="LuCI.Class.html">Class</a></li><li><a href="LuCI.dom.html">dom</a></li><li><a href="LuCI.fs.html">fs</a></li><li><a href="LuCI.Headers.html">Headers</a></li><li><a href="LuCI.Network.html">Network</a></li><li><a href="LuCI.Network.Device.html">Device</a></li><li><a href="LuCI.Network.Hosts.html">Hosts</a></li><li><a href="LuCI.Network.Protocol.html">Protocol</a></li><li><a href="LuCI.Network.WifiDevice.html">WifiDevice</a></li><li><a href="LuCI.Network.WifiNetwork.html">WifiNetwork</a></li><li><a href="LuCI.Poll.html">Poll</a></li><li><a href="LuCI.Request.html">Request</a></li><li><a href="LuCI.Request.poll.html">poll</a></li><li><a href="LuCI.Response.html">Response</a></li><li><a href="LuCI.rpc.html">rpc</a></li><li><a href="LuCI.uci.html">uci</a></li><li><a href="LuCI.view.html">view</a></li><li><a href="LuCI.XHR.html">XHR</a></li></ul>
-</nav>
-
-<br class="clear">
-
-<footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 09:33:05 GMT+0100 (Central European Standard Time)
-</footer>
-
-<script> prettyPrint(); </script>
-<script src="scripts/linenumber.js"> </script>
-</body>
-</html>
diff --git a/documentation/jsapi/rpc.js.html b/documentation/jsapi/rpc.js.html
deleted file mode 100644 (file)
index ca068f3..0000000
+++ /dev/null
@@ -1,528 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="utf-8">
-    <title>JSDoc: Source: rpc.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: rpc.js</h1>
-
-    
-
-
-
-    
-    <section>
-        <article>
-            <pre class="prettyprint source linenums"><code>'use strict';
-
-var rpcRequestID = 1,
-    rpcSessionID = L.env.sessionid || '00000000000000000000000000000000',
-    rpcBaseURL = L.url('admin/ubus'),
-    rpcInterceptorFns = [];
-
-/**
- * @class rpc
- * @memberof LuCI
- * @hideconstructor
- * @classdesc
- *
- * The `LuCI.rpc` class provides high level ubus JSON-RPC abstractions
- * and means for listing and invoking remove RPC methods.
- */
-return L.Class.extend(/** @lends LuCI.rpc.prototype */ {
-       /* privates */
-       call: function(req, cb, nobatch) {
-               var q = '';
-
-               if (Array.isArray(req)) {
-                       if (req.length == 0)
-                               return Promise.resolve([]);
-
-                       for (var i = 0; i &lt; req.length; i++)
-                               if (req[i].params)
-                                       q += '%s%s.%s'.format(
-                                               q ? ';' : '/',
-                                               req[i].params[1],
-                                               req[i].params[2]
-                                       );
-               }
-               else if (req.params) {
-                       q += '/%s.%s'.format(req.params[1], req.params[2]);
-               }
-
-               return L.Request.post(rpcBaseURL + q, req, {
-                       timeout: (L.env.rpctimeout || 20) * 1000,
-                       nobatch: nobatch,
-                       credentials: true
-               }).then(cb, cb);
-       },
-
-       parseCallReply: function(req, res) {
-               var msg = null;
-
-               if (res instanceof Error)
-                       return req.reject(res);
-
-               try {
-                       if (!res.ok)
-                               L.raise('RPCError', 'RPC call to %s/%s failed with HTTP error %d: %s',
-                                       req.object, req.method, res.status, res.statusText || '?');
-
-                       msg = res.json();
-               }
-               catch (e) {
-                       return req.reject(e);
-               }
-
-               /*
-                * The interceptor args are intentionally swapped.
-                * Response is passed as first arg to align with Request class interceptors
-                */
-               Promise.all(rpcInterceptorFns.map(function(fn) { return fn(msg, req) }))
-                       .then(this.handleCallReply.bind(this, req, msg))
-                       .catch(req.reject);
-       },
-
-       handleCallReply: function(req, msg) {
-               var type = Object.prototype.toString,
-                   ret = null;
-
-               try {
-                       /* verify message frame */
-                       if (!L.isObject(msg) || msg.jsonrpc != '2.0')
-                               L.raise('RPCError', 'RPC call to %s/%s returned invalid message frame',
-                                       req.object, req.method);
-
-                       /* check error condition */
-                       if (L.isObject(msg.error) &amp;&amp; msg.error.code &amp;&amp; msg.error.message)
-                               L.raise('RPCError', 'RPC call to %s/%s failed with error %d: %s',
-                                       req.object, req.method, msg.error.code, msg.error.message || '?');
-               }
-               catch (e) {
-                       return req.reject(e);
-               }
-
-               if (!req.object &amp;&amp; !req.method) {
-                       ret = msg.result;
-               }
-               else if (Array.isArray(msg.result)) {
-                       ret = (msg.result.length > 1) ? msg.result[1] : msg.result[0];
-               }
-
-               if (req.expect) {
-                       for (var key in req.expect) {
-                               if (ret != null &amp;&amp; key != '')
-                                       ret = ret[key];
-
-                               if (ret == null || type.call(ret) != type.call(req.expect[key]))
-                                       ret = req.expect[key];
-
-                               break;
-                       }
-               }
-
-               /* apply filter */
-               if (typeof(req.filter) == 'function') {
-                       req.priv[0] = ret;
-                       req.priv[1] = req.params;
-                       ret = req.filter.apply(this, req.priv);
-               }
-
-               req.resolve(ret);
-       },
-
-       /**
-        * Lists available remote ubus objects or the method signatures of
-        * specific objects.
-        *
-        * This function has two signatures and is sensitive to the number of
-        * arguments passed to it:
-        *  - `list()` -
-        *    Returns an array containing the names of all remote `ubus` objects
-        *  - `list("objname", ...)`
-        *    Returns method signatures for each given `ubus` object name.
-        *
-        * @param {...string} [objectNames]
-        * If any object names are given, this function will return the method
-        * signatures of each given object.
-        *
-        * @returns {Promise&lt;Array&lt;string>|Object&lt;string, Object&lt;string, Object&lt;string, string>>>>}
-        * When invoked without arguments, this function will return a promise
-        * resolving to an array of `ubus` object names. When invoked with one or
-        * more arguments, a promise resolving to an object describing the method
-        * signatures of each requested `ubus` object name will be returned.
-        */
-       list: function() {
-               var msg = {
-                       jsonrpc: '2.0',
-                       id:      rpcRequestID++,
-                       method:  'list',
-                       params:  arguments.length ? this.varargs(arguments) : undefined
-               };
-
-               return new Promise(L.bind(function(resolveFn, rejectFn) {
-                       /* store request info */
-                       var req = {
-                               resolve: resolveFn,
-                               reject:  rejectFn
-                       };
-
-                       /* call rpc */
-                       this.call(msg, this.parseCallReply.bind(this, req));
-               }, this));
-       },
-
-       /**
-        * @typedef {Object} DeclareOptions
-        * @memberof LuCI.rpc
-        *
-        * @property {string} object
-        * The name of the remote `ubus` object to invoke.
-        *
-        * @property {string} method
-        * The name of the remote `ubus` method to invoke.
-        *
-        * @property {string[]} [params]
-        * Lists the named parameters expected by the remote `ubus` RPC method.
-        * The arguments passed to the resulting generated method call function
-        * will be mapped to named parameters in the order they appear in this
-        * array.
-        *
-        * Extraneous parameters passed to the generated function will not be
-        * sent to the remote procedure but are passed to the
-        * {@link LuCI.rpc~filterFn filter function} if one is specified.
-        *
-        * Examples:
-        *  - `params: [ "foo", "bar" ]` -
-        *    When the resulting call function is invoked with `fn(true, false)`,
-        *    the corresponding args object sent to the remote procedure will be
-        *    `{ foo: true, bar: false }`.
-        *  - `params: [ "test" ], filter: function(reply, args, extra) { ... }` -
-        *    When the resultung generated function is invoked with
-        *    `fn("foo", "bar", "baz")` then `{ "test": "foo" }` will be sent as
-        *    argument to the remote procedure and the filter function will be
-        *    invoked with `filterFn(reply, [ "foo" ], "bar", "baz")`
-        *
-        * @property {Object&lt;string,*>} [expect]
-        * Describes the expected return data structure. The given object is
-        * supposed to contain a single key selecting the value to use from
-        * the returned `ubus` reply object. The value of the sole key within
-        * the `expect` object is used to infer the expected type of the received
-        * `ubus` reply data.
-        *
-        * If the received data does not contain `expect`'s key, or if the
-        * type of the data differs from the type of the value in the expect
-        * object, the expect object's value is returned as default instead.
-        *
-        * The key in the `expect` object may be an empty string (`''`) in which
-        * case the entire reply object is selected instead of one of its subkeys.
-        *
-        * If the `expect` option is omitted, the received reply will be returned
-        * as-is, regardless of its format or type.
-        *
-        * Examples:
-        *  - `expect: { '': { error: 'Invalid response' } }` -
-        *    This requires the entire `ubus` reply to be a plain JavaScript
-        *    object. If the reply isn't an object but e.g. an array or a numeric
-        *    error code instead, it will get replaced with
-        *    `{ error: 'Invalid response' }` instead.
-        *  - `expect: { results: [] }` -
-        *    This requires the received `ubus` reply to be an object containing
-        *    a key `results` with an array as value. If the received reply does
-        *    not contain such a key, or if `reply.results` points to a non-array
-        *    value, the empty array (`[]`) will be used instead.
-        *  - `expect: { success: false }` -
-        *    This requires the received `ubus` reply to be an object containing
-        *    a key `success` with a boolean value. If the reply does not contain
-        *    `success` or if `reply.success` is not a boolean value, `false` will
-        *    be returned as default instead.
-        *
-        * @property {LuCI.rpc~filterFn} [filter]
-        * Specfies an optional filter function which is invoked to transform the
-        * received reply data before it is returned to the caller.
-        *
-        */
-
-       /**
-        * The filter function is invoked to transform a received `ubus` RPC call
-        * reply before returning it to the caller.
-        *
-        * @callback LuCI.rpc~filterFn
-        *
-        * @param {*} data
-        * The received `ubus` reply data or a subset of it as described in the
-        * `expect` option of the RPC call declaration. In case of remote call
-        * errors, `data` is numeric `ubus` error code instead.
-        *
-        * @param {Array&lt;*>} args
-        * The arguments the RPC method has been invoked with.
-        *
-        * @param {...*} extraArgs
-        * All extraneous arguments passed to the RPC method exceeding the number
-        * of arguments describes in the RPC call declaration.
-        *
-        * @return {*}
-        * The return value of the filter function will be returned to the caller
-        * of the RPC method as-is.
-        */
-
-       /**
-        * The generated invocation function is returned by
-        * {@link LuCI.rpc#declare rpc.declare()} and encapsulates a single
-        * RPC method call.
-        *
-        * Calling this function will execute a remote `ubus` HTTP call request
-        * using the arguments passed to it as arguments and return a promise
-        * resolving to the received reply values.
-        *
-        * @callback LuCI.rpc~invokeFn
-        *
-        * @param {...*} params
-        * The parameters to pass to the remote procedure call. The given
-        * positional arguments will be named to named RPC parameters according
-        * to the names specified in the `params` array of the method declaration.
-        *
-        * Any additional parameters exceeding the amount of arguments in the
-        * `params` declaration are passed as private extra arguments to the
-        * declared filter function.
-        *
-        * @return {Promise&lt;*>}
-        * Returns a promise resolving to the result data of the remote `ubus`
-        * RPC method invocation, optionally substituted and filtered according
-        * to the `expect` and `filter` declarations.
-        */
-
-       /**
-        * Describes a remote RPC call procedure and returns a function
-        * implementing it.
-        *
-        * @param {LuCI.rpc.DeclareOptions} options
-        * If any object names are given, this function will return the method
-        * signatures of each given object.
-        *
-        * @returns {LuCI.rpc~invokeFn}
-        * Returns a new function implementing the method call described in
-        * `options`.
-        */
-       declare: function(options) {
-               return Function.prototype.bind.call(function(rpc, options) {
-                       var args = this.varargs(arguments, 2);
-                       return new Promise(function(resolveFn, rejectFn) {
-                               /* build parameter object */
-                               var p_off = 0;
-                               var params = { };
-                               if (Array.isArray(options.params))
-                                       for (p_off = 0; p_off &lt; options.params.length; p_off++)
-                                               params[options.params[p_off]] = args[p_off];
-
-                               /* all remaining arguments are private args */
-                               var priv = [ undefined, undefined ];
-                               for (; p_off &lt; args.length; p_off++)
-                                       priv.push(args[p_off]);
-
-                               /* store request info */
-                               var req = {
-                                       expect:  options.expect,
-                                       filter:  options.filter,
-                                       resolve: resolveFn,
-                                       reject:  rejectFn,
-                                       params:  params,
-                                       priv:    priv,
-                                       object:  options.object,
-                                       method:  options.method
-                               };
-
-                               /* build message object */
-                               var msg = {
-                                       jsonrpc: '2.0',
-                                       id:      rpcRequestID++,
-                                       method:  'call',
-                                       params:  [
-                                               rpcSessionID,
-                                               options.object,
-                                               options.method,
-                                               params
-                                       ]
-                               };
-
-                               /* call rpc */
-                               rpc.call(msg, rpc.parseCallReply.bind(rpc, req), options.nobatch);
-                       });
-               }, this, this, options);
-       },
-
-       /**
-        * Returns the current RPC session id.
-        *
-        * @returns {string}
-        * Returns the 32 byte session ID string used for authenticating remote
-        * requests.
-        */
-       getSessionID: function() {
-               return rpcSessionID;
-       },
-
-       /**
-        * Set the RPC session id to use.
-        *
-        * @param {string} sid
-        * Sets the 32 byte session ID string used for authenticating remote
-        * requests.
-        */
-       setSessionID: function(sid) {
-               rpcSessionID = sid;
-       },
-
-       /**
-        * Returns the current RPC base URL.
-        *
-        * @returns {string}
-        * Returns the RPC URL endpoint to issue requests against.
-        */
-       getBaseURL: function() {
-               return rpcBaseURL;
-       },
-
-       /**
-        * Set the RPC base URL to use.
-        *
-        * @param {string} sid
-        * Sets the RPC URL endpoint to issue requests against.
-        */
-       setBaseURL: function(url) {
-               rpcBaseURL = url;
-       },
-
-       /**
-        * Translates a numeric `ubus` error code into a human readable
-        * description.
-        *
-        * @param {number} statusCode
-        * The numeric status code.
-        *
-        * @returns {string}
-        * Returns the textual description of the code.
-        */
-       getStatusText: function(statusCode) {
-               switch (statusCode) {
-               case 0: return _('Command OK');
-               case 1: return _('Invalid command');
-               case 2: return _('Invalid argument');
-               case 3: return _('Method not found');
-               case 4: return _('Resource not found');
-               case 5: return _('No data received');
-               case 6: return _('Permission denied');
-               case 7: return _('Request timeout');
-               case 8: return _('Not supported');
-               case 9: return _('Unspecified error');
-               case 10: return _('Connection lost');
-               default: return _('Unknown error code');
-               }
-       },
-
-       /**
-        * Registered interceptor functions are invoked before the standard reply
-        * parsing and handling logic.
-        *
-        * By returning rejected promises, interceptor functions can cause the
-        * invocation function to fail, regardless of the received reply.
-        *
-        * Interceptors may also modify their message argument in-place to
-        * rewrite received replies before they're processed by the standard
-        * response handling code.
-        *
-        * A common use case for such functions is to detect failing RPC replies
-        * due to expired authentication in order to trigger a new login.
-        *
-        * @callback LuCI.rpc~interceptorFn
-        *
-        * @param {*} msg
-        * The unprocessed, JSON decoded remote RPC method call reply.
-        *
-        * Since interceptors run before the standard parsing logic, the reply
-        * data is not verified for correctness or filtered according to
-        * `expect` and `filter` specifications in the declarations.
-        *
-        * @param {Object} req
-        * The related request object which is an extended variant of the
-        * declaration object, allowing access to internals of the invocation
-        * function such as `filter`, `expect` or `params` values.
-        *
-        * @return {Promise&lt;*>|*}
-        * Interceptor functions may return a promise to defer response
-        * processing until some delayed work completed. Any values the returned
-        * promise resolves to are ignored.
-        *
-        * When the returned promise rejects with an error, the invocation
-        * function will fail too, forwarding the error to the caller.
-        */
-
-       /**
-        * Registers a new interceptor function.
-        *
-        * @param {LuCI.rpc~interceptorFn} interceptorFn
-        * The inteceptor function to register.
-        *
-        * @returns {LuCI.rpc~interceptorFn}
-        * Returns the given function value.
-        */
-       addInterceptor: function(interceptorFn) {
-               if (typeof(interceptorFn) == 'function')
-                       rpcInterceptorFns.push(interceptorFn);
-               return interceptorFn;
-       },
-
-       /**
-        * Removes a registered interceptor function.
-        *
-        * @param {LuCI.rpc~interceptorFn} interceptorFn
-        * The inteceptor function to remove.
-        *
-        * @returns {boolean}
-        * Returns `true` if the given function has been removed or `false`
-        * if it has not been found.
-        */
-       removeInterceptor: function(interceptorFn) {
-               var oldlen = rpcInterceptorFns.length, i = oldlen;
-               while (i--)
-                       if (rpcInterceptorFns[i] === interceptorFn)
-                               rpcInterceptorFns.splice(i, 1);
-               return (rpcInterceptorFns.length &lt; oldlen);
-       }
-});
-</code></pre>
-        </article>
-    </section>
-
-
-
-
-</div>
-
-<nav>
-    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="LuCI.html">LuCI</a></li><li><a href="LuCI.Class.html">Class</a></li><li><a href="LuCI.dom.html">dom</a></li><li><a href="LuCI.fs.html">fs</a></li><li><a href="LuCI.Headers.html">Headers</a></li><li><a href="LuCI.Network.html">Network</a></li><li><a href="LuCI.Network.Device.html">Device</a></li><li><a href="LuCI.Network.Hosts.html">Hosts</a></li><li><a href="LuCI.Network.Protocol.html">Protocol</a></li><li><a href="LuCI.Network.WifiDevice.html">WifiDevice</a></li><li><a href="LuCI.Network.WifiNetwork.html">WifiNetwork</a></li><li><a href="LuCI.Poll.html">Poll</a></li><li><a href="LuCI.Request.html">Request</a></li><li><a href="LuCI.Request.poll.html">poll</a></li><li><a href="LuCI.Response.html">Response</a></li><li><a href="LuCI.rpc.html">rpc</a></li><li><a href="LuCI.uci.html">uci</a></li><li><a href="LuCI.view.html">view</a></li><li><a href="LuCI.XHR.html">XHR</a></li></ul>
-</nav>
-
-<br class="clear">
-
-<footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 09:33:05 GMT+0100 (Central European Standard Time)
-</footer>
-
-<script> prettyPrint(); </script>
-<script src="scripts/linenumber.js"> </script>
-</body>
-</html>
diff --git a/documentation/jsapi/scripts/linenumber.js b/documentation/jsapi/scripts/linenumber.js
deleted file mode 100644 (file)
index 4354785..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/*global document */
-(() => {
-    const source = document.getElementsByClassName('prettyprint source linenums');
-    let i = 0;
-    let lineNumber = 0;
-    let lineId;
-    let lines;
-    let totalLines;
-    let 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/documentation/jsapi/scripts/prettify/Apache-License-2.0.txt b/documentation/jsapi/scripts/prettify/Apache-License-2.0.txt
deleted file mode 100644 (file)
index d645695..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-
-                                 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/documentation/jsapi/scripts/prettify/lang-css.js b/documentation/jsapi/scripts/prettify/lang-css.js
deleted file mode 100644 (file)
index 041e1f5..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\f\r ]+/,null," \t\r\n\f"]],[["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/documentation/jsapi/scripts/prettify/prettify.js b/documentation/jsapi/scripts/prettify/prettify.js
deleted file mode 100644 (file)
index eef5ad7..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-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/documentation/jsapi/styles/jsdoc-default.css b/documentation/jsapi/styles/jsdoc-default.css
deleted file mode 100644 (file)
index 7d1729d..0000000
+++ /dev/null
@@ -1,358 +0,0 @@
-@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;
-}
-
-.source
-{
-    border: 1px solid #ddd;
-    width: 80%;
-    overflow: auto;
-}
-
-.prettyprint.source {
-    width: inherit;
-}
-
-.source 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/documentation/jsapi/styles/prettify-jsdoc.css b/documentation/jsapi/styles/prettify-jsdoc.css
deleted file mode 100644 (file)
index 5a2526e..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-/* 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/documentation/jsapi/styles/prettify-tomorrow.css b/documentation/jsapi/styles/prettify-tomorrow.css
deleted file mode 100644 (file)
index aa2908c..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-/* 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: Menlo, Monaco, Consolas, 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/documentation/jsapi/uci.js.html b/documentation/jsapi/uci.js.html
deleted file mode 100644 (file)
index d61010f..0000000
+++ /dev/null
@@ -1,994 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="utf-8">
-    <title>JSDoc: Source: uci.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: uci.js</h1>
-
-    
-
-
-
-    
-    <section>
-        <article>
-            <pre class="prettyprint source linenums"><code>'use strict';
-'require rpc';
-
-/**
- * @class uci
- * @memberof LuCI
- * @hideconstructor
- * @classdesc
- *
- * The `LuCI.uci` class utilizes {@link LuCI.rpc} to declare low level
- * remote UCI `ubus` procedures and implements a local caching and data
- * manipulation layer on top to allow for synchroneous operations on
- * UCI configuration data.
- */
-return L.Class.extend(/** @lends LuCI.uci.prototype */ {
-       __init__: function() {
-               this.state = {
-                       newidx:  0,
-                       values:  { },
-                       creates: { },
-                       changes: { },
-                       deletes: { },
-                       reorder: { }
-               };
-
-               this.loaded = {};
-       },
-
-       callLoad: rpc.declare({
-               object: 'uci',
-               method: 'get',
-               params: [ 'config' ],
-               expect: { values: { } }
-       }),
-
-
-       callOrder: rpc.declare({
-               object: 'uci',
-               method: 'order',
-               params: [ 'config', 'sections' ]
-       }),
-
-       callAdd: rpc.declare({
-               object: 'uci',
-               method: 'add',
-               params: [ 'config', 'type', 'name', 'values' ],
-               expect: { section: '' }
-       }),
-
-       callSet: rpc.declare({
-               object: 'uci',
-               method: 'set',
-               params: [ 'config', 'section', 'values' ]
-       }),
-
-       callDelete: rpc.declare({
-               object: 'uci',
-               method: 'delete',
-               params: [ 'config', 'section', 'options' ]
-       }),
-
-       callApply: rpc.declare({
-               object: 'uci',
-               method: 'apply',
-               params: [ 'timeout', 'rollback' ]
-       }),
-
-       callConfirm: rpc.declare({
-               object: 'uci',
-               method: 'confirm'
-       }),
-
-
-       /**
-        * Generates a new, unique section ID for the given configuration.
-        *
-        * Note that the generated ID is temporary, it will get replaced by an
-        * identifier in the form `cfgXXXXXX` once the configuration is saved
-        * by the remote `ubus` UCI api.
-        *
-        * @param {string} config
-        * The configuration to generate the new section ID for.
-        *
-        * @returns {string}
-        * A newly generated, unique section ID in the form `newXXXXXX`
-        * where `X` denotes a hexadecimal digit.
-        */
-       createSID: function(conf) {
-               var v = this.state.values,
-                   n = this.state.creates,
-                   sid;
-
-               do {
-                       sid = "new%06x".format(Math.random() * 0xFFFFFF);
-               } while ((n[conf] &amp;&amp; n[conf][sid]) || (v[conf] &amp;&amp; v[conf][sid]));
-
-               return sid;
-       },
-
-       /**
-        * Resolves a given section ID in extended notation to the internal
-        * section ID value.
-        *
-        * @param {string} config
-        * The configuration to resolve the section ID for.
-        *
-        * @param {string} sid
-        * The section ID to resolve. If the ID is in the form `@typename[#]`,
-        * it will get resolved to an internal anonymous ID in the forms
-        * `cfgXXXXXX`/`newXXXXXX` or to the name of a section in case it points
-        * to a named section. When the given ID is not in extended notation,
-        * it will be returned as-is.
-        *
-        * @returns {string|null}
-        * Returns the resolved section ID or the original given ID if it was
-        * not in extended notation. Returns `null` when an extended ID could
-        * not be resolved to existing section ID.
-        */
-       resolveSID: function(conf, sid) {
-               if (typeof(sid) != 'string')
-                       return sid;
-
-               var m = /^@([a-zA-Z0-9_-]+)\[(-?[0-9]+)\]$/.exec(sid);
-
-               if (m) {
-                       var type = m[1],
-                           pos = +m[2],
-                           sections = this.sections(conf, type),
-                           section = sections[pos >= 0 ? pos : sections.length + pos];
-
-                       return section ? section['.name'] : null;
-               }
-
-               return sid;
-       },
-
-       /* private */
-       reorderSections: function() {
-               var v = this.state.values,
-                   n = this.state.creates,
-                   r = this.state.reorder,
-                   tasks = [];
-
-               if (Object.keys(r).length === 0)
-                       return Promise.resolve();
-
-               /*
-                gather all created and existing sections, sort them according
-                to their index value and issue an uci order call
-               */
-               for (var c in r) {
-                       var o = [ ];
-
-                       if (n[c])
-                               for (var s in n[c])
-                                       o.push(n[c][s]);
-
-                       for (var s in v[c])
-                               o.push(v[c][s]);
-
-                       if (o.length > 0) {
-                               o.sort(function(a, b) {
-                                       return (a['.index'] - b['.index']);
-                               });
-
-                               var sids = [ ];
-
-                               for (var i = 0; i &lt; o.length; i++)
-                                       sids.push(o[i]['.name']);
-
-                               tasks.push(this.callOrder(c, sids));
-                       }
-               }
-
-               this.state.reorder = { };
-               return Promise.all(tasks);
-       },
-
-       /* private */
-       loadPackage: function(packageName) {
-               if (this.loaded[packageName] == null)
-                       return (this.loaded[packageName] = this.callLoad(packageName));
-
-               return Promise.resolve(this.loaded[packageName]);
-       },
-
-       /**
-        * Loads the given UCI configurations from the remote `ubus` api.
-        *
-        * Loaded configurations are cached and only loaded once. Subsequent
-        * load operations of the same configurations will return the cached
-        * data.
-        *
-        * To force reloading a configuration, it has to be unloaded with
-        * {@link LuCI.uci#unload uci.unload()} first.
-        *
-        * @param {string|string[]} config
-        * The name of the configuration or an array of configuration
-        * names to load.
-        *
-        * @returns {Promise&lt;string[]>}
-        * Returns a promise resolving to the names of the configurations
-        * that have been successfully loaded.
-        */
-       load: function(packages) {
-               var self = this,
-                   pkgs = [ ],
-                   tasks = [];
-
-               if (!Array.isArray(packages))
-                       packages = [ packages ];
-
-               for (var i = 0; i &lt; packages.length; i++)
-                       if (!self.state.values[packages[i]]) {
-                               pkgs.push(packages[i]);
-                               tasks.push(self.loadPackage(packages[i]));
-                       }
-
-               return Promise.all(tasks).then(function(responses) {
-                       for (var i = 0; i &lt; responses.length; i++)
-                               self.state.values[pkgs[i]] = responses[i];
-
-                       if (responses.length)
-                               document.dispatchEvent(new CustomEvent('uci-loaded'));
-
-                       return pkgs;
-               });
-       },
-
-       /**
-        * Unloads the given UCI configurations from the local cache.
-        *
-        * @param {string|string[]} config
-        * The name of the configuration or an array of configuration
-        * names to unload.
-        */
-       unload: function(packages) {
-               if (!Array.isArray(packages))
-                       packages = [ packages ];
-
-               for (var i = 0; i &lt; packages.length; i++) {
-                       delete this.state.values[packages[i]];
-                       delete this.state.creates[packages[i]];
-                       delete this.state.changes[packages[i]];
-                       delete this.state.deletes[packages[i]];
-
-                       delete this.loaded[packages[i]];
-               }
-       },
-
-       /**
-        * Adds a new section of the given type to the given configuration,
-        * optionally named according to the given name.
-        *
-        * @param {string} config
-        * The name of the configuration to add the section to.
-        *
-        * @param {string} type
-        * The type of the section to add.
-        *
-        * @param {string} [name]
-        * The name of the section to add. If the name is omitted, an anonymous
-        * section will be added instead.
-        *
-        * @returns {string}
-        * Returns the section ID of the newly added section which is equivalent
-        * to the given name for non-anonymous sections.
-        */
-       add: function(conf, type, name) {
-               var n = this.state.creates,
-                   sid = name || this.createSID(conf);
-
-               if (!n[conf])
-                       n[conf] = { };
-
-               n[conf][sid] = {
-                       '.type':      type,
-                       '.name':      sid,
-                       '.create':    name,
-                       '.anonymous': !name,
-                       '.index':     1000 + this.state.newidx++
-               };
-
-               return sid;
-       },
-
-       /**
-        * Removes the section with the given ID from the given configuration.
-        *
-        * @param {string} config
-        * The name of the configuration to remove the section from.
-        *
-        * @param {string} sid
-        * The ID of the section to remove.
-        */
-       remove: function(conf, sid) {
-               var n = this.state.creates,
-                   c = this.state.changes,
-                   d = this.state.deletes;
-
-               /* requested deletion of a just created section */
-               if (n[conf] &amp;&amp; n[conf][sid]) {
-                       delete n[conf][sid];
-               }
-               else {
-                       if (c[conf])
-                               delete c[conf][sid];
-
-                       if (!d[conf])
-                               d[conf] = { };
-
-                       d[conf][sid] = true;
-               }
-       },
-
-       /**
-        * A section object represents the options and their corresponding values
-        * enclosed within a configuration section, as well as some additional
-        * meta data such as sort indexes and internal ID.
-        *
-        * Any internal metadata fields are prefixed with a dot which is isn't
-        * an allowed character for normal option names.
-        *
-        * @typedef {Object&lt;string, boolean|number|string|string[]>} SectionObject
-        * @memberof LuCI.uci
-        *
-        * @property {boolean} .anonymous
-        * The `.anonymous` property specifies whether the configuration is
-        * anonymous (`true`) or named (`false`).
-        *
-        * @property {number} .index
-        * The `.index` property specifes the sort order of the section.
-        *
-        * @property {string} .name
-        * The `.name` property holds the name of the section object. It may be
-        * either an anonymous ID in the form `cfgXXXXXX` or `newXXXXXX` with `X`
-        * being a hexadecimal digit or a string holding the name of the section.
-        *
-        * @property {string} .type
-        * The `.type` property contains the type of the corresponding uci
-        * section.
-        *
-        * @property {string|string[]} *
-        * A section object may contain an arbitrary number of further properties
-        * representing the uci option enclosed in the section.
-        *
-        * All option property names will be in the form `[A-Za-z0-9_]+` and
-        * either contain a string value or an array of strings, in case the
-        * underlying option is an UCI list.
-        */
-
-       /**
-        * The sections callback is invoked for each section found within
-        * the given configuration and receives the section object and its
-        * associated name as arguments.
-        *
-        * @callback LuCI.uci~sectionsFn
-        *
-        * @param {LuCI.uci.SectionObject} section
-        * The section object.
-        *
-        * @param {string} sid
-        * The name or ID of the section.
-        */
-
-       /**
-        * Enumerates the sections of the given configuration, optionally
-        * filtered by type.
-        *
-        * @param {string} config
-        * The name of the configuration to enumerate the sections for.
-        *
-        * @param {string} [type]
-        * Enumerate only sections of the given type. If omitted, enumerate
-        * all sections.
-        *
-        * @param {LuCI.uci~sectionsFn} [cb]
-        * An optional callback to invoke for each enumerated section.
-        *
-        * @returns {Array&lt;LuCI.uci.SectionObject>}
-        * Returns a sorted array of the section objects within the given
-        * configuration, filtered by type of a type has been specified.
-        */
-       sections: function(conf, type, cb) {
-               var sa = [ ],
-                   v = this.state.values[conf],
-                   n = this.state.creates[conf],
-                   c = this.state.changes[conf],
-                   d = this.state.deletes[conf];
-
-               if (!v)
-                       return sa;
-
-               for (var s in v)
-                       if (!d || d[s] !== true)
-                               if (!type || v[s]['.type'] == type)
-                                       sa.push(Object.assign({ }, v[s], c ? c[s] : undefined));
-
-               if (n)
-                       for (var s in n)
-                               if (!type || n[s]['.type'] == type)
-                                       sa.push(Object.assign({ }, n[s]));
-
-               sa.sort(function(a, b) {
-                       return a['.index'] - b['.index'];
-               });
-
-               for (var i = 0; i &lt; sa.length; i++)
-                       sa[i]['.index'] = i;
-
-               if (typeof(cb) == 'function')
-                       for (var i = 0; i &lt; sa.length; i++)
-                               cb.call(this, sa[i], sa[i]['.name']);
-
-               return sa;
-       },
-
-       /**
-        * Gets the value of the given option within the specified section
-        * of the given configuration or the entire section object if the
-        * option name is omitted.
-        *
-        * @param {string} config
-        * The name of the configuration to read the value from.
-        *
-        * @param {string} sid
-        * The name or ID of the section to read.
-        *
-        * @param {string} [option]
-        * The option name to read the value from. If the option name is
-        * omitted or `null`, the entire section is returned instead.
-        *
-        * @returns {null|string|string[]|LuCI.uci.SectionObject}
-        * - Returns a string containing the option value in case of a
-        *   plain UCI option.
-        * - Returns an array of strings containing the option values in
-        *   case of `option` pointing to an UCI list.
-        * - Returns a {@link LuCI.uci.SectionObject section object} if
-        *   the `option` argument has been omitted or is `null`.
-        * - Returns `null` if the config, section or option has not been
-        *   found or if the corresponding configuration is not loaded.
-        */
-       get: function(conf, sid, opt) {
-               var v = this.state.values,
-                   n = this.state.creates,
-                   c = this.state.changes,
-                   d = this.state.deletes;
-
-               sid = this.resolveSID(conf, sid);
-
-               if (sid == null)
-                       return null;
-
-               /* requested option in a just created section */
-               if (n[conf] &amp;&amp; n[conf][sid]) {
-                       if (!n[conf])
-                               return undefined;
-
-                       if (opt == null)
-                               return n[conf][sid];
-
-                       return n[conf][sid][opt];
-               }
-
-               /* requested an option value */
-               if (opt != null) {
-                       /* check whether option was deleted */
-                       if (d[conf] &amp;&amp; d[conf][sid]) {
-                               if (d[conf][sid] === true)
-                                       return undefined;
-
-                               for (var i = 0; i &lt; d[conf][sid].length; i++)
-                                       if (d[conf][sid][i] == opt)
-                                               return undefined;
-                       }
-
-                       /* check whether option was changed */
-                       if (c[conf] &amp;&amp; c[conf][sid] &amp;&amp; c[conf][sid][opt] != null)
-                               return c[conf][sid][opt];
-
-                       /* return base value */
-                       if (v[conf] &amp;&amp; v[conf][sid])
-                               return v[conf][sid][opt];
-
-                       return undefined;
-               }
-
-               /* requested an entire section */
-               if (v[conf])
-                       return v[conf][sid];
-
-               return undefined;
-       },
-
-       /**
-        * Sets the value of the given option within the specified section
-        * of the given configuration.
-        *
-        * If either config, section or option is null, or if `option` begins
-        * with a dot, the function will do nothing.
-        *
-        * @param {string} config
-        * The name of the configuration to set the option value in.
-        *
-        * @param {string} sid
-        * The name or ID of the section to set the option value in.
-        *
-        * @param {string} option
-        * The option name to set the value for.
-        *
-        * @param {null|string|string[]} value
-        * The option value to set. If the value is `null` or an empty string,
-        * the option will be removed, otherwise it will be set or overwritten
-        * with the given value.
-        */
-       set: function(conf, sid, opt, val) {
-               var v = this.state.values,
-                   n = this.state.creates,
-                   c = this.state.changes,
-                   d = this.state.deletes;
-
-               sid = this.resolveSID(conf, sid);
-
-               if (sid == null || opt == null || opt.charAt(0) == '.')
-                       return;
-
-               if (n[conf] &amp;&amp; n[conf][sid]) {
-                       if (val != null)
-                               n[conf][sid][opt] = val;
-                       else
-                               delete n[conf][sid][opt];
-               }
-               else if (val != null &amp;&amp; val !== '') {
-                       /* do not set within deleted section */
-                       if (d[conf] &amp;&amp; d[conf][sid] === true)
-                               return;
-
-                       /* only set in existing sections */
-                       if (!v[conf] || !v[conf][sid])
-                               return;
-
-                       if (!c[conf])
-                               c[conf] = {};
-
-                       if (!c[conf][sid])
-                               c[conf][sid] = {};
-
-                       /* undelete option */
-                       if (d[conf] &amp;&amp; d[conf][sid])
-                               d[conf][sid] = d[conf][sid].filter(function(o) { return o !== opt });
-
-                       c[conf][sid][opt] = val;
-               }
-               else {
-                       /* only delete in existing sections */
-                       if (!(v[conf] &amp;&amp; v[conf][sid] &amp;&amp; v[conf][sid].hasOwnProperty(opt)) &amp;&amp;
-                           !(c[conf] &amp;&amp; c[conf][sid] &amp;&amp; c[conf][sid].hasOwnProperty(opt)))
-                           return;
-
-                       if (!d[conf])
-                               d[conf] = { };
-
-                       if (!d[conf][sid])
-                               d[conf][sid] = [ ];
-
-                       if (d[conf][sid] !== true)
-                               d[conf][sid].push(opt);
-               }
-       },
-
-       /**
-        * Remove the given option within the specified section of the given
-        * configuration.
-        *
-        * This function is a convenience wrapper around
-        * `uci.set(config, section, option, null)`.
-        *
-        * @param {string} config
-        * The name of the configuration to remove the option from.
-        *
-        * @param {string} sid
-        * The name or ID of the section to remove the option from.
-        *
-        * @param {string} option
-        * The name of the option to remove.
-        */
-       unset: function(conf, sid, opt) {
-               return this.set(conf, sid, opt, null);
-       },
-
-       /**
-        * Gets the value of the given option or the entire section object of
-        * the first found section of the specified type or the first found
-        * section of the entire configuration if no type is specfied.
-        *
-        * @param {string} config
-        * The name of the configuration to read the value from.
-        *
-        * @param {string} [type]
-        * The type of the first section to find. If it is `null`, the first
-        * section of the entire config is read, otherwise the first section
-        * matching the given type.
-        *
-        * @param {string} [option]
-        * The option name to read the value from. If the option name is
-        * omitted or `null`, the entire section is returned instead.
-        *
-        * @returns {null|string|string[]|LuCI.uci.SectionObject}
-        * - Returns a string containing the option value in case of a
-        *   plain UCI option.
-        * - Returns an array of strings containing the option values in
-        *   case of `option` pointing to an UCI list.
-        * - Returns a {@link LuCI.uci.SectionObject section object} if
-        *   the `option` argument has been omitted or is `null`.
-        * - Returns `null` if the config, section or option has not been
-        *   found or if the corresponding configuration is not loaded.
-        */
-       get_first: function(conf, type, opt) {
-               var sid = null;
-
-               this.sections(conf, type, function(s) {
-                       if (sid == null)
-                               sid = s['.name'];
-               });
-
-               return this.get(conf, sid, opt);
-       },
-
-       /**
-        * Sets the value of the given option within the first found section
-        * of the given configuration matching the specified type or within
-        * the first section of the entire config when no type has is specified.
-        *
-        * If either config, type or option is null, or if `option` begins
-        * with a dot, the function will do nothing.
-        *
-        * @param {string} config
-        * The name of the configuration to set the option value in.
-        *
-        * @param {string} [type]
-        * The type of the first section to find. If it is `null`, the first
-        * section of the entire config is written to, otherwise the first
-        * section matching the given type is used.
-        *
-        * @param {string} option
-        * The option name to set the value for.
-        *
-        * @param {null|string|string[]} value
-        * The option value to set. If the value is `null` or an empty string,
-        * the option will be removed, otherwise it will be set or overwritten
-        * with the given value.
-        */
-       set_first: function(conf, type, opt, val) {
-               var sid = null;
-
-               this.sections(conf, type, function(s) {
-                       if (sid == null)
-                               sid = s['.name'];
-               });
-
-               return this.set(conf, sid, opt, val);
-       },
-
-       /**
-        * Removes the given option within the first found section of the given
-        * configuration matching the specified type or within the first section
-        * of the entire config when no type has is specified.
-        *
-        * This function is a convenience wrapper around
-        * `uci.set_first(config, type, option, null)`.
-        *
-        * @param {string} config
-        * The name of the configuration to set the option value in.
-        *
-        * @param {string} [type]
-        * The type of the first section to find. If it is `null`, the first
-        * section of the entire config is written to, otherwise the first
-        * section matching the given type is used.
-        *
-        * @param {string} option
-        * The option name to set the value for.
-        */
-       unset_first: function(conf, type, opt) {
-               return this.set_first(conf, type, opt, null);
-       },
-
-       /**
-        * Move the first specified section within the given configuration
-        * before or after the second specified section.
-        *
-        * @param {string} config
-        * The configuration to move the section within.
-        *
-        * @param {string} sid1
-        * The ID of the section to move within the configuration.
-        *
-        * @param {string} [sid2]
-        * The ID of the target section for the move operation. If the
-        * `after` argument is `false` or not specified, the section named by
-        * `sid1` will be moved before this target section, if the `after`
-        * argument is `true`, the `sid1` section will be moved after this
-        * section.
-        *
-        * When the `sid2` argument is `null`, the section specified by `sid1`
-        * is moved to the end of the configuration.
-        *
-        * @param {boolean} [after=false]
-        * When `true`, the section `sid1` is moved after the section `sid2`,
-        * when `false`, the section `sid1` is moved before `sid2`.
-        *
-        * If `sid2` is null, then this parameter has no effect and the section
-        * `sid1` is moved to the end of the configuration instead.
-        *
-        * @returns {boolean}
-        * Returns `true` when the section was successfully moved, or `false`
-        * when either the section specified by `sid1` or by `sid2` is not found.
-        */
-       move: function(conf, sid1, sid2, after) {
-               var sa = this.sections(conf),
-                   s1 = null, s2 = null;
-
-               sid1 = this.resolveSID(conf, sid1);
-               sid2 = this.resolveSID(conf, sid2);
-
-               for (var i = 0; i &lt; sa.length; i++) {
-                       if (sa[i]['.name'] != sid1)
-                               continue;
-
-                       s1 = sa[i];
-                       sa.splice(i, 1);
-                       break;
-               }
-
-               if (s1 == null)
-                       return false;
-
-               if (sid2 == null) {
-                       sa.push(s1);
-               }
-               else {
-                       for (var i = 0; i &lt; sa.length; i++) {
-                               if (sa[i]['.name'] != sid2)
-                                       continue;
-
-                               s2 = sa[i];
-                               sa.splice(i + !!after, 0, s1);
-                               break;
-                       }
-
-                       if (s2 == null)
-                               return false;
-               }
-
-               for (var i = 0; i &lt; sa.length; i++)
-                       this.get(conf, sa[i]['.name'])['.index'] = i;
-
-               this.state.reorder[conf] = true;
-
-               return true;
-       },
-
-       /**
-        * Submits all local configuration changes to the remove `ubus` api,
-        * adds, removes and reorders remote sections as needed and reloads
-        * all loaded configurations to resynchronize the local state with
-        * the remote configuration values.
-        *
-        * @returns {string[]}
-        * Returns a promise resolving to an array of configuration names which
-        * have been reloaded by the save operation.
-        */
-       save: function() {
-               var v = this.state.values,
-                   n = this.state.creates,
-                   c = this.state.changes,
-                   d = this.state.deletes,
-                   r = this.state.reorder,
-                   self = this,
-                   snew = [ ],
-                   pkgs = { },
-                   tasks = [];
-
-               if (n)
-                       for (var conf in n) {
-                               for (var sid in n[conf]) {
-                                       var r = {
-                                               config: conf,
-                                               values: { }
-                                       };
-
-                                       for (var k in n[conf][sid]) {
-                                               if (k == '.type')
-                                                       r.type = n[conf][sid][k];
-                                               else if (k == '.create')
-                                                       r.name = n[conf][sid][k];
-                                               else if (k.charAt(0) != '.')
-                                                       r.values[k] = n[conf][sid][k];
-                                       }
-
-                                       snew.push(n[conf][sid]);
-                                       tasks.push(self.callAdd(r.config, r.type, r.name, r.values));
-                               }
-
-                               pkgs[conf] = true;
-                       }
-
-               if (c)
-                       for (var conf in c) {
-                               for (var sid in c[conf])
-                                       tasks.push(self.callSet(conf, sid, c[conf][sid]));
-
-                               pkgs[conf] = true;
-                       }
-
-               if (d)
-                       for (var conf in d) {
-                               for (var sid in d[conf]) {
-                                       var o = d[conf][sid];
-                                       tasks.push(self.callDelete(conf, sid, (o === true) ? null : o));
-                               }
-
-                               pkgs[conf] = true;
-                       }
-
-               if (r)
-                       for (var conf in r)
-                               pkgs[conf] = true;
-
-               return Promise.all(tasks).then(function(responses) {
-                       /*
-                        array "snew" holds references to the created uci sections,
-                        use it to assign the returned names of the new sections
-                       */
-                       for (var i = 0; i &lt; snew.length; i++)
-                               snew[i]['.name'] = responses[i];
-
-                       return self.reorderSections();
-               }).then(function() {
-                       pkgs = Object.keys(pkgs);
-
-                       self.unload(pkgs);
-
-                       return self.load(pkgs);
-               });
-       },
-
-       /**
-        * Instructs the remote `ubus` UCI api to commit all saved changes with
-        * rollback protection and attempts to confirm the pending commit
-        * operation to cancel the rollback timer.
-        *
-        * @param {number} [timeout=10]
-        * Override the confirmation timeout after which a rollback is triggered.
-        *
-        * @returns {Promise&lt;number>}
-        * Returns a promise resolving/rejecting with the `ubus` RPC status code.
-        */
-       apply: function(timeout) {
-               var self = this,
-                   date = new Date();
-
-               if (typeof(timeout) != 'number' || timeout &lt; 1)
-                       timeout = 10;
-
-               return self.callApply(timeout, true).then(function(rv) {
-                       if (rv != 0)
-                               return Promise.reject(rv);
-
-                       var try_deadline = date.getTime() + 1000 * timeout;
-                       var try_confirm = function() {
-                               return self.callConfirm().then(function(rv) {
-                                       if (rv != 0) {
-                                               if (date.getTime() &lt; try_deadline)
-                                                       window.setTimeout(try_confirm, 250);
-                                               else
-                                                       return Promise.reject(rv);
-                                       }
-
-                                       return rv;
-                               });
-                       };
-
-                       window.setTimeout(try_confirm, 1000);
-               });
-       },
-
-       /**
-        * An UCI change record is a plain array containing the change operation
-        * name as first element, the affected section ID as second argument
-        * and an optional third and fourth argument whose meanings depend on
-        * the operation.
-        *
-        * @typedef {string[]} ChangeRecord
-        * @memberof LuCI.uci
-        *
-        * @property {string} 0
-        * The operation name - may be one of `add`, `set`, `remove`, `order`,
-        * `list-add`, `list-del` or `rename`.
-        *
-        * @property {string} 1
-        * The section ID targeted by the operation.
-        *
-        * @property {string} 2
-        * The meaning of the third element depends on the operation.
-        * - For `add` it is type of the section that has been added
-        * - For `set` it either is the option name if a fourth element exists,
-        *   or the type of a named section which has been added when the change
-        *   entry only contains three elements.
-        * - For `remove` it contains the name of the option that has been
-        *   removed.
-        * - For `order` it specifies the new sort index of the section.
-        * - For `list-add` it contains the name of the list option a new value
-        *   has been added to.
-        * - For `list-del` it contains the name of the list option a value has
-        *   been removed from.
-        * - For `rename` it contains the name of the option that has been
-        *   renamed if a fourth element exists, else it contains the new name
-        *   a section has been renamed to if the change entry only contains
-        *   three elements.
-        *
-        * @property {string} 4
-        * The meaning of the fourth element depends on the operation.
-        * - For `set` it is the value an option has been set to.
-        * - For `list-add` it is the new value that has been added to a
-        *   list option.
-        * - For `rename` it is the new name of an option that has been
-        *   renamed.
-        */
-
-       /**
-        * Fetches uncommitted UCI changes from the remote `ubus` RPC api.
-        *
-        * @method
-        * @returns {Promise&lt;Object&lt;string, Array&lt;LuCI.uci.ChangeRecord>>>}
-        * Returns a promise resolving to an object containing the configuration
-        * names as keys and arrays of related change records as values.
-        */
-       changes: rpc.declare({
-               object: 'uci',
-               method: 'changes',
-               expect: { changes: { } }
-       })
-});
-</code></pre>
-        </article>
-    </section>
-
-
-
-
-</div>
-
-<nav>
-    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="LuCI.html">LuCI</a></li><li><a href="LuCI.Class.html">Class</a></li><li><a href="LuCI.dom.html">dom</a></li><li><a href="LuCI.fs.html">fs</a></li><li><a href="LuCI.Headers.html">Headers</a></li><li><a href="LuCI.Network.html">Network</a></li><li><a href="LuCI.Network.Device.html">Device</a></li><li><a href="LuCI.Network.Hosts.html">Hosts</a></li><li><a href="LuCI.Network.Protocol.html">Protocol</a></li><li><a href="LuCI.Network.WifiDevice.html">WifiDevice</a></li><li><a href="LuCI.Network.WifiNetwork.html">WifiNetwork</a></li><li><a href="LuCI.Poll.html">Poll</a></li><li><a href="LuCI.Request.html">Request</a></li><li><a href="LuCI.Request.poll.html">poll</a></li><li><a href="LuCI.Response.html">Response</a></li><li><a href="LuCI.rpc.html">rpc</a></li><li><a href="LuCI.uci.html">uci</a></li><li><a href="LuCI.view.html">view</a></li><li><a href="LuCI.XHR.html">XHR</a></li></ul>
-</nav>
-
-<br class="clear">
-
-<footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a> on Tue Nov 05 2019 09:33:05 GMT+0100 (Central European Standard Time)
-</footer>
-
-<script> prettyPrint(); </script>
-<script src="scripts/linenumber.js"> </script>
-</body>
-</html>