From 222565e7a757e8f075388fc759fd297b501527ae Mon Sep 17 00:00:00 2001 From: Jeremy Poulter Date: Sat, 25 Jul 2020 14:42:53 +0100 Subject: [PATCH] Typo fixes Fixes #98 Fixes #100 --- gui | 2 +- src/web_static/web_server.home.html.h | 8 ++++---- src/web_static/web_server.home.js.h | 2 +- src/web_static/web_server.lib.js.h | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/gui b/gui index 4537e53e..bb089a95 160000 --- a/gui +++ b/gui @@ -1 +1 @@ -Subproject commit 4537e53e765df07657e28e106e8a47c022dc01eb +Subproject commit bb089a95d336ee369337a0dd8a4ee05ad35eca90 diff --git a/src/web_static/web_server.home.html.h b/src/web_static/web_server.home.html.h index effd30c6..c0b592f3 100644 --- a/src/web_static/web_server.home.html.h +++ b/src/web_static/web_server.home.html.h @@ -1,5 +1,5 @@ -static const char CONTENT_HOME_HTML[] PROGMEM = - " OpenEVSE

OpenEVSE

WiFi

Loading, please wait... (/)

WiFi Setup

Mode:

IP Address:

Successful packets:
of

OpenEVSE

RAPI packets:
of

Network RSSI dBm

IP Address:

Successful packets:
of

OpenEVSE

RAPI packets:
of

Connect to network:

Scanning...

SSID:

Passkey:

Connecting to WIFI Network...

Administration

Username:
15 characters max

Password:


15 characters max
Web interface HTTP authentication.

WiFi Firmware

ESP8266

Version:

Error:

Updating...
Firmware update completed ok

Advanced Settings

Hostname:
31 characters max

NTP Server:

Developer Mode

Enabled:

  Energy Monitoring

Emoncms Server*:
0 }\">

WiFi Setup

Mode:

IP Address:

Successful packets:
of

OpenEVSE

RAPI packets:
of

Network RSSI dBm

IP Address:

Successful packets:
of

OpenEVSE

RAPI packets:
of

Connect to network:

Scanning...

SSID:

Passkey:

Connecting to WIFI Network...

Administration

Username:
15 characters max

Password:


15 characters max
Web interface HTTP authentication.

WiFi Firmware

Version:

Error:

Updating...
Firmware update completed ok

Advanced Settings

Hostname:
31 characters max

NTP Server:

Developer Mode

Enabled:

  Energy Monitoring

Emoncms Server*:
0 }\">
e.g 'emonpi', 'test.mosquitto.org', '192.168.1.4'

Port*:

Reject self-signed certificates:

Warning!!

Certificate validation is disabled, although the connection to MQTT server will be encrypted the connection is still vunrable to man-in-the-middle attacks.

Username: blank - no authentication

Password: blank - no authentication

Base-topic*:

e.g 'openevse'

Voltage topic:
Voltage MQTT topic to improve power calculations

  Connected: 

  OhmConnect

Click Here to Join

OhmConnect monitors real-time conditions on the electricity grid. When dirty and unsustainable power plants turn on, our users receive a notification to save energy.

Ohm Hour:

Ohm key:

USA - California only

Ohm Key can be obtained by logging in to OhmConnect, enter Settings and locate the link in \"Open Source Projects\"
Example: https://login.ohmconnect.com/verify-ohm-hour/OpnEoVse
Key: OpnEoVse

Solar PV divert

MQTT not enabled.

Solar PV Divert requires an SolarPV-gen or Grid (+I/-E) feed to be delivered via MQTT.
Dynamically adjust charge rate based on solar PV generation or excess power (grid export).

  • If only solar PV feed available: charge rate is modulated based on solar PV generation.
  • If grid +I/-E (positive Import / negative Export) feed is available: charge rate will be modulated by available excess power.
  • If EVSE is sleeping: charging will begin when solar PV / excess power > min charge rate.
  • Charging will pause if the excess power drops below the nim charge rate for a period of time.
Note: It's assumed that EVSE power is included in the grid feed


Solar: Grid Import/Export: W - | Charge rate: A

Feed*:

Solar PV MQTT topic to modulate charge rate based on solar Grid (+I/-E) MQTT topic to modulate charge rate based on excess power

Divert smoothing attack:

The amount of the new feed value to add to the divert available power rolling average

Divert smoothing decay:

The amount of the new feed value to remove to the divert available power rolling average

Minimum charge time:

The minimum amount of time (seconds) to charge the car once enabled via the Solar PV divert. This can help minimise wear and tare on the EVSE.

EVSE Error

EVSE Error

OpenEVSE not responding or not connected

e.g 'emonpi', 'test.mosquitto.org', '192.168.1.4'

Port*:

Reject self-signed certificates:

Warning!!

Certificate validation is disabled, although the connection to MQTT server will be encrypted the connection is still vulnerable to man-in-the-middle attacks.

Username: blank - no authentication

Password: blank - no authentication

Base-topic*:

e.g 'openevse'

Voltage topic:
Voltage MQTT topic to improve power calculations

  Connected: 

  OhmConnect

Click Here to Join

OhmConnect monitors real-time conditions on the electricity grid. When dirty and unsustainable power plants turn on, our users receive a notification to save energy.

Ohm Hour:

Ohm key:

USA - California only

Ohm Key can be obtained by logging in to OhmConnect, enter Settings and locate the link in \"Open Source Projects\"
Example: https://login.ohmconnect.com/verify-ohm-hour/OpnEoVse
Key: OpnEoVse

Solar PV divert

MQTT not enabled.

Solar PV Divert requires an SolarPV-gen or Grid (+I/-E) feed to be delivered via MQTT.
Dynamically adjust charge rate based on solar PV generation or excess power (grid export).

  • If only solar PV feed available: charge rate is modulated based on solar PV generation.
  • If grid +I/-E (positive Import / negative Export) feed is available: charge rate will be modulated by available excess power.
  • If EVSE is sleeping: charging will begin when solar PV / excess power > min charge rate.
  • Charging will pause if the excess power drops below the nim charge rate for a period of time.
Note: It's assumed that EVSE power is included in the grid feed


Solar: Grid Import/Export: W - | Charge rate: A

Feed*:

Solar PV MQTT topic to modulate charge rate based on solar Grid (+I/-E) MQTT topic to modulate charge rate based on excess power

Divert smoothing attack:

The amount of the new feed value to add to the divert available power rolling average

Divert smoothing decay:

The amount of the new feed value to remove to the divert available power rolling average

Minimum charge time:

The minimum amount of time (seconds) to charge the car once enabled via the Solar PV divert. This can help minimise wear and tear on the EVSE.

EVSE Error

EVSE Error

OpenEVSE not responding or not connected
Cancel

Energy

Energy
This Session:
Total:

Sensor Values

Sensor Value
Pilot:
Current Now:
Voltage:
Temp1:
Temp2:
Temp3:

Setup

Time: No RTC detected

Time:

Time zone:

Set time from

Service Level:

Set time from

Service Level:
\",e.querySelectorAll(\"[msallowcapture^='']\").length&&g.push(\"[*^$]=\"+B+\"*(?:''|\\\"\\\")\"),e.querySelectorAll(\"[selected]\").length||g.push(\"\\\\[\"+B+\"*(?:value|\"+I+\")\"),e.querySelectorAll(\"[id~=\"+E+\"-]\").length||g.push(\"~=\"),e.querySelectorAll(\":checked\").length||g.push(\":checked\"),e.querySelectorAll(\"a#\"+E+\"+*\").length||g.push(\".#.+[+~]\")}),le(function(e){e.innerHTML=\"\";var t=T.createElement(\"input\");t.setAttribute(\"type\",\"hidden\"),e.appendChild(t).setAttribute(\"name\",\"D\"),e.querySelectorAll(\"[name=d]\").length&&g.push(\"name\"+B+\"*[*^$|!~]?=\"),2!==e.querySelectorAll(\":enabled\").length&&g.push(\":enabled\",\":disabled\"),s.appendChild(e).disabled=!0,2!==e.querySelectorAll(\":disabled\").length&&g.push(\":enabled\",\":disabled\"),e.querySelectorAll(\"*,:x\"),g.push(\",.*:\")})),(p.matchesSelector=ee.test(m=s.matches||s.webkitMatchesSelector||s.mozMatchesSelector||s.oMatchesSelector||s.msMatchesSelector))&&le(function(e){p.disconnectedMatch=m.call(e,\"*\"),m.call(e,\"[s!='']:x\"),l.push(\"!=\",$)}),g=g.length&&new RegExp(g.join(\"|\")),l=l.length&&new RegExp(l.join(\"|\")),t=ee.test(s.compareDocumentPosition),b=t||ee.test(s.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},O=t?function(e,t){if(e===t)return c=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!p.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument===y&&b(y,e)?-1:t===T||t.ownerDocument===y&&b(y,t)?1:u?R(u,e)-R(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return c=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===T?-1:t===T?1:i?-1:o?1:u?R(u,e)-R(u,t):0;if(i===o)return de(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;a[r]===s[r];)r++;return r?de(a[r],s[r]):a[r]===y?-1:s[r]===y?1:0}),T},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==T&&C(e),p.matchesSelector&&k&&!A[t+\" \"]&&(!l||!l.test(t))&&(!g||!g.test(t)))try{var n=m.call(e,t);if(n||p.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(re,f),e[3]=(e[3]||e[4]||e[5]||\"\").replace(re,f),\"~=\"===e[2]&&(e[3]=\" \"+e[3]+\" \"),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),\"nth\"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*(\"even\"===e[3]||\"odd\"===e[3])),e[5]=+(e[7]+e[8]||\"odd\"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return Y.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||\"\":n&&G.test(n)&&(t=h(n,!0))&&(t=n.indexOf(\")\",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(re,f).toLowerCase();return\"*\"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+\" \"];return t||(t=new RegExp(\"(^|\"+B+\")\"+e+\"(\"+B+\"|$)\"))&&N(e,function(e){return t.test(\"string\"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute(\"class\")||\"\")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?\"!=\"===r:!r||(t+=\"\",\"=\"===r?t===i:\"!=\"===r?t!==i:\"^=\"===r?i&&0===t.indexOf(i):\"*=\"===r?i&&-1\",\"#\"===e.firstChild.getAttribute(\"href\")})||fe(\"type|href|height|width\",function(e,t,n){if(!n)return e.getAttribute(t,\"type\"===t.toLowerCase()?1:2)}),p.attributes&&le(function(e){return e.innerHTML=\"\",e.firstChild.setAttribute(\"value\",\"\"),\"\"===e.firstChild.getAttribute(\"value\")})||fe(\"value\",function(e,t,n){if(!n&&\"input\"===e.nodeName.toLowerCase())return e.defaultValue}),le(function(e){return null==e.getAttribute(\"disabled\")})||fe(I,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(T);E.find=h,E.expr=h.selectors,E.expr[\":\"]=E.expr.pseudos,E.uniqueSort=E.unique=h.uniqueSort,E.text=h.getText,E.isXMLDoc=h.isXML,E.contains=h.contains,E.escapeSelector=h.escape;function C(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&E(e).is(n))break;r.push(e)}return r}function S(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}var N=E.expr.match.needsContext;function _(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;function A(e,n,r){return y(n)?E.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?E.grep(e,function(e){return e===n!==r}):\"string\"!=typeof n?E.grep(e,function(e){return-1)[^>]*|#([\\w-]+))$/;(E.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||O,\"string\"!=typeof e)return e.nodeType?(this[0]=e,this.length=1,this):y(e)?void 0!==n.ready?n.ready(e):e(E):E.makeArray(e,this);if(!(r=\"<\"===e[0]&&\">\"===e[e.length-1]&&3<=e.length?[null,e,null]:j.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof E?t[0]:t,E.merge(this,E.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:k,!0)),D.test(r[1])&&E.isPlainObject(t))for(r in t)y(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=k.getElementById(r[2]))&&(this[0]=i,this.length=1),this}).prototype=E.fn,O=E(k);var M=/^(?:parents|prev(?:Until|All))/,q={children:!0,contents:!0,next:!0,prev:!0};function L(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}E.fn.extend({has:function(e){var t=E(e,this),n=t.length;return this.filter(function(){for(var e=0;e\\x20\\t\\r\\n\\f]*)/i,he=/^$|^module$|\\/(?:java|ecma)script/i,ve={option:[1,\"\"],thead:[1,\"\",\"
\"],col:[2,\"\",\"
\"],tr:[2,\"\",\"
\"],td:[3,\"\",\"
\"],_default:[0,\"\",\"\"]};function ge(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||\"*\"):void 0!==e.querySelectorAll?e.querySelectorAll(t||\"*\"):[],void 0===t||t&&_(e,t)?E.merge([e],n):n}function me(e,t){for(var n=0,r=e.length;nx\",b.noCloneChecked=!!be.cloneNode(!0).lastChild.defaultValue;var Ce=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ke=/^([^.]*)(?:\\.(.+)|)/;function Ee(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return k.activeElement}catch(e){}}()==(\"focus\"===t)}function _e(e,t,n,r,i,o){var a,s;if(\"object\"===_typeof(t)){for(s in\"string\"!=typeof n&&(r=r||n,n=void 0),t)_e(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&(\"string\"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return E().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=E.guid++)),e.each(function(){E.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Y.set(e,i,!1),E.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(E.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Y.set(this,i,{value:E.event.trigger(E.extend(r[0],E.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&E.event.add(e,i,Ee)}E.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,c,l,f,d,p,h,v,g=Y.get(t);if(g)for(n.handler&&(n=(o=n).handler,i=o.selector),i&&E.find.matchesSelector(ie,i),n.guid||(n.guid=E.guid++),(u=g.events)||(u=g.events={}),(a=g.handle)||(a=g.handle=function(e){return void 0!==E&&E.event.triggered!==e.type?E.event.dispatch.apply(t,arguments):void 0}),c=(e=(e||\"\").match(P)||[\"\"]).length;c--;)p=v=(s=ke.exec(e[c])||[])[1],h=(s[2]||\"\").split(\".\").sort(),p&&(f=E.event.special[p]||{},p=(i?f.delegateType:f.bindType)||p,f=E.event.special[p]||{},l=E.extend({type:p,origType:v,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&E.expr.match.needsContext.test(i),namespace:h.join(\".\")},o),(d=u[p])||((d=u[p]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(p,a)),f.add&&(f.add.call(t,l),l.handler.guid||(l.handler.guid=n.guid)),i?d.splice(d.delegateCount++,0,l):d.push(l),E.event.global[p]=!0)},remove:function(e,t,n,r,i){var o,a,s,u,c,l,f,d,p,h,v,g=Y.hasData(e)&&Y.get(e);if(g&&(u=g.events)){for(c=(t=(t||\"\").match(P)||[\"\"]).length;c--;)if(p=v=(s=ke.exec(t[c])||[])[1],h=(s[2]||\"\").split(\".\").sort(),p){for(f=E.event.special[p]||{},d=u[p=(r?f.delegateType:f.bindType)||p]||[],s=s[2]&&new RegExp(\"(^|\\\\.)\"+h.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"),a=o=d.length;o--;)l=d[o],!i&&v!==l.origType||n&&n.guid!==l.guid||s&&!s.test(l.namespace)||r&&r!==l.selector&&(\"**\"!==r||!l.selector)||(d.splice(o,1),l.selector&&d.delegateCount--,f.remove&&f.remove.call(e,l));a&&!d.length&&(f.teardown&&!1!==f.teardown.call(e,h,g.handle)||E.removeEvent(e,p,g.handle),delete u[p])}else for(p in u)E.event.remove(e,p+t[c],n,r,!0);E.isEmptyObject(u)&&Y.remove(e,\"handle events\")}},dispatch:function(e){var t,n,r,i,o,a,s=E.event.fix(e),u=new Array(arguments.length),c=(Y.get(this,\"events\")||{})[s.type]||[],l=E.event.special[s.type]||{};for(u[0]=s,t=1;t\\x20\\t\\r\\n\\f]*)[^>]*)\\/>/gi,Oe=/\\s*$/g;function qe(e,t){return _(e,\"table\")&&_(11!==t.nodeType?t:t.firstChild,\"tr\")&&E(e).children(\"tbody\")[0]||e}function Le(e){return e.type=(null!==e.getAttribute(\"type\"))+\"/\"+e.type,e}function Pe(e){return\"true/\"===(e.type||\"\").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute(\"type\"),e}function Re(e,t){var n,r,i,o,a,s,u,c;if(1===t.nodeType){if(Y.hasData(e)&&(o=Y.access(e),a=Y.set(t,o),c=o.events))for(i in delete a.handle,a.events={},c)for(n=0,r=c[i].length;n\")},clone:function(e,t,n){var r,i,o,a,s,u,c,l=e.cloneNode(!0),f=oe(e);if(!(b.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||E.isXMLDoc(e)))for(a=ge(l),r=0,i=(o=ge(e)).length;r\").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on(\"load error\",i=function(e){r.remove(),i=null,e&&t(\"error\"===e.type?404:200,e.type)}),k.head.appendChild(r[0])},abort:function(){i&&i()}}});var nn,rn=[],on=/(=)\\?(?=&|$)|\\?\\?/;E.ajaxSetup({jsonp:\"callback\",jsonpCallback:function(){var e=rn.pop()||E.expando+\"_\"+qt++;return this[e]=!0,e}}),E.ajaxPrefilter(\"json jsonp\",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(on.test(e.url)?\"url\":\"string\"==typeof e.data&&0===(e.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&on.test(e.data)&&\"data\");if(a||\"jsonp\"===e.dataTypes[0])return r=e.jsonpCallback=y(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(on,\"$1\"+r):!1!==e.jsonp&&(e.url+=(Lt.test(e.url)?\"&\":\"?\")+e.jsonp+\"=\"+r),e.converters[\"script json\"]=function(){return o||E.error(r+\" was not called\"),o[0]},e.dataTypes[0]=\"json\",i=T[r],T[r]=function(){o=arguments},n.always(function(){void 0===i?E(T).removeProp(r):T[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,rn.push(r)),o&&y(i)&&i(o[0]),o=i=void 0}),\"script\"}),b.createHTMLDocument=((nn=k.implementation.createHTMLDocument(\"\").body).innerHTML=\"

\",2===nn.childNodes.length),E.parseHTML=function(e,t,n){return\"string\"!=typeof e?[]:(\"boolean\"==typeof t&&(n=t,t=!1),t||(b.createHTMLDocument?((r=(t=k.implementation.createHTMLDocument(\"\")).createElement(\"base\")).href=k.location.href,t.head.appendChild(r)):t=k),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&E(o).remove(),E.merge([],i.childNodes)));var r,i,o},E.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(\" \");return-1\").append(E.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},E.each([\"ajaxStart\",\"ajaxStop\",\"ajaxComplete\",\"ajaxError\",\"ajaxSuccess\",\"ajaxSend\"],function(e,t){E.fn[t]=function(e){return this.on(t,e)}}),E.expr.pseudos.animated=function(t){return E.grep(E.timers,function(e){return t===e.elem}).length},E.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,c=E.css(e,\"position\"),l=E(e),f={};\"static\"===c&&(e.style.position=\"relative\"),s=l.offset(),o=E.css(e,\"top\"),u=E.css(e,\"left\"),i=(\"absolute\"===c||\"fixed\"===c)&&-1<(o+u).indexOf(\"auto\")?(a=(r=l.position()).top,r.left):(a=parseFloat(o)||0,parseFloat(u)||0),y(t)&&(t=t.call(e,n,E.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),\"using\"in t?t.using.call(e,f):l.css(f)}},E.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){E.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if(\"fixed\"===E.css(r,\"position\"))t=r.getBoundingClientRect();else{for(t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;e&&(e===n.body||e===n.documentElement)&&\"static\"===E.css(e,\"position\");)e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=E(e).offset()).top+=E.css(e,\"borderTopWidth\",!0),i.left+=E.css(e,\"borderLeftWidth\",!0))}return{top:t.top-i.top-E.css(r,\"marginTop\",!0),left:t.left-i.left-E.css(r,\"marginLeft\",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&\"static\"===E.css(e,\"position\");)e=e.offsetParent;return e||ie})}}),E.each({scrollLeft:\"pageXOffset\",scrollTop:\"pageYOffset\"},function(t,i){var o=\"pageYOffset\"===i;E.fn[t]=function(e){return W(this,function(e,t,n){var r;if(v(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),E.each([\"top\",\"left\"],function(e,n){E.cssHooks[n]=Ze(b.pixelPosition,function(e,t){if(t)return t=Qe(e,n),ze.test(t)?E(e).position()[n]+\"px\":t})}),E.each({Height:\"height\",Width:\"width\"},function(a,s){E.each({padding:\"inner\"+a,content:s,\"\":\"outer\"+a},function(r,o){E.fn[o]=function(e,t){var n=arguments.length&&(r||\"boolean\"!=typeof e),i=r||(!0===e||!0===t?\"margin\":\"border\");return W(this,function(e,t,n){var r;return v(e)?0===o.indexOf(\"outer\")?e[\"inner\"+a]:e.document.documentElement[\"client\"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body[\"scroll\"+a],r[\"scroll\"+a],e.body[\"offset\"+a],r[\"offset\"+a],r[\"client\"+a])):void 0===n?E.css(e,t,i):E.style(e,t,n,i)},s,n?e:void 0,n)}})}),E.each(\"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu\".split(\" \"),function(e,n){E.fn[n]=function(e,t){return 0e.length)&&e.substring(0,t.length)===t},vd:function(e,t){if(e===t)return!0;if(11===e.nodeType)return!1;if(t.contains)return t.contains(1!==e.nodeType?e.parentNode:e);if(t.compareDocumentPosition)return 16==(16&t.compareDocumentPosition(e));for(;e&&e!=t;)e=e.parentNode;return!!e},Sb:function(e){return _.a.vd(e,e.ownerDocument.documentElement)},kd:function(e){return!!_.a.Lb(e,_.a.Sb)},R:function(e){return e&&e.tagName&&e.tagName.toLowerCase()},Ac:function(e){return _.onError?function(){try{return e.apply(this,arguments)}catch(e){throw _.onError&&_.onError(e),e}}:e},setTimeout:(c=function(e,t){return setTimeout(_.a.Ac(e),t)},h.toString=function(){return c.toString()},h),Gc:function(e){setTimeout(function(){throw _.onError&&_.onError(e),e},0)},B:function(t,e,n){var r=_.a.Ac(n);if(n=l[e],_.options.useOnlyNativeEvents||n||!Te)if(n||\"function\"!=typeof t.addEventListener){if(void 0===t.attachEvent)throw Error(\"Browser doesn't support addEventListener or attachEvent\");var i=function(e){r.call(t,e)},o=\"on\"+e;t.attachEvent(o,i),_.a.K.za(t,function(){t.detachEvent(o,i)})}else t.addEventListener(e,r,!1);else u=u||(\"function\"==typeof Te(t).on?\"on\":\"bind\"),Te(t)[u](e,r)},Fb:function(e,t){if(!e||!e.nodeType)throw Error(\"element must be a DOM node when calling triggerEvent\");var n;if(n=!(\"input\"!==_.a.R(e)||!e.type||\"click\"!=t.toLowerCase())&&(\"checkbox\"==(n=e.type)||\"radio\"==n),_.options.useOnlyNativeEvents||!Te||n)if(\"function\"==typeof xe.createEvent){if(\"function\"!=typeof e.dispatchEvent)throw Error(\"The supplied element doesn't support dispatchEvent\");(n=xe.createEvent(s[t]||\"HTMLEvents\")).initEvent(t,!0,!0,we,0,0,0,0,0,!1,!1,!1,!1,0,e),e.dispatchEvent(n)}else if(n&&e.click)e.click();else{if(void 0===e.fireEvent)throw Error(\"Browser doesn't support triggering events\");e.fireEvent(\"on\"+t)}else Te(e).trigger(t)},f:function(e){return _.O(e)?e():e},bc:function(e){return _.O(e)?e.v():e},Eb:function(t,e,n){var r;e&&(\"object\"===_typeof(t.classList)?(r=t.classList[n?\"add\":\"remove\"],_.a.D(e.match(p),function(e){r.call(t.classList,e)})):\"string\"==typeof t.className.baseVal?i(t.className,\"baseVal\",e,n):i(t,\"className\",e,n))},Bb:function(e,t){var n=_.a.f(t);null!==n&&n!==ye||(n=\"\");var r=_.h.firstChild(e);!r||3!=r.nodeType||_.h.nextSibling(r)?_.h.va(e,[e.ownerDocument.createTextNode(n)]):r.data=n,_.a.Ad(e)},Yc:function(e,t){if(e.name=t,d<=7)try{var n=e.name.replace(/[&<>'\"]/g,function(e){return\"&#\"+e.charCodeAt(0)+\";\"});e.mergeAttributes(xe.createElement(\"\"),!1)}catch(e){}},Ad:function(e){9<=d&&((e=1==e.nodeType?e:e.parentNode).style&&(e.style.zoom=e.style.zoom))},wd:function(e){if(d){var t=e.style.width;e.style.width=0,e.style.width=t}},Pd:function(e,t){e=_.a.f(e),t=_.a.f(t);for(var n=[],r=e;r<=t;r++)n.push(r);return n},la:function(e){for(var t=[],n=0,r=e.length;n\",\"\"],tbody:t,tfoot:t,tr:[2,\"\",\"
\"],td:l=[3,\"\",\"
\"],th:l,option:f=[1,\"\"],optgroup:f},p=_.a.W<=8,_.a.ua=function(e,t){var n;if(Te){if(Te.parseHTML)n=Te.parseHTML(e,t)||[];else if((n=Te.clean([e],t))&&n[0]){for(var r=n[0];r.parentNode&&11!==r.parentNode.nodeType;)r=r.parentNode;r.parentNode&&r.parentNode.removeChild(r)}}else{(n=t)||(n=xe);r=n.parentWindow||n.defaultView||we;var i,o=_.a.Db(e).toLowerCase(),a=n.createElement(\"div\");for(o=(i=(o=o.match(/^(?:\\x3c!--.*?--\\x3e\\s*?)*?<([a-z]+)[\\s>]/))&&d[o[1]]||u)[0],i=\"ignored
\"+i[1]+e+i[2]+\"
\",\"function\"==typeof r.innerShiv?a.appendChild(r.innerShiv(i)):(p&&n.body.appendChild(a),a.innerHTML=i,p&&a.parentNode.removeChild(a));o--;)a=a.lastChild;n=_.a.la(a.lastChild.childNodes)}return n},_.a.Md=function(e,t){var n=_.a.ua(e,t);return n.length&&n[0].parentElement||_.a.Yb(n)},_.a.fc=function(e,t){if(_.a.Tb(e),null!==(t=_.a.f(t))&&t!==ye)if(\"string\"!=typeof t&&(t=t.toString()),Te)Te(e).html(t);else for(var n=_.a.ua(t,e.ownerDocument),r=0;r]*))?)*\\s+)data-bind\\s*=\\s*([\"'])([\\s\\S]*?)\\3/gi,de=/\\x3c!--\\s*ko\\b\\s*([\\s\\S]*?)\\s*--\\x3e/g,{xd:function(e,t,n){t.isTemplateRewritten(e,n)||t.rewriteTemplate(e,function(e){return _.kc.Ld(e,t)},n)},Ld:function(e,o){return e.replace(fe,function(e,t,n,r,i){return ge(i,t,n,o)}).replace(de,function(e,t){return ge(t,\"\\x3c!-- ko --\\x3e\",\"#comment\",o)})},md:function(r,i){return _.aa.Xb(function(e,t){var n=e.nextSibling;n&&n.nodeName.toLowerCase()===i&&_.ib(n,r,t)})}}),_.b(\"__tr_ambtns\",_.kc.md),function(){_.C={},_.C.F=function(e){if(this.F=e){var t=_.a.R(e);this.ab=\"script\"===t?1:\"textarea\"===t?2:\"template\"==t&&e.content&&11===e.content.nodeType?3:4}},_.C.F.prototype.text=function(){var e=1===this.ab?\"text\":2===this.ab?\"value\":\"innerHTML\";if(0==arguments.length)return this.F[e];var t=arguments[0];\"innerHTML\"==e?_.a.fc(this.F,t):this.F[e]=t};var t=_.a.g.Z()+\"_\";_.C.F.prototype.data=function(e){if(1===arguments.length)return _.a.g.get(this.F,t+e);_.a.g.set(this.F,t+e,arguments[1])};var i=_.a.g.Z();_.C.F.prototype.nodes=function(){var e=this.F;if(0==arguments.length){var t=_.a.g.get(e,i)||{},n=t.lb||(3===this.ab?e.content:4===this.ab?e:ye);if(!n||t.jd){var r=this.text();r&&r!==t.bb&&(n=_.a.Md(r,e.ownerDocument),_.a.g.set(e,i,{lb:n,bb:r,jd:!0}))}return n}t=arguments[0],this.ab!==ye&&this.text(\"\"),_.a.g.set(e,i,{lb:t})},_.C.ia=function(e){this.F=e},_.C.ia.prototype=new _.C.F,_.C.ia.prototype.constructor=_.C.ia,_.C.ia.prototype.text=function(){if(0==arguments.length){var e=_.a.g.get(this.F,i)||{};return e.bb===ye&&e.lb&&(e.bb=e.lb.innerHTML),e.bb}_.a.g.set(this.F,i,{bb:arguments[0]})},_.b(\"templateSources\",_.C),_.b(\"templateSources.domElement\",_.C.F),_.b(\"templateSources.anonymousTemplate\",_.C.ia)}(),function(){function r(e,t,n){var r;for(t=_.h.nextSibling(t);e&&(r=e)!==t;)n(r,e=_.h.nextSibling(r))}function d(e,t){if(e.length){var i=e[0],o=e[e.length-1],n=i.parentNode,a=_.ga.instance,s=a.preprocessNode;if(s){if(r(i,o,function(e,t){var n=e.previousSibling,r=s.call(a,e);r&&(e===i&&(i=r[0]||t),e===o&&(o=r[r.length-1]||n))}),e.length=0,!i)return;i===o?e.push(i):(e.push(i,o),_.a.Ua(e,n))}r(i,o,function(e){1!==e.nodeType&&8!==e.nodeType||_.vc(t,e)}),r(i,o,function(e){1!==e.nodeType&&8!==e.nodeType||_.aa.cd(e,[t])}),_.a.Ua(e,n)}}function u(e){return e.nodeType?e:0\"+t+\"<\\/script>\")},0