1webpackJsonp([3],[,,function(e,t,n){"use strict";var r=n(27),a=n.n(r);t.a=a.a.module("grafana.core",["ngRoute"])},,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";var r=n(158),a=new r.a;t.a=a},function(e,t,n){"use strict";var r=n(4),a=n.n(r),i=function(){function e(e){var t={datasources:{},panels:{},new_panel_title:"Panel Title",playlist_timespan:"1m",unsaved_changes_warning:!0,appSubUrl:""};a.a.extend(this,t,e)}return e}(),o=window.grafanaBootData||{settings:{}},s=o.settings;s.bootData=o;var l=new i(s);t.a=l},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";var r=function(){function e(){}return e.prototype.get=function(e){return window.localStorage[e]},e.prototype.set=function(e,t){window.localStorage[e]=t},e.prototype.getBool=function(e,t){return void 0===t||this.exists(e)?"true"===window.localStorage[e]:t},e.prototype.exists=function(e){return void 0!==window.localStorage[e]},e.prototype.delete=function(e){window.localStorage.removeItem(e)},e}(),a=new r;t.a=a},,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";n.d(t,"a",function(){return d});var r=n(23),a=n(4),i=n.n(a),o=n(2),s=n(77),l=function(){function e(){r.a.bootData.user&&i.a.extend(this,r.a.bootData.user)}return e}(),c=function(){function e(){this.sidemenuSmallBreakpoint=!1,this.sidemenu=s.a.getBool("grafana.sidemenu",!0),r.a.buildInfo||(r.a.buildInfo={}),r.a.bootData||(r.a.bootData={user:{},settings:{}}),this.version=r.a.buildInfo.version,this.user=new l,this.isSignedIn=this.user.isSignedIn,this.isGrafanaAdmin=this.user.isGrafanaAdmin,this.isEditor=this.hasRole("Editor")||this.hasRole("Admin"),this.hasEditPermissionInFolders=this.user.hasEditPermissionInFolders}return e.prototype.hasRole=function(e){return this.user.orgRole===e},e.prototype.isGrafanaVisible=function(){return!(void 0!==document.visibilityState&&"visible"!==document.visibilityState)},e.prototype.toggleSideMenu=function(){this.sidemenu=!this.sidemenu,s.a.set("grafana.sidemenu",this.sidemenu)},e}(),d=new c;o.a.factory("contextSrv",function(){return d})},,,,,,,,,,,function(e,t,n){"use strict";function r(e){return a=i.a.create({},s({},e,{navTree:o.a.bootData.navTree}))}n.d(t,"b",function(){return a}),t.a=r;var a,i=n(1205),o=n(23),s=this&&this.__assign||function(){return s=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++){t=arguments[n];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},s.apply(this,arguments)}},,,,,,,,,function(e,t,n){"use strict";n.d(t,"c",function(){return o}),n.d(t,"b",function(){return l}),n.d(t,"a",function(){return u});var r=n(28),a=n(1220),i=this&&this.__generator||function(e,t){function n(e){return function(t){return r([e,t])}}function r(n){if(a)throw new TypeError("Generator is already executing.");for(;l;)try{if(a=1,i&&(o=2&n[0]?i.return:n[0]?i.throw||((o=i.return)&&o.call(i),0):i.next)&&!(o=o.call(i,n[1])).done)return o;switch(i=0,o&&(n=[2&n[0],o.value]),n[0]){case 0:case 1:o=n;break;case 4:return l.label++,{value:n[1],done:!1};case 5:l.label++,i=n[1],n=[0];continue;case 7:n=l.ops.pop(),l.trys.pop();continue;default:if(o=l.trys,!(o=o.length>0&&o[o.length-1])&&(6===n[0]||2===n[0])){l=0;continue}if(3===n[0]&&(!o||n[1]>o[0]&&n[1]<o[3])){l.label=n[1];break}if(6===n[0]&&l.label<o[1]){l.label=o[1],o=n;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(n);break}o[2]&&l.ops.pop(),l.trys.pop();continue}n=t.call(e,l)}catch(e){n=[6,e],i=0}finally{a=o=0}if(5&n[0])throw n[1];return{value:n[0]?n[1]:void 0,done:!0}}var a,i,o,s,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return s={next:n(0),throw:n(1),return:n(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s},o=[{value:1,label:"View",description:"Can view dashboards."},{value:2,label:"Edit",description:"Can add, edit and delete dashboards."},{value:4,label:"Admin",description:"Can add/remove permissions and can add, edit and delete dashboards."}],s={GROUP:{value:"Group",text:"Team"},USER:{value:"User",text:"User"},VIEWER:{value:"Viewer",text:"Everyone With Viewer Role"},EDITOR:{value:"Editor",text:"Everyone With Editor Role"}},l=Object.keys(s).map(function(e){return s[e]}),c=l[0].value,d=r.types.model("NewPermissionsItem",{type:r.types.optional(r.types.enumeration(Object.keys(s).map(function(e){return s[e].value})),c),userId:r.types.maybe(r.types.number),userLogin:r.types.maybe(r.types.string),userAvatarUrl:r.types.maybe(r.types.string),teamAvatarUrl:r.types.maybe(r.types.string),teamId:r.types.maybe(r.types.number),team:r.types.maybe(r.types.string),permission:r.types.optional(r.types.number,1)}).views(function(e){return{isValid:function(){switch(e.type){case s.GROUP.value:return e.teamId&&e.team;case s.USER.value:return!!e.userId&&!!e.userLogin;case s.VIEWER.value:case s.EDITOR.value:return!0;default:return!1}}}}).actions(function(e){return{setUser:function(t,n,r){e.userId=t,e.userLogin=n,e.userAvatarUrl=r,e.teamId=null,e.team=null},setTeam:function(t,n,r){e.userId=null,e.userLogin=null,e.teamId=t,e.team=n,e.teamAvatarUrl=r},setPermission:function(t){e.permission=t}}}),u=r.types.model("PermissionsStore",{fetching:r.types.boolean,isFolder:r.types.maybe(r.types.boolean),dashboardId:r.types.maybe(r.types.number),items:r.types.optional(r.types.array(a.a),[]),originalItems:r.types.optional(r.types.array(a.a),[]),newT
1ype:r.types.optional(r.types.string,c),newItem:r.types.maybe(d),isAddPermissionsVisible:r.types.optional(r.types.boolean,!1),isInRoot:r.types.maybe(r.types.boolean)}).views(function(e){return{isValid:function(t){return!e.items.find(function(e){return h(e,t)})}}}).actions(function(e){var t=function(){e.newItem=d.create()};return{load:Object(r.flow)(function(t,n,a){var o,s,l;return i(this,function(i){switch(i.label){case 0:return o=Object(r.getEnv)(e).backendSrv,e.fetching=!0,e.isFolder=n,e.isInRoot=a,e.dashboardId=t,e.items.clear(),[4,o.get("/api/dashboards/id/"+t+"/permissions")];case 1:return s=i.sent(),l=f(s,t,n,a),e.items=l,e.originalItems=l,e.fetching=!1,[2]}})}),addStoreItem:Object(r.flow)(function(){var n,r,a,o,l;return i(this,function(i){switch(i.label){case 0:switch(n={type:e.newItem.type,permission:e.newItem.permission,dashboardId:e.dashboardId,team:void 0,teamId:void 0,userLogin:void 0,userId:void 0,userAvatarUrl:void 0,teamAvatarUrl:void 0,role:void 0},e.newItem.type){case s.GROUP.value:n.team=e.newItem.team,n.teamId=e.newItem.teamId,n.teamAvatarUrl=e.newItem.teamAvatarUrl;break;case s.USER.value:n.userLogin=e.newItem.userLogin,n.userId=e.newItem.userId,n.userAvatarUrl=e.newItem.userAvatarUrl;break;case s.VIEWER.value:case s.EDITOR.value:n.role=e.newItem.type;break;default:throw Error("Unknown type: "+e.newItem.type)}r=e.items.peek(),a=m(n,e.dashboardId,e.isFolder,e.isInRoot),r.push(a),i.label=1;case 1:return i.trys.push([1,3,,4]),[4,p(e,r)];case 2:return i.sent(),e.items.push(a),o=e.items.sort(function(e,t){return t.sortRank-e.sortRank||e.name.localeCompare(t.name)}),e.items=o,t(),[3,4];case 3:return l=i.sent(),[3,4];case 4:return[4,Promise.resolve()];case 5:return i.sent(),[2]}})}),removeStoreItem:Object(r.flow)(function(t){return i(this,function(n){switch(n.label){case 0:return e.items.splice(t,1),[4,p(e,e.items.peek())];case 1:return n.sent(),[2]}})}),updatePermissionOnIndex:Object(r.flow)(function(t,n,r){return i(this,function(a){switch(a.label){case 0:return e.items[t].updatePermission(n,r),[4,p(e,e.items.peek())];case 1:return a.sent(),[2]}})}),setNewType:function(t){e.newItem=d.create({type:t})},resetNewType:function(){t()},toggleAddPermissions:function(){e.isAddPermissionsVisible=!e.isAddPermissionsVisible},hideAddPermissions:function(){e.isAddPermissionsVisible=!1}}}),p=function(e,t){for(var n=Object(r.getEnv)(e).backendSrv,a=[],i=0,o=t;i<o.length;i++){var s=o[i];s.inherited||a.push({id:s.id,userId:s.userId,teamId:s.teamId,role:s.role,permission:s.permission})}return n.post("/api/dashboards/id/"+e.dashboardId+"/permissions",{items:a})},f=function(e,t,n,r){return e.map(function(e){return m(e,t,n,r)}).sort(function(e,t){return t.sortRank-e.sortRank||e.name.localeCompare(t.name)})},m=function(e,t,n,r){return e.sortRank=0,e.userId>0?(e.name=e.userLogin,e.sortRank=10):e.teamId>0?(e.name=e.team,e.sortRank=20):e.role&&(e.icon="fa fa-fw fa-street-view",e.name=e.role,e.sortRank=30,"Editor"===e.role&&(e.sortRank+=1)),e.inherited&&(e.sortRank+=100),e},h=function(e,t){return!e.inherited&&(e.role&&t.role&&e.role===t.role||e.userId&&t.userId&&e.userId===t.userId||e.teamId&&t.teamId&&e.teamId===t.teamId)}},function(e,t,n){"use strict";var r=n(3),a=n.n(r),i=n(39),o=n(29),s=n.n(o),l=n(22),c=n(70),d=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),u=this&&this.__decorate||function(e,t,n,r){var a,i=arguments.length,o=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(a=e[s])&&(o=(i<3?a(o):i>3?a(t,n,o):a(t,n))||o);return i>3&&o&&Object.defineProperty(t,n,o),o},p=function(e){var t=e.main,n=e.customCss,r=t.children.find(function(e){return!0===e.active}),i=function(e){var t=e.target,n=t.options[t.selectedIndex].value;
1l.a.emit("location-change",{href:n})};return a.a.createElement("div",{className:"gf-form-select-wrapper width-20 "+n},a.a.createElement("label",{className:"gf-form-select-icon "+r.icon,htmlFor:"page-header-select-nav"}),a.a.createElement("select",{className:"gf-select-nav gf-form-input",value:r.url,onChange:i,id:"page-header-select-nav"},t.children.map(function(e){return e.hideFromTabs?null:a.a.createElement("option",{key:e.url,value:e.url},e.text)})))},f=function(e){var t=e.main,n=e.customCss;return a.a.createElement("ul",{className:"gf-tabs "+n},t.children.map(function(e,t){if(e.hideFromTabs)return null;var n=s()({"gf-tabs-link":!0,active:e.active});return a.a.createElement("li",{className:"gf-tabs-item",key:e.url},a.a.createElement("a",{className:n,target:e.target,href:e.url},a.a.createElement("i",{className:e.icon}),e.text))}))},m=function(e){var t=e.main;return a.a.createElement("nav",null,a.a.createElement(p,{customCss:"page-header__select-nav",main:t}),a.a.createElement(f,{customCss:"page-header__tabs",main:t}))},h=function(e){function t(t){return e.call(this,t)||this}return d(t,e),t.prototype.shouldComponentUpdate=function(){return!0},t.prototype.renderTitle=function(e,t){if(!(e||t&&0!==t.length))return null;if(!t||0===t.length)return a.a.createElement("h1",{className:"page-header__title"},e);for(var n=[],r=0;r<t.length;r++){var i=t[r];i.url?n.push(a.a.createElement("a",{className:"text-link",key:r,href:i.url},i.title)):n.push(a.a.createElement("span",{key:r}," / ",i.title))}return n.push(a.a.createElement("span",{key:t.length+1}," / ",e)),a.a.createElement("h1",{className:"page-header__title"},n)},t.prototype.renderHeaderTitle=function(e){return a.a.createElement("div",{className:"page-header__inner"},a.a.createElement("span",{className:"page-header__logo"},e.icon&&a.a.createElement("i",{className:"page-header__icon "+e.icon}),e.img&&a.a.createElement("img",{className:"page-header__img",src:e.img})),a.a.createElement("div",{className:"page-header__info-block"},this.renderTitle(e.text,e.breadcrumbs),e.subTitle&&a.a.createElement("div",{className:"page-header__sub-title"},e.subTitle),e.subType&&a.a.createElement("div",{className:"page-header__stamps"},a.a.createElement("i",{className:e.subType.icon}),e.subType.text)))},t.prototype.render=function(){var e=this.props.model;if(!e)return null;var t=Object(c.toJS)(e.main);return a.a.createElement("div",{className:"page-header-canvas"},a.a.createElement("div",{className:"page-container"},a.a.createElement("div",{className:"page-header"},this.renderHeaderTitle(t),t.children&&a.a.createElement(m,{main:t}))))},t=u([i.observer],t)}(a.a.Component);t.a=h},,,,,,,,,,,,,,,,function(e,t,n){"use strict";function r(e){return l()(e).toHsl()}function a(e){return l()(e).toHexString()}n.d(t,"b",function(){return d}),n.d(t,"d",function(){return u}),n.d(t,"a",function(){return p}),n.d(t,"c",function(){return f}),n.d(t,"e",function(){return m}),n.d(t,"g",function(){return g});var i=n(4),o=n.n(i),s=n(202),l=n.n(s),c=4,d="rgba(0, 211, 255, 1)",u="rgba(11, 237, 50, 1)",p="rgba(237, 46, 24, 1)",f="rgba(150, 150, 150, 1)",m=.09,h=["#7EB26D","#EAB839","#6ED0E0","#EF843C","#E24D42","#1F78C1","#BA43A9","#705DA0","#508642","#CCA300","#447EBC","#C15C17","#890F02","#0A437C","#6D1F62","#584477","#B7DBAB","#F4D598","#70DBED","#F9BA8F","#F29191","#82B5D8","#E5A8E2","#AEA2E0","#629E51","#E5AC0E","#64B0C8","#E0752D","#BF1B00","#0A50A1","#962D82","#614D93","#9AC48A","#F2C96D","#65C5DB","#F9934E","#EA6460","#5195CE","#D683CE","#806EB7","#3F6833","#967302","#2F575E","#99440A","#58140C","#052B51","#511749","#3F2B5B","#E0F9D7","#FCEACA","#CFFAFF","#F9E2D2","#FCE2DE","#BADFF4","#F9D9F9","#DEDAF7"],g=function(e){var t=o.a.map(e,r),n=o.a.sortBy(t,["h"]);return n=o.a.chunk(n,c),n=o.a.map(n,function(e){return o.a.sortBy(e,"l")}),n=o.a.flattenDeep(o.a.zip.apply(o.a,n)),o.a.map(n,a)}(h);t.f=h},function(e,t,n){"use strict";e.exports=n(1314)},,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";n.d(t,"a",function(){return a});var r=n(513),a=(n.n(r),function(){function e(){this.emitter=new r.EventEmitter}return e.prototype.emit=function(e,t){this.emitter.emit(e,t)},e.prototype.on=function(e,t,n){var r=this;if(this.emitter.on(e,t),n)var a=n.$on("$destroy",function(){r.emitter.off(e,t),a()})},e.prototype.removeAllListeners=function(e){this.emitter.removeAllListeners(e)},e.prototype.off=function(e,t){this.emitter.off(e,t)},e}())},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";var r=(n(963),n(964),n(965),n(966),n(974),n(975),n(977),n(1014),n(1015),n(1016),n(1017),n(1018),n(1019)),a=(n.n(r),n(1173),n(1175),n(1195)),i=(n.n(a),n(1196),n(1200),n(1201),n(1202),n(1203),n(1204),n(1221),n(1222),n(1223),n(1224),n(1225),n(1226),n(158),n(1232),n(1233),n(1234),n(1235),n(1236),n(1237),n(1238),n(1247),n(1265),n(2)),o=n(22),s=(n(138),n(708),n(101)),l=(n(1266),n(1267),n(508)),c=(n(692),n(1268),n(1269),n(1270),n(1275),n(1276),n(1277),n(512)),d=n(1278),u=n(313);n(1307),n(1308),n(1309);n.d(t,"e",function(){return c.a}),n.d(t,"f",function(){return d.a}),n.d(t,"d",function(){return i.a}),n.d(t,"b",function(){return o.a}),n.d(t,"c",function(){return s.a}),n.d(t,"a",function(){return l.a}),n.d(t,"g",function(){return u.b})},function(e,t,n){"use strict";n.d(t,"a",function(){return a}),n.d(t,"c",function(){return i});var r=n(23),a=function(e){return decodeURIComponent(e).replace(new RegExp("<SLASH>","g"),"/")},i=function(e){return encodeURIComponent(e.replace(/\//g,"<SLASH>"))},o=function(e){var t=r.a.appSubUrl,n=t.endsWith("/")?1:0;return e.length>0&&0===e.indexOf(t)?e.slice(t.length-n):e};t.b={stripBaseFromUrl:o}},function(e,t,n){"use strict";(function(e){var n="undefined"!=typeof window&&window,r="undefined"!=typeof self&&"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,a=void 0!==e&&e,i=n||a||r;t.root=i,function(){if(!i)throw new Error("RxJS could not find any global context (window, self, global)")}()}).call(t,n(5))},function(e,t,n){"use strict";var r=n(77),a=n(4),i=n.n(a),o=n(23),s=function(){function e(){}return e.prototype.addDashboardImpression=function(e,t){r.a.set(this.lastUrlKey(),t);var n=this.impressionKey(),a=[];r.a.exists(n)&&(a=JSON.parse(r.a.get(n)),i.a.isArray(a)||(a=[])),a=a.filter(function(t){return e!==t}),a.unshift(e),a.length>50&&a.pop(),r.a.set(n,JSON.stringify(a))},e.prototype.getDashboardOpened=function(){var e=r.a.get(this.impressionKey())||"[]";return e=JSON.parse(e),e=i.a.filter(e,function(e){return i.a.isNumber(e)})},e.prototype.getLastDashUrl=function(){return r.a.get(this.lastUrlKey())},e.prototype.impressionKey=function(){return"dashboard_impressions-"+o.a.bootData.user.orgId},e.prototype.lastUrlKey=function(){return"last_dash_url-"+o.a.bootData.user.orgId},e}(),l=new s;t.a=l},,,function(e,t,n){"use strict";function r(e,t,n){a.a.directive(e,["reactDirective",function(e){return e(t,n)}])}t.a=r;var a=n(2)},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";function r(e){if(-1!==e.toLowerCase().indexOf("fire"))return{color:"#ea262e",borderColor:"#FF5961"};if(-1!==e.toLowerCase().indexOf("cold flow"))return{color:"#1fa2e5",borderColor:"#52d5ff"};var t=a(e.toLowerCase());return{color:i[Math.abs(t%i.length)],borderColor:o[Math.abs(t%o.length)]}}function a(e){for(var t=5381,n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n);return t}var i=["#E24D42","#1F78C1","#BA43A9","#705DA0","#466803","#508642","#447EBC","#C15C17","#890F02","#757575","#0A437C","#6D1F62","#584477","#629E51","#2F4F4F","#BF1B00","#806EB7","#8a2eb8","#699e00","#000000","#3F6833","#2F575E","#99440A","#E0752D","#0E4AB4","#58140C","#052B51","#511749","#3F2B5B"],o=["#FF7368","#459EE7","#E069CF","#9683C6","#6C8E29","#76AC68","#6AA4E2","#E7823D","#AF3528","#9B9B9B","#3069A2","#934588","#7E6A9D","#88C477","#557575","#E54126","#A694DD","#B054DE","#8FC426","#262626","#658E59","#557D84","#BF6A30","#FF9B53","#3470DA","#7E3A32","#2B5177","#773D6F","#655181"];t.a={getTagColorsFromName:r}},,function(e,t,n){"use strict";var r=n(77),a=n(4),i=n.n(a),o=n(23),s=function(){function e(){}return e.prototype.addExperimentImpression=function(e){if(!(isNaN(e)||e<=0)){var t=this.impressionKey(o.a),n=[];r.a.exists(t)&&(n=JSON.parse(r.a.get(t)),i.a.isArray(n)||(n=[])),n=n.filter(function(t){return e!==t}),n.unshift(e),n.length>50&&n.pop(),r.a.set(t,JSON.stringify(n))}},e.prototype.getExperimentOpened=function(){var e=r.a.get(this.impressionKey(o.a))||"[]";return e=JSON.parse(e),e=i.a.filter(e,function(e){return i.a.isNumber(e)})},e.prototype.impressionKey=function(e){return"experiment_impressions-"+e.bootData.user.orgId},e}(),l=new s;t.a=l},function(e,t,n){"use strict";var r=n(3),a=n.n(r),i=n(123),o=n(1292),s=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),l=function(e){function t(t){var n=e.call(this,t)||this;return n.state={},n}return s(t,e),t.prototype.render=function(){var e=this.props,t=e.optionsWithDesc,n=e.handlePicked,r=e.value,s=e.disabled,l=e.className;return a.a.createElement("div",{className:"permissions-picker"},a.a.createElement(i.default,{value:r,valueKey:"value",multi:!1,clearable:!1,labelKey:"label",options:t,onChange:n,className:"width-7 gf-form-input gf-form-input--form-dropdown "+(l||""),optionComponent:o.a,placeholder:"Choose",disabled:s}))},t}(r.Component);t.a=l},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";var r=n(4),a=n.n(r),i=n(0),o=n.n(i),s={};s.valueFormats={},s.regexEscape=function(e){return e.replace(/[\\^$*+?.()|[\]{}\/]/g,"\\$&")},s.round_interval=function(e){switch(!0){case e<15e-7:return 1e-6;case e<35e-7:return 2e-6;case e<75e-7:return 5e-6;case e<15e-6:return 1e-5;case e<35e-6:return 2e-5;case e<75e-6:return 5e-5;case e<15e-5:return 1e-4;case e<35e-5:return 2e-4;case e<75e-5:return 5e-4;case e<.0015:return.001;case e<.0035:return.002;case e<.0075:return.005;case e<.015:return.01;case e<.035:return.02;case e<.075:return.05;case e<.15:return.1;case e<.35:return.2;case e<.75:return.5;case e<1.5:return 1;case e<3.5:return 2;case e<7.5:return 5;case e<15:return 10;case e<35:return 20;case e<75:return 50;case e<150:return 100;case e<350:return 200;case e<750:return 500;case e<1500:return 1e3;case e<3500:return 2e3;case e<7500:return 5e3;case e<12500:return 1e4;case e<17500:return 15e3;case e<25e3:return 2e4;case e<45e3:return 3e4;case e<9e4:return 6e4;
1case e<21e4:return 12e4;case e<45e4:return 3e5;case e<75e4:return 6e5;case e<105e4:return 9e5;case e<15e5:return 12e5;case e<27e5:return 18e5;case e<54e5:return 36e5;case e<9e6:return 72e5;case e<162e5:return 108e5;case e<324e5:return 216e5;case e<864e5:return 432e5;case e<6048e5:return 864e5;case e<18144e5:return 6048e5;case e<36288e5:return 2592e6;default:return 31536e6}},s.secondsToHms=function(e){var t=Math.floor(e/31536e3);if(t)return t+"y";var n=Math.floor(e%31536e3/86400);if(n)return n+"d";var r=Math.floor(e%31536e3%86400/3600);if(r)return r+"h";var a=Math.floor(e%31536e3%86400%3600/60);if(a)return a+"m";var i=Math.floor(e%31536e3%86400%3600%60);if(i)return i+"s";var o=Math.floor(1e3*e);if(o)return o+"ms";var s=Math.floor(1e6*e);if(s)return s+"u";var l=Math.floor(1e9*e);return l?l+"ns":"1ns"},s.secondsToHhmmss=function(e){var t=[],n=Math.floor(e/3600),r=Math.floor(e%3600/60),a=Math.floor(e%3600%60);return n>9?t.push(""+n):t.push("0"+n),r>9?t.push(""+r):t.push("0"+r),a>9?t.push(""+a):t.push("0"+a),t.join(":")},s.to_percent=function(e,t){return Math.floor(e/t*1e4)/100+"%"},s.addslashes=function(e){return e=e.replace(/\\/g,"\\\\"),e=e.replace(/\'/g,"\\'"),e=e.replace(/\"/g,'\\"'),e=e.replace(/\0/g,"\\0")},s.interval_regex=/(\d+(?:\.\d+)?)(ms|[Mwdhmsy])/,s.intervals_in_seconds={y:31536e3,M:2592e3,w:604800,d:86400,h:3600,m:60,s:1,ms:.001},s.calculateInterval=function(e,t,n){var r,a=1e-6;return n&&(">"===n[0]&&(n=n.slice(1)),a=s.interval_to_ms(n)),r=s.round_interval((e.to.valueOf()-e.from.valueOf())/t),a>r&&(r=a),{intervalMs:r,interval:s.secondsToHms(r/1e3)}},s.describe_interval=function(e){var t=e.match(s.interval_regex);if(t&&a.a.has(s.intervals_in_seconds,t[2]))return{sec:s.intervals_in_seconds[t[2]],type:t[2],count:parseInt(t[1],10)};throw new Error('Invalid interval string, expecting a number followed by one of "Mwdhmsy"')},s.interval_to_ms=function(e){var t=s.describe_interval(e);return 1e3*t.sec*t.count},s.interval_to_seconds=function(e){var t=s.describe_interval(e);return t.sec*t.count},s.query_color_dot=function(e,t){return'<div class="icon-circle" style="'+["display:inline-block","color:"+e,"font-size:"+t+"px"].join(";")+'"></div>'},s.slugifyForUrl=function(e){return e.toLowerCase().replace(/[^\w ]+/g,"").replace(/ +/g,"-")},s.stringToJsRegex=function(e){if("/"!==e[0])return new RegExp("^"+e+"$");var t=e.match(new RegExp("^/(.*?)/(g?i?m?y?)$"));return new RegExp(t[1],t[2])},s.toFixed=function(e,t){if(null===e)return"";var n=t?Math.pow(10,Math.max(0,t)):1,r=String(Math.round(e*n)/n);if(-1!==r.indexOf("e")||0===e)return r;if(null!=t){var a=r.indexOf("."),i=-1===a?0:r.length-a-1;if(i<t)return(i?r:r+".")+String(n).substr(1,t-i)}return r},s.toFixedScaled=function(e,t,n,r,a){return null===n?s.toFixed(e,t)+a:s.toFixed(e,n+r)+a},s.roundValue=function(e,t){if(null===e)return null;var n=Math.pow(10,t),r=(n*e).toFixed(t);return Math.round(parseFloat(r))/n},s.formatBuilders={},s.formatBuilders.fixedUnit=function(e){return function(t,n){return null===t?"":s.toFixed(t,n)+" "+e}},s.formatBuilders.scaledUnits=function(e,t){return function(n,r,a){if(null===n)return"";for(var i=0,o=t.length;Math.abs(n)>=e;)if(i++,n/=e,i>=o)return"NA";return i>0&&null!==a&&(r=a+3*i),s.toFixed(n,r)+t[i]}},s.formatBuilders.decimalSIPrefix=function(e,t){var n=["n","µ","m","","k","M","G","T","P","E","Z","Y"];n=n.slice(3+(t||0));var r=n.map(function(t){return" "+t+e});return s.formatBuilders.scaledUnits(1e3,r)},s.formatBuilders.binarySIPrefix=function(e,t){var n=["","Ki","Mi","Gi","Ti","Pi","Ei","Zi","Yi"].slice(t),r=n.map(function(t){return" "+t+e});return s.formatBuilders.scaledUnits(1024,r)},s.formatBuilders.currency=function(e){var t=["","K","M","B","T"],n=s.formatBuilders.scaledUnits(1e3,t);return function(t,r,a){if(null===t)return"";var i=n(t,r,a);return e+i}},s.formatBuilders.simpleCountUnit=function(e){var t=["","K","M","B","T"],n=s.formatBuilders.scaledUnits(1e3,t);return function(t,r,a){return null===t?"":n(t,r,a)+" "+e}},s.valueFormats.none=s.toFixed,s.valueFormats.short=s.formatBuilders.scaledUnits(1e3,[""," K"," Mil"," Bil"," Tri"," Quadr"," Quint"," Sext"," Sept"]),s.valueFormats.dB=s.formatBuilders.fixedUnit("dB"),s.valueFormats.percent=function(e,t){return null===e?"":s.toFixed(e,t)+"%"},s.valueFormats.percentunit=function(e,t){return null===e?"":s.toFixed(100*e,t)+"%"},s.valueFormats.hex=function(e,t){return null==e?"":parseFloat(s.toFixed(e,t)).toString(16).toUpperCase()},s.valueFormats.hex0x=function(e,t){if(null==e)return"";var n=s.valueFormats.hex(e,t);return"-"===n.substring(0,1)?"-0x"+n.substring(1):"0x"+n},s.valueFormats.sci=function(e,t){return e.toExponential(t)}
1,s.valueFormats.locale=function(e,t){return e.toLocaleString(void 0,{maximumFractionDigits:t})},s.valueFormats.currencyUSD=s.formatBuilders.currency("$"),s.valueFormats.currencyGBP=s.formatBuilders.currency("£"),s.valueFormats.currencyEUR=s.formatBuilders.currency("â¬"),s.valueFormats.currencyJPY=s.formatBuilders.currency("Â¥"),s.valueFormats.currencyRUB=s.formatBuilders.currency("â½"),s.valueFormats.currencyUAH=s.formatBuilders.currency("â´"),s.valueFormats.currencyBRL=s.formatBuilders.currency("R$"),s.valueFormats.currencyDKK=s.formatBuilders.currency("kr"),s.valueFormats.currencyISK=s.formatBuilders.currency("kr"),s.valueFormats.currencyNOK=s.formatBuilders.currency("kr"),s.valueFormats.currencySEK=s.formatBuilders.currency("kr"),s.valueFormats.currencyCZK=s.formatBuilders.currency("czk"),s.valueFormats.currencyCHF=s.formatBuilders.currency("CHF"),s.valueFormats.bits=s.formatBuilders.binarySIPrefix("b"),s.valueFormats.bytes=s.formatBuilders.binarySIPrefix("B"),s.valueFormats.kbytes=s.formatBuilders.binarySIPrefix("B",1),s.valueFormats.mbytes=s.formatBuilders.binarySIPrefix("B",2),s.valueFormats.gbytes=s.formatBuilders.binarySIPrefix("B",3),s.valueFormats.decbits=s.formatBuilders.decimalSIPrefix("b"),s.valueFormats.decbytes=s.formatBuilders.decimalSIPrefix("B"),s.valueFormats.deckbytes=s.formatBuilders.decimalSIPrefix("B",1),s.valueFormats.decmbytes=s.formatBuilders.decimalSIPrefix("B",2),s.valueFormats.decgbytes=s.formatBuilders.decimalSIPrefix("B",3),s.valueFormats.pps=s.formatBuilders.decimalSIPrefix("pps"),s.valueFormats.bps=s.formatBuilders.decimalSIPrefix("bps"),s.valueFormats.Bps=s.formatBuilders.decimalSIPrefix("B/s"),s.valueFormats.KBs=s.formatBuilders.decimalSIPrefix("Bs",1),s.valueFormats.Kbits=s.formatBuilders.decimalSIPrefix("bps",1),s.valueFormats.MBs=s.formatBuilders.decimalSIPrefix("Bs",2),s.valueFormats.Mbits=s.formatBuilders.decimalSIPrefix("bps",2),s.valueFormats.GBs=s.formatBuilders.decimalSIPrefix("Bs",3),s.valueFormats.Gbits=s.formatBuilders.decimalSIPrefix("bps",3),s.valueFormats.Hs=s.formatBuilders.decimalSIPrefix("H/s"),s.valueFormats.KHs=s.formatBuilders.decimalSIPrefix("H/s",1),s.valueFormats.MHs=s.formatBuilders.decimalSIPrefix("H/s",2),s.valueFormats.GHs=s.formatBuilders.decimalSIPrefix("H/s",3),s.valueFormats.THs=s.formatBuilders.decimalSIPrefix("H/s",4),s.valueFormats.PHs=s.formatBuilders.decimalSIPrefix("H/s",5),s.valueFormats.EHs=s.formatBuilders.decimalSIPrefix("H/s",6),s.valueFormats.ops=s.formatBuilders.simpleCountUnit("ops"),s.valueFormats.reqps=s.formatBuilders.simpleCountUnit("reqps"),s.valueFormats.rps=s.formatBuilders.simpleCountUnit("rps"),s.valueFormats.wps=s.formatBuilders.simpleCountUnit("wps"),s.valueFormats.iops=s.formatBuilders.simpleCountUnit("iops"),s.valueFormats.opm=s.formatBuilders.simpleCountUnit("opm"),s.valueFormats.rpm=s.formatBuilders.simpleCountUnit("rpm"),s.valueFormats.wpm=s.formatBuilders.simpleCountUnit("wpm"),s.valueFormats.watt=s.formatBuilders.decimalSIPrefix("W"),s.valueFormats.kwatt=s.formatBuilders.decimalSIPrefix("W",1),s.valueFormats.mwatt=s.formatBuilders.decimalSIPrefix("W",-1),s.valueFormats.kwattm=s.formatBuilders.decimalSIPrefix("W/Min",1),s.valueFormats.Wm2=s.formatBuilders.fixedUnit("W/m2"),s.valueFormats.voltamp=s.formatBuilders.decimalSIPrefix("VA"),s.valueFormats.kvoltamp=s.formatBuilders.decimalSIPrefix("VA",1),s.valueFormats.voltampreact=s.formatBuilders.decimalSIPrefix("var"),s.valueFormats.kvoltampreact=s.formatBuilders.decimalSIPrefix("var",1),s.valueFormats.watth=s.formatBuilders.decimalSIPrefix("Wh"),s.valueFormats.kwatth=s.formatBuilders.decimalSIPrefix("Wh",1),s.valueFormats.joule=s.formatBuilders.decimalSIPrefix("J"),s.valueFormats.ev=s.formatBuilders.decimalSIPrefix("eV"),s.valueFormats.amp=s.formatBuilders.decimalSIPrefix("A"),s.valueFormats.kamp=s.formatBuilders.decimalSIPrefix("A",1),s.valueFormats.mamp=s.formatBuilders.decimalSIPrefix("A",-1),s.valueFormats.volt=s.formatBuilders.decimalSIPrefix("V"),s.valueFormats.kvolt=s.formatBuilders.decimalSIPrefix("V",1),s.valueFormats.mvolt=s.formatBuilders.decimalSIPrefix("V",-1),s.valueFormats.dBm=s.formatBuilders.decimalSIPrefix("dBm"),s.valueFormats.ohm=s.formatBuilders.decimalSIPrefix("Ω"),s.valueFormats.lumens=s.formatBuilders.decimalSIPrefix("Lm"),s.valueFormats.celsius=s.formatBuilders.fixedUnit("°C"),s.valueFormats.farenheit=s.formatBuilders.fixedUnit("°F"),s.valueFormats.kelvin=s.formatBuilders.fixedUnit("K"),s.valueFormats.humidity=s.formatBuilders.fixedUnit("%H"),s.valueFormats.pressurebar=s.formatBuilders.decimalSIPrefix("bar"),s.valueFormats.pressurembar=s.formatBuilders.decimalSIPrefix("bar",-1),s.valueFormats.pressurekbar=s.formatBuilders.decimalSIPrefix("bar",1),s.valueFormats.pressurehpa=s.formatBuilders.fixedUnit("hPa"),s.valueFormats.pressurekpa=s.formatBuilders.fixedUnit("kPa"),s.valueFormats.pressurehg=s.formatBuilders.fixedUnit('"Hg'),s.valueFormats.pressurepsi=s.formatBuilders.scaledUnits(1e3,[" psi"," ksi"," Mpsi"]),s.valueFormats.forceNm=s.formatBuilders.decimalSIPrefix("Nm"),s.valueFormats.forcekNm
1=s.formatBuilders.decimalSIPrefix("Nm",1),s.valueFormats.forceN=s.formatBuilders.decimalSIPrefix("N"),s.valueFormats.forcekN=s.formatBuilders.decimalSIPrefix("N",1),s.valueFormats.lengthm=s.formatBuilders.decimalSIPrefix("m"),s.valueFormats.lengthmm=s.formatBuilders.decimalSIPrefix("m",-1),s.valueFormats.lengthkm=s.formatBuilders.decimalSIPrefix("m",1),s.valueFormats.lengthmi=s.formatBuilders.fixedUnit("mi"),s.valueFormats.lengthft=s.formatBuilders.fixedUnit("ft"),s.valueFormats.areaM2=s.formatBuilders.fixedUnit("m²"),s.valueFormats.areaF2=s.formatBuilders.fixedUnit("ft²"),s.valueFormats.areaMI2=s.formatBuilders.fixedUnit("mi²"),s.valueFormats.massmg=s.formatBuilders.decimalSIPrefix("g",-1),s.valueFormats.massg=s.formatBuilders.decimalSIPrefix("g"),s.valueFormats.masskg=s.formatBuilders.decimalSIPrefix("g",1),s.valueFormats.masst=s.formatBuilders.fixedUnit("t"),s.valueFormats.velocityms=s.formatBuilders.fixedUnit("m/s"),s.valueFormats.velocitykmh=s.formatBuilders.fixedUnit("km/h"),s.valueFormats.velocitymph=s.formatBuilders.fixedUnit("mph"),s.valueFormats.velocityknot=s.formatBuilders.fixedUnit("kn"),s.valueFormats.accMS2=s.formatBuilders.fixedUnit("m/sec²"),s.valueFormats.accFS2=s.formatBuilders.fixedUnit("f/sec²"),s.valueFormats.accG=s.formatBuilders.fixedUnit("g"),s.valueFormats.litre=s.formatBuilders.decimalSIPrefix("L"),s.valueFormats.mlitre=s.formatBuilders.decimalSIPrefix("L",-1),s.valueFormats.m3=s.formatBuilders.fixedUnit("m3"),s.valueFormats.Nm3=s.formatBuilders.fixedUnit("Nm3"),s.valueFormats.dm3=s.formatBuilders.fixedUnit("dm3"),s.valueFormats.gallons=s.formatBuilders.fixedUnit("gal"),s.valueFormats.flowgpm=s.formatBuilders.fixedUnit("gpm"),s.valueFormats.flowcms=s.formatBuilders.fixedUnit("cms"),s.valueFormats.flowcfs=s.formatBuilders.fixedUnit("cfs"),s.valueFormats.flowcfm=s.formatBuilders.fixedUnit("cfm"),s.valueFormats.litreh=s.formatBuilders.fixedUnit("l/h"),s.valueFormats.flowlpm=s.formatBuilders.decimalSIPrefix("L"),s.valueFormats.flowmlpm=s.formatBuilders.decimalSIPrefix("L",-1),s.valueFormats.degree=s.formatBuilders.fixedUnit("°"),s.valueFormats.radian=s.formatBuilders.fixedUnit("rad"),s.valueFormats.grad=s.formatBuilders.fixedUnit("grad"),s.valueFormats.radbq=s.formatBuilders.decimalSIPrefix("Bq"),s.valueFormats.radci=s.formatBuilders.decimalSIPrefix("Ci"),s.valueFormats.radgy=s.formatBuilders.decimalSIPrefix("Gy"),s.valueFormats.radrad=s.formatBuilders.decimalSIPrefix("rad"),s.valueFormats.radsv=s.formatBuilders.decimalSIPrefix("Sv"),s.valueFormats.radrem=s.formatBuilders.decimalSIPrefix("rem"),s.valueFormats.radexpckg=s.formatBuilders.decimalSIPrefix("C/kg"),s.valueFormats.radr=s.formatBuilders.decimalSIPrefix("R"),s.valueFormats.radsvh=s.formatBuilders.decimalSIPrefix("Sv/h"),s.valueFormats.ppm=s.formatBuilders.fixedUnit("ppm"),s.valueFormats.conppb=s.formatBuilders.fixedUnit("ppb"),s.valueFormats.conngm3=s.formatBuilders.fixedUnit("ng/m3"),s.valueFormats.conngNm3=s.formatBuilders.fixedUnit("ng/Nm3"),s.valueFormats.conμgm3=s.formatBuilders.fixedUnit("μg/m3"),s.valueFormats.conμgNm3=s.formatBuilders.fixedUnit("μg/Nm3"),s.valueFormats.conmgm3=s.formatBuilders.fixedUnit("mg/m3"),s.valueFormats.conmgNm3=s.formatBuilders.fixedUnit("mg/Nm3"),s.valueFormats.congm3=s.formatBuilders.fixedUnit("g/m3"),s.valueFormats.congNm3=s.formatBuilders.fixedUnit("g/Nm3"),s.valueFormats.hertz=s.formatBuilders.decimalSIPrefix("Hz"),s.valueFormats.ms=function(e,t,n){return null===e?"":Math.abs(e)<1e3?s.toFixed(e,t)+" ms":Math.abs(e)<6e4?s.toFixedScaled(e/1e3,t,n,3," s"):Math.abs(e)<36e5?s.toFixedScaled(e/6e4,t,n,5," min"):Math.abs(e)<864e5?s.toFixedScaled(e/36e5,t,n,7," hour"):Math.abs(e)<31536e6?s.toFixedScaled(e/864e5,t,n,8," day"):s.toFixedScaled(e/31536e6,t,n,10," year")},s.valueFormats.s=function(e,t,n){return null===e?"":Math.abs(e)<1e-6?s.toFixedScaled(1e9*e,t,n-t,-9," ns"):Math.abs(e)<.001?s.toFixedScaled(1e6*e,t,n-t,-6," µs"):Math.abs(e)<1?s.toFixedScaled(1e3*e,t,n-t,-3," ms"):Math.abs(e)<60?s.toFixed(e,t)+" s":Math.abs(e)<3600?s.toFixedScaled(e/60,t,n,1," min"):Math.abs(e)<86400?s.toFixedScaled(e/3600,t,n,4," hour"):Math.abs(e)<604800?s.toFixedScaled(e/86400,t,n,5," day"):Math.abs(e)<31536e3?s.toFixedScaled(e/604800,t,n,6," week"):s.toFixedScaled(e/31556900,t,n,7," year")},s.valueFormats["µs"]=function(e,t,n){return null===e?"":Math.abs(e)<1e3?s.toFixed(e,t)+" µs":Math.abs(e)<1e6?s.toFixedScaled(e/1e3,t,n,3," ms"):s.toFixedScaled(e/1e6,t,n,6," s")},s.valueFormats.ns=function(e,t,n){return null===e?"":Math.abs(e)<1e3?s.toFixed(e,t)+" ns":Math.abs(e)<1e6?s.toFixedScaled(e/1e3,t,n,3," µs"):Math.abs(e)<1e9?s.toFixedScaled(e/1e6,t,n,6," ms"):Math.abs(e)<6e10?s.toFixedScaled(e/1e9,t,n,9," s"):s.toFixedScaled(e/6e10,t,n,12," min")},s.valueFormats.m=function(e,t,n){return null===e?"":Math.abs(e)<60?s.toFixed(e,t)+" min":Math.abs(e)<1440?s.toFixedScaled(e/60,t,n,2," hour"):Math.abs(e)<10080?s.toFixedScaled(e/1440,t,n,3," day"):Math.abs(e)<604800?s.toFixedScaled(e/10080,t,n,4," week"):s.toFixedScaled(e/525948,t,n,5," year")},s.valueFormats.h=function(e,t,n){return null===e?"":Math.abs(e)<24?s.toFixed(e,t)+" hour":Math.abs(e)<168?s.toFixedScaled(e/24,t,n,2," day"):Math.abs(e)<8760?s.toFixedScaled(e/168,t,n,3," week"):s.toFixedScaled(e/8760,t,n,4," year")},s.valueFormats.d=function(e,t,n){return null===e?"":Math.abs(e)<7?s.toFixed(e,t)+" day":Math.abs(e)<365?s.toFixedScaled(e/7,t,n,2," week"):s.toFixedScaled(e/365,t,n,3," year")},s.toDuration=function(e,t,n){if(null===e)return"";if(0===e)return"0 "+n+"s";if(e<0)return s.toDuration(-e,t,n)+" ago";var r=[{short:"y",long:"year"},{short:"M",long:"month"},{short:"w",long:"week"},{short:"d",long:"day"},{short:"h",long:"hour"},{short:"m",long:"minute"},{short:"s",long:"second"},{short:"ms",long:"millisecond"}];e*=1e3*s.intervals_in_seconds[r.find(function(e){return e.long===n}).short];for(var a=[],i=!1,o=0;o<r.length&&t>=0;o++){var l=1e3*s.intervals_in_seconds[r[o].short],c=e/l;if(c>=1||i){i=!0;var d=Math.floor(c),u=r[o].long+(1!==d?"s":"");a.push(d+" "+u),e%=l,t--}}return a.join(", ")},s.valueFormats.dtdurationms=function(e,t){return s.toDuration(e,t,"millisecond")},s.valueFormats.dtdurations=function(e,t){return s.toDuration(e,t,"second")},s.valueFormats.dthms=function(e,t){return s.secondsToHhmmss(e)},s.valueFormats.timeticks=function(e,t,n){return s.valueFormats.s(e/100,t,n)},s.valueFormats.dateTimeAsIso=function(e,t){var n=t?o.a.utc(e):o()(e);return o()().isSame(e,"day")?n.format("HH:mm:ss"):n.format("YYYY-MM-DD HH:mm:ss")},s.valueFormats.dateTimeAsUS=function(e,t){var n=t?o.a.utc(e):o()(e);return o()().isSame(e,"day")?n.format("h:mm:ss a"):n.format("MM/DD/YYYY h:mm:ss a")},s.valueFormats.dateTimeFromNow=function(e,t){return(t?o.a.utc(e):o()(e)).fromNow()},s.getUnitFormats=function(){return[{text:"none",submenu:[{text:"none",value:"none"},{text:"short",value:"short"},{text:"percent (0-100)",value:"percent"},{text:"percent (0.0-1.0)",value:"percentunit"},{text:"Humidity (%H)",value:"humidity"},{text:"decibel",value:"dB"},{text:"hexadecimal (0x)",value:"hex0x"},{text:"hexadecimal",value:"hex"},{text:"scientific notation",value:"sci"},{text:"locale format",value:"locale"}]},{text:"currency",submenu:[{text:"Dollars ($)",value:"currencyUSD"},{text:"Pounds (£)",value:"currencyGBP"},{text:"Euro (â¬)",value:"currencyEUR"},{text:"Yen (Â¥)",value:"currencyJPY"},{text:"Rubles (â½)",value:"currencyRUB"},{text:"Hryvnias (â´)",value:"currencyUAH"},{text:"Real (R$)",value:"currencyBRL"},{text:"Danish Krone (kr)",value:"currencyDKK"},{text:"Icelandic Króna (kr)",value:"currencyISK"},{text:"Norwegian Krone (kr)",value:"currencyNOK"},{text:"Swedish Krona (kr)",value:"currencySEK"}
1,{text:"Czech koruna (czk)",value:"currencyCZK"},{text:"Swiss franc (CHF)",value:"currencyCHF"}]},{text:"time",submenu:[{text:"Hertz (1/s)",value:"hertz"},{text:"nanoseconds (ns)",value:"ns"},{text:"microseconds (µs)",value:"µs"},{text:"milliseconds (ms)",value:"ms"},{text:"seconds (s)",value:"s"},{text:"minutes (m)",value:"m"},{text:"hours (h)",value:"h"},{text:"days (d)",value:"d"},{text:"duration (ms)",value:"dtdurationms"},{text:"duration (s)",value:"dtdurations"},{text:"duration (hh:mm:ss)",value:"dthms"},{text:"Timeticks (s/100)",value:"timeticks"}]},{text:"date & time",submenu:[{text:"YYYY-MM-DD HH:mm:ss",value:"dateTimeAsIso"},{text:"DD/MM/YYYY h:mm:ss a",value:"dateTimeAsUS"},{text:"From Now",value:"dateTimeFromNow"}]},{text:"data (IEC)",submenu:[{text:"bits",value:"bits"},{text:"bytes",value:"bytes"},{text:"kibibytes",value:"kbytes"},{text:"mebibytes",value:"mbytes"},{text:"gibibytes",value:"gbytes"}]},{text:"data (Metric)",submenu:[{text:"bits",value:"decbits"},{text:"bytes",value:"decbytes"},{text:"kilobytes",value:"deckbytes"},{text:"megabytes",value:"decmbytes"},{text:"gigabytes",value:"decgbytes"}]},{text:"data rate",submenu:[{text:"packets/sec",value:"pps"},{text:"bits/sec",value:"bps"},{text:"bytes/sec",value:"Bps"},{text:"kilobits/sec",value:"Kbits"},{text:"kilobytes/sec",value:"KBs"},{text:"megabits/sec",value:"Mbits"},{text:"megabytes/sec",value:"MBs"},{text:"gigabytes/sec",value:"GBs"},{text:"gigabits/sec",value:"Gbits"}]},{text:"hash rate",submenu:[{text:"hashes/sec",value:"Hs"},{text:"kilohashes/sec",value:"KHs"},{text:"megahashes/sec",value:"MHs"},{text:"gigahashes/sec",value:"GHs"},{text:"terahashes/sec",value:"THs"},{text:"petahashes/sec",value:"PHs"},{text:"exahashes/sec",value:"EHs"}]},{text:"throughput",submenu:[{text:"ops/sec (ops)",value:"ops"},{text:"requets/sec (rps)",value:"reqps"},{text:"reads/sec (rps)",value:"rps"},{text:"writes/sec (wps)",value:"wps"},{text:"I/O ops/sec (iops)",value:"iops"},{text:"ops/min (opm)",value:"opm"},{text:"reads/min (rpm)",value:"rpm"},{text:"writes/min (wpm)",value:"wpm"}]},{text:"length",submenu:[{text:"millimetre (mm)",value:"lengthmm"},{text:"meter (m)",value:"lengthm"},{text:"feet (ft)",value:"lengthft"},{text:"kilometer (km)",value:"lengthkm"},{text:"mile (mi)",value:"lengthmi"}]},{text:"area",submenu:[{text:"Square Meters (m²)",value:"areaM2"},{text:"Square Feet (ft²)",value:"areaF2"},{text:"Square Miles (mi²)",value:"areaMI2"}]},{text:"mass",submenu:[{text:"milligram (mg)",value:"massmg"},{text:"gram (g)",value:"massg"},{text:"kilogram (kg)",value:"masskg"},{text:"metric ton (t)",value:"masst"}]},{text:"velocity",submenu:[{text:"metres/second (m/s)",value:"velocityms"},{text:"kilometers/hour (km/h)",value:"velocitykmh"},{text:"miles/hour (mph)",value:"velocitymph"},{text:"knot (kn)",value:"velocityknot"}]},{text:"volume",submenu:[{text:"millilitre (mL)",value:"mlitre"},{text:"litre (L)",value:"litre"},{text:"cubic metre",value:"m3"},{text:"Normal cubic metre",value:"Nm3"},{text:"cubic decimetre",value:"dm3"},{text:"gallons",value:"gallons"}]},{text:"energy",submenu:[{text:"Watt (W)",value:"watt"},{text:"Kilowatt (kW)",value:"kwatt"},{text:"Milliwatt (mW)",value:"mwatt"},{text:"Watt per square metre (W/m2)",value:"Wm2"},{text:"Volt-ampere (VA)",value:"voltamp"},{text:"Kilovolt-ampere (kVA)",value:"kvoltamp"},{text:"Volt-ampere reactive (var)",value:"voltampreact"},{text:"Kilovolt-ampere reactive (kvar)",value:"kvoltampreact"},{text:"Watt-hour (Wh)",value:"watth"},{text:"Kilowatt-hour (kWh)",value:"kwatth"},{text:"Kilowatt-min (kWm)",value:"kwattm"},{text:"Joule (J)",value:"joule"},{text:"Electron volt (eV)",value:"ev"},{text:"Ampere (A)",value:"amp"},{text:"Kiloampere (kA)",value:"kamp"},{text:"Milliampere (mA)",value:"mamp"},{text:"Volt (V)",value:"volt"},{text:"Kilovolt (kV)",value:"kvolt"},{text:"Millivolt (mV)",value:"mvolt"},{text:"Decibel-milliwatt (dBm)",value:"dBm"},{text:"Ohm (Ω)",value:"ohm"},{text:"Lumens (Lm)",value:"lumens"}]},{text:"temperature",submenu:[{text:"Celsius (°C)",value:"celsius"},{text:"Farenheit (°F)",value:"farenheit"},{text:"Kelvin (K)",value:"kelvin"}]},{text:"pressure",submenu:[{text:"Millibars",value:"pressurembar"},{text:"Bars",value:"pressurebar"},{text:"Kilobars",value:"pressurekbar"}
1,{text:"Hectopascals",value:"pressurehpa"},{text:"Kilopascals",value:"pressurekpa"},{text:"Inches of mercury",value:"pressurehg"},{text:"PSI",value:"pressurepsi"}]},{text:"force",submenu:[{text:"Newton-meters (Nm)",value:"forceNm"},{text:"Kilonewton-meters (kNm)",value:"forcekNm"},{text:"Newtons (N)",value:"forceN"},{text:"Kilonewtons (kN)",value:"forcekN"}]},{text:"flow",submenu:[{text:"Gallons/min (gpm)",value:"flowgpm"},{text:"Cubic meters/sec (cms)",value:"flowcms"},{text:"Cubic feet/sec (cfs)",value:"flowcfs"},{text:"Cubic feet/min (cfm)",value:"flowcfm"},{text:"Litre/hour",value:"litreh"},{text:"Litre/min (l/min)",value:"flowlpm"},{text:"milliLitre/min (mL/min)",value:"flowmlpm"}]},{text:"angle",submenu:[{text:"Degrees (°)",value:"degree"},{text:"Radians",value:"radian"},{text:"Gradian",value:"grad"}]},{text:"acceleration",submenu:[{text:"Meters/sec²",value:"accMS2"},{text:"Feet/sec²",value:"accFS2"},{text:"G unit",value:"accG"}]},{text:"radiation",submenu:[{text:"Becquerel (Bq)",value:"radbq"},{text:"curie (Ci)",value:"radci"},{text:"Gray (Gy)",value:"radgy"},{text:"rad",value:"radrad"},{text:"Sievert (Sv)",value:"radsv"},{text:"rem",value:"radrem"},{text:"Exposure (C/kg)",value:"radexpckg"},{text:"roentgen (R)",value:"radr"},{text:"Sievert/hour (Sv/h)",value:"radsvh"}]},{text:"concentration",submenu:[{text:"parts-per-million (ppm)",value:"ppm"},{text:"parts-per-billion (ppb)",value:"conppb"},{text:"nanogram per cubic metre (ng/m3)",value:"conngm3"},{text:"nanogram per normal cubic metre (ng/Nm3)",value:"conngNm3"},{text:"microgram per cubic metre (μg/m3)",value:"conμgm3"},{text:"microgram per normal cubic metre (μg/Nm3)",value:"conμgNm3"},{text:"milligram per cubic metre (mg/m3)",value:"conmgm3"},{text:"milligram per normal cubic metre (mg/Nm3)",value:"conmgNm3"},{text:"gram per cubic metre (g/m3)",value:"congm3"},{text:"gram per normal cubic metre (g/Nm3)",value:"congNm3"}]}]},t.a=s},function(e,t,n){"use strict";function r(e,t){if(!e)return!1;if("/"===e[0]){var n=s.a.stringToJsRegex(e);return null!=t.match(n)}return e===t}function a(e){return 0===e?.001:e/10}function i(e,t,n){for(var r=0;r<e.length;r++){var a=e[r],i=t.yaxes,c=a.yaxis||1,u=i[c-1],p=s.a.valueFormats[u.format];if(d.a.isNumber(t.decimals))a.updateLegendValues(p,t.decimals,null);else if(d.a.isNumber(u.decimals))a.updateLegendValues(p,u.decimals+1,null);else{var f=o(e),m=f.datamin,h=f.datamax,g=Object(l.getFlotTickDecimals)(m,h,u,n),b=g.tickDecimals,v=g.scaledDecimals;b=(b||-1)+1,a.updateLegendValues(p,b,v+2)}}}function o(e){for(var t=null,n=null,r=0,a=e;r<a.length;r++){var i=a[r];(null===n||n<i.stats.max)&&(n=i.stats.max),(null===t||t>i.stats.min)&&(t=i.stats.min)}return{datamin:t,datamax:n}}t.b=i;var s=n(312),l=n(696),c=n(4),d=n.n(c),u=function(){function e(e){this.datapoints=e.datapoints,this.label=e.alias,this.id=e.alias,this.alias=e.alias,this.aliasEscaped=d.a.escape(e.alias),this.color=e.color,this.bars={fillColor:e.color},this.valueFormater=s.a.valueFormats.none,this.stats={},this.legend=!0,this.unit=e.unit,this.hasMsResolution=this.isMsResolutionNeeded()}return e.prototype.applySeriesOverrides=function(e){this.lines={},this.dashes={dashLength:[]},this.points={},this.yaxis=1,this.zindex=0,this.nullPointMode=null,delete this.stack,delete this.bars.show;for(var t=0;t<e.length;t++){var n=e[t];r(n.alias,this.alias)&&(void 0!==n.lines&&(this.lines.show=n.lines),void 0!==n.dashes&&(this.dashes.show=n.dashes,this.lines.lineWidth=0),void 0!==n.points&&(this.points.show=n.points),void 0!==n.bars&&(this.bars.show=n.bars),void 0!==n.fill&&(this.lines.fill=a(n.fill)),void 0!==n.stack&&(this.stack=n.stack),void 0!==n.linewidth&&(this.lines.lineWidth=this.dashes.show?0:n.linewidth,this.dashes.lineWidth=n.linewidth),void 0!==n.dashLength&&(this.dashes.dashLength[0]=n.dashLength),void 0!==n.spaceLength&&(this.dashes.dashLength[1]=n.spaceLength),void 0!==n.nullPointMode&&(this.nullPointMode=n.nullPointMode),void 0!==n.pointradius&&(this.points.radius=n.pointradius),void 0!==n.steppedLine&&(this.lines.steps=n.steppedLine),void 0!==n.zindex&&(this.zindex=n.zindex),void 0!==n.fillBelowTo&&(this.fillBelowTo=n.fillBelowTo),void 0!==n.color&&this.setColor(n.color),void 0!==n.transform&&(this.transform=n.transform),void 0!==n.legend&&(this.legend=n.legend),void 0!==n.yaxis&&(this.yaxis=n.yaxis))}},e.prototype.getFlotPairs=function(e){var t=[];this.stats.total=0,this.stats.max=-Number.MAX_VALUE,this.stats.min=Number.MAX_VALUE,this.stats.logmin=Number.MAX_VALUE,this.stats.avg=null,this.stats.current=null,this.stats.first=null,this.stats.delta=0,this.stats.diff=null,this.stats.range=null,this.stats.timeStep=Number.MAX_VALUE,this.allIsNull=!0,this.allIsZero=!0;for(var n,r,a,i="connected"===e,o="null as zero"===e,s=0,l=0,c=!0,u=0;u<this.datapoints.length;u++){if(r=this.datapoints[u][0],n=this.datapoints[u][1],void 0!==a){var p=n-a;p<this.stats.timeStep&&(this.stats.timeStep=p)}if(a=n,null===r){if(i)continue;o&&(r=0)}null!==r&&(d.a.isNumber(r)&&(this.stats.total+=r,this.allIsNull=!1,s++),r>this.stats.max&&(this.stats.max=r),r<this.stats.min&&(this.stats.min=r),null===this.stats.first?this.stats.first=r:l>r?(c=!1,u===this.datapoints.length-1&&(this.stats.delta+=r)):(this.stats.delta+=c?r-l:r,c=!0),l=r,r<this.stats.logmin&&r>0&&(this.stats.logmin=r),0!==r&&(this.allIsZero=!1)),t.push([n,r])}return this.stats.max===-Number.MAX_VALUE&&(this.stats.max=null),this.stats.min===Number.MAX_VALUE&&(this.stats.min=null),t.length&&!this.allIsNull&&(this.stats.avg=this.stats.total/s,this.stats.current=t[t.length-1][1],null===this.stats.current&&t.length>1&&(this.stats.current=t[t.length-2][1])),null!==this.stats.max&&null!==this.stats.min&&(this.stats.range=this.stats.max-this.stats.min),null!==this.stats.current&&null!==this.stats.first&&(this.stats.diff=this.stats.current-this.stats.first),this.stats.count=t.length,t},e.prototype.updateLegendValues=function(e,t,n){this.valueFormater=e,this.decimals=t,this.scaledDecimals=n},e.prototype.formatValue=function(e){return d.a.isFinite(e)||(e=null),this.valueFormater(e,this.decimals,this.scaledDecimals)},e.prototype.isMsResolutionNeeded=function(){for(var e=0;e<this.datapoints.length;e++)if(null!==this.datapoints[e][1]){var t=this.datapoints[e][1].toString();if(13===t.length&&t%1e3!=0)return!0}return!1},e.prototype.hideFromLegend=function(e){return!(!e.hideEmpty||!this.allIsNull)||(!this.legend||!(!e.hideZero||!this.allIsZero))},e.prototype.setColor=function(e){this.color=e,this.bars.fillColor=e},e}();t.a=u},,function(e,t,n){"use strict";n.d(t,"c",function(){return r}),n.d(t,"d",function(){return a}),n.d(t,"e",function(){return i}),n.d(t,"h",function(){return o}
1),n.d(t,"a",function(){return s}),n.d(t,"b",function(){return l}),n.d(t,"g",function(){return c}),n.d(t,"f",function(){return d});var r=30,a=10,i=24,o="v",s=4,l=250,c=3*r,d="panel-copy"},,,function(e,t,n){"use strict";var r=n(199),a=r.root.Symbol;t.rxSubscriber="function"==typeof a&&"function"==typeof a.for?a.for("rxSubscriber"):"@@rxSubscriber",t.$$rxSubscriber=t.rxSubscriber},function(e,t,n){"use strict";n.d(t,"a",function(){return s});var r=n(158),a=n(4),i=n.n(a),o={events:!0,fullscreen:!0,isEditing:!0,showEcuEvents:!0},s=function(){function e(e){this.events=new r.a;for(var t in e)this[t]=e[t];this.gridPos||(this.gridPos={x:0,y:0,h:3,w:6})}return e.prototype.getSaveModel=function(){var e={};for(var t in this)!o[t]&&this.hasOwnProperty(t)&&(e[t]=i.a.cloneDeep(this[t]));return"sensor"===this.type&&(delete e.targets,this.hasCustomTitle||delete e.title),e},e.prototype.setViewMode=function(e,t){this.fullscreen=e,this.isEditing=t,this.events.emit("panel-size-changed")},e.prototype.updateGridPos=function(e){var t=!1;this.gridPos.w===e.w&&this.gridPos.h===e.h||(t=!0),this.gridPos.x=e.x,this.gridPos.y=e.y,this.gridPos.w=e.w,this.gridPos.h=e.h,t&&(console.log("PanelModel sizeChanged event and render events fired"),this.events.emit("panel-size-changed"))},e.prototype.resizeDone=function(){this.events.emit("panel-size-changed")},e.prototype.refresh=function(){this.events.emit("refresh")},e.prototype.destroy=function(){this.events.removeAllListeners()},e}()},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";n.d(t,"a",function(){return u});var r=n(1174),a=n(4),i=n.n(a),o=/(^\d{1,4}[\.|\\\/|-]\d{1,2}[\.|\\\/|-]\d{1,4})(\s*(?:0?[1-9]:[0-5]|1(?=[012])\d:[0-5])\d\s*[ap]m)?$/,s=/\d{2}:\d{2}:\d{2} GMT-\d{4}/,l=/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/,c=window.requestAnimationFrame||function(e){return e(),0},d={animateOpen:!0,animateClose:!0,theme:null},u=function(){function e(e,t,n,r){void 0===t&&(t=1),void 0===n&&(n=d),this.json=e,this.open=t,this.config=n,this.key=r,this._isOpen=null,this.skipChildren=!1}return Object.defineProperty(e.prototype,"isOpen",{get:function(){return null!==this._isOpen?this._isOpen:this.open>0},set:function(e){this._isOpen=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isDate",{get:function(){return"string"===this.type&&(o.test(this.json)||l.test(this.json)||s.test(this.json))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isUrl",{get:function(){return"string"===this.type&&0===this.json.indexOf("http")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isArray",{get:function(){return Array.isArray(this.json)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isObject",{get:function(){return Object(r.f)(this.json)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isEmptyObject",{get:function(){return!this.keys.length&&!this.isArray},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isEmpty",{get:function(){return this.isEmptyObject||this.keys&&!this.keys.length&&this.isArray},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasKey",{get:function(){return void 0!==this.key},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"constructorName",{get:function(){return Object(r.c)(this.json)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"type",{get:function(){return Object(r.d)(this.json)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"keys",{get:function(){return this.isObject?Object.keys(this.json).map(function(e){return e||'""'}):[]},enumerable:!0,configurable:!0}),e.prototype.toggleOpen=function(){this.isOpen=!this.isOpen,this.element&&(this.isOpen?this.appendChildren(this.config.animateOpen):this.removeChildren(this.config.animateClose),this.element.classList.toggle(Object(r.b)("open")))},e.prototype.openAtDepth=function(e){void 0===e&&(e=1),e<0||(this.open=e,this.isOpen=0!==e,this.element&&(this.removeChildren(!1),0===e?this.element.classList.remove(Object(r.b)("open")):(this.appendChildren(this.config.animateOpen),this.element.classList.add(Object(r.b)("open")))))},e.prototype.isNumberArray=function(){return this.json.length>0&&this.json.length<4&&(i.a.isNumber(this.json[0])||i.a.isNumber(this.json[1]))},e.prototype.renderArray=function(){var e=Object(r.a)("span");return e.appendChild(Object(r.a)("span","bracket","[")),this.isNumberArray()?(this.json.forEach(function(t,n){n>0&&e.appendChild(Object(r.a)("span","array-comma",",")),e.appendChild(Object(r.a)("span","number",t))}),this.skipChildren=!0):e.appendChild(Object(r.a)("span","number",this.json.length)),e.appendChild(Object(r.a)("span","bracket","]")),e},e.prototype.render=function(e){void 0===e&&(e=!1),this.element=Object(r.a)("div","row");var t=Object(r.a)("a","toggler-link"),n=Object(r.a)("span","toggler");if(this.isObject&&t.appendChild(n),this.hasKey&&t.appendChild(Object(r.a)("span","key",this.key+":")),this.isObject){var a=Object(r.a)("span","value"),i=Object(r.a)("span"),o=Object(r.a)("span","constructor-name",this.constructorName);if(i.appendChild(o),this.isArray){var s=this.renderArray();i.appendChild(s)}a.appendChild(i),t.appendChild(a)}
1else{var a=this.isUrl?Object(r.a)("a"):Object(r.a)("span");a.classList.add(Object(r.b)(this.type)),this.isDate&&a.classList.add(Object(r.b)("date")),this.isUrl&&(a.classList.add(Object(r.b)("url")),a.setAttribute("href",this.json));var l=Object(r.e)(this.json,this.json);a.appendChild(document.createTextNode(l)),t.appendChild(a)}var c=Object(r.a)("div","children");return this.isObject&&c.classList.add(Object(r.b)("object")),this.isArray&&c.classList.add(Object(r.b)("array")),this.isEmpty&&c.classList.add(Object(r.b)("empty")),this.config&&this.config.theme&&this.element.classList.add(Object(r.b)(this.config.theme)),this.isOpen&&this.element.classList.add(Object(r.b)("open")),e||this.element.appendChild(t),this.skipChildren?t.removeChild(n):this.element.appendChild(c),this.isObject&&this.isOpen&&this.appendChildren(),this.isObject&&t.addEventListener("click",this.toggleOpen.bind(this)),this.element},e.prototype.appendChildren=function(t){var n=this;void 0===t&&(t=!1);var a=this.element.querySelector("div."+Object(r.b)("children"));if(a&&!this.isEmpty)if(t){var i=0,o=function(){var t=n.keys[i],r=new e(n.json[t],n.open-1,n.config,t);a.appendChild(r.render()),(i+=1)<n.keys.length&&(i>10?o():c(o))};c(o)}else this.keys.forEach(function(t){var r=new e(n.json[t],n.open-1,n.config,t);a.appendChild(r.render())})},e.prototype.removeChildren=function(e){void 0===e&&(e=!1);var t=this.element.querySelector("div."+Object(r.b)("children"));if(e){var n=0,a=function(){t&&t.children.length&&(t.removeChild(t.children[0]),n+=1,n>10?a():c(a))};c(a)}else t&&(t.innerHTML="")},e}()},,,function(e,t,n){"use strict";n.d(t,"a",function(){return f});var r=n(3),a=n.n(r),i=n(17),o=n.n(i),s=n(202),l=n.n(s),c=n(1197),d=n(1198),u=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),p="#000000",f=function(e){function t(t){var n=e.call(this,t)||this;return n.state={tab:"palette",color:n.props.color||p,colorString:n.props.color||p},n}return u(t,e),t.prototype.setPickerNavElem=function(e){this.pickerNavElem=o()(e)},t.prototype.setColor=function(e){var t=l()(e);t.isValid()&&(this.setState({color:t.toString(),colorString:t.toString()}),this.props.onColorSelect(e))},t.prototype.sampleColorSelected=function(e){this.setColor(e)},t.prototype.spectrumColorSelected=function(e){var t=e.toRgbString();this.setColor(t)},t.prototype.onColorStringChange=function(e){var t=e.target.value;this.setState({colorString:t});var n=l()(t);if(n.isValid()){var r=n.toString();this.setState({color:r}),this.props.onColorSelect(r)}},t.prototype.onColorStringBlur=function(e){var t=e.target.value;this.setColor(t)},t.prototype.componentDidMount=function(){var e=this;this.pickerNavElem.find("li:first").addClass("active"),this.pickerNavElem.on("show",function(t){var n=t.target.hash.slice(1);e.setState({tab:n})})},t.prototype.render=function(){var e=a.a.createElement("div",{id:"palette"},a.a.createElement(c.a,{color:this.state.color,onColorSelect:this.sampleColorSelected.bind(this)})),t=a.a.createElement("div",{id:"spectrum"},a.a.createElement(d.a,{color:this.state.color,onColorSelect:this.spectrumColorSelected.bind(this),options:{}})),n="palette"===this.state.tab?e:t;return a.a.createElement("div",{className:"gf-color-picker"},a.a.createElement("ul",{className:"nav nav-tabs",id:"colorpickernav",ref:this.setPickerNavElem.bind(this)},a.a.createElement("li",{className:"gf-tabs-item-colorpicker"},a.a.createElement("a",{href:"#palette","data-toggle":"tab"},"Colors")),a.a.createElement("li",{className:"gf-tabs-item-colorpicker"},a.a.createElement("a",{href:"#spectrum","data-toggle":"tab"},"Custom"))),a.a.createElement("div",{className:"gf-color-picker__body"},n),a.a.createElement("div",null,a.a.createElement("input",{className:"gf-form-input gf-form-input--small",value:this.state.colorString,onChange:this.onColorStringChange.bind(this),onBlur:this.onColorStringBlur.bind(this)})))},t}(a.a.Component)},function(e,t,n){"use strict";n.d(t,"a",function(){return l});var r=n(17),a=n.n(r),i=n(27),o=n.n(i),s=function(){function e(){}return e.prototype.init=function(e,t){var n=this;this.enabled=!1,this.timings={},this.timings.appStart={loadStart:(new Date).getTime()},this.$rootScope=t,this.window=window,this.enabled&&(t.$watch(function(){return n.digestCounter++,!1},function(){}),t.onAppEvent("refresh",this.refresh.bind(this),t),t.onAppEvent("dashboard-fetch-end",this.dashboardFetched.bind(this),t),t.onAppEvent("dashboard-initialized",this.dashboardInitialized.bind(this),t),t.onAppEvent("panel-initialized",this.panelInitialized.bind(this),t))},e.prototype.refresh=function(){var e=this;this.timings.query=0,this.timings.render=0,setTimeout(function(){console.log("panel count: "+e.panelsInitCount),console.log("total query: "+e.timings.query),console.log("total render: "+e.timings.render),console.log("avg render: "+e.timings.render/e.panelsInitCount)},5e3)},e.prototype.dashboardFetched=function(){this.timings.dashboardLoadStart=(new Date).getTime(),this.panelsInitCount=0,this.digestCounter=0,this.panelsInitCount=0,this.panelsRendered=0,this.timings.query=0,this.timings.render=0},e.prototype.dashboardInitialized=function(){var e=this;setTimeout(function(){console.log("Dashboard::Performance Total Digests: "+e.digestCounter),console.log("Dashboard::Performance Total Watchers: "+e.getTotalWatcherCount()),console.log("Dashboard::Performance Total ScopeCount: "+e.scopeCount);var t=e.timings.lastPanelInitializedAt-e.timings.dashboardLoadStart;console.log("Dashboard::Performance All panels initialized in "+t+" ms");for(var n=window.performance.now(),r=0;r<30;r++)e.$rootScope.$apply();console.log("Dashboard::Performance Root Digest "+(window.performance.now()-n)/30)},3e3)},e.prototype.getTotalWatcherCount=function(){var e=0,t=0,n=a()(document.getElementsByTagName("body")),r=function(n){n.data().hasOwnProperty("$scope")&&(t++,o.a.forEach(n.data().$scope.$$watchers,function(){e++})),o.a.forEach(n.children(),function(e){r(a()(e))})};return r(n),this.scopeCount=t,e},e.prototype.renderingCompleted=function(e,t){this.panelsRendered=(this.panelsRendered||0)+1,this.window.panelsRendered=this.panelsRendered,this.enabled&&(t.renderEnd=(new Date).getTime(),this.timings.query+=t.queryEnd-t.queryStart,this.timings.render+=t.renderEnd-t.render
1Start)},e.prototype.panelInitialized=function(){this.enabled&&(this.panelsInitCount++,this.timings.lastPanelInitializedAt=(new Date).getTime())},e}(),l=new s},,function(e,t,n){"use strict";function r(e,t){var n=o.a.getStateDisplayModel(t);e.state=t,e.stateText=n.text,e.stateIcon=n.iconClass,e.stateClass=n.stateClass,e.stateAge=i()(e.newStateDate).fromNow().replace(" ago","")}t.a=r;var a=n(0),i=n.n(a),o=n(698)},function(e,t,n){"use strict";function r(e){return"function"==typeof e}t.isFunction=r},function(e,t,n){"use strict";t.errorObject={e:{}}},function(e,t,n){"use strict";t.empty={closed:!0,next:function(e){},error:function(e){throw e},complete:function(){}}},,,function(e,t,n){"use strict";n.d(t,"a",function(){return s});var r=n(3),a=n.n(r),i=n(237),o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),s=function(e){function t(t){var n=e.call(this,t)||this;return n.onClick=n.onClick.bind(n),n}return o(t,e),t.prototype.onClick=function(e){this.props.onClick(e)},t.prototype.render=function(){var e=this.props,t=e.label,n=e.removeIcon,r=e.count,o=i.a.getTagColorsFromName(t),s=o.color,l=o.borderColor,c={backgroundColor:s,borderColor:l},d=0!==r&&a.a.createElement("span",{className:"tag-count-label"},"("+r+")");return a.a.createElement("span",{className:"label label-tag",onClick:this.onClick,style:c},n&&a.a.createElement("i",{className:"fa fa-remove"}),t," ",d)},t}(a.a.Component)},function(e,t,n){"use strict";var r=n(3),a=n.n(r),i=n(123),o=n(522),s=n(523),l=n(4),c=(n.n(l),this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}()),d=function(e){function t(t){var n=e.call(this,t)||this;return n.state={},n.search=n.search.bind(n),n.debouncedSearch=Object(l.debounce)(n.search,300,{leading:!0,trailing:!0}),n}return c(t,e),t.prototype.search=function(e){var t=this.props,n=t.toggleLoading,r=t.backendSrv;return n(!0),r.get("/api/org/users?query="+e+"&limit=10").then(function(e){var t=e.map(function(e){return{id:e.userId,label:e.login+" - "+e.email,avatarUrl:e.avatarUrl,login:e.login}});return n(!1),{options:t}})},t.prototype.render=function(){var e=this.state.creatable?i.default.AsyncCreatable:i.default.Async,t=this.props,n=t.isLoading,r=t.handlePicked,s=t.value,l=t.className;return a.a.createElement("div",{className:"user-picker"},a.a.createElement(e,{valueKey:"id",multi:!1,labelKey:"label",cache:!1,isLoading:n,loadOptions:this.debouncedSearch,loadingPlaceholder:"Loading...",noResultsText:"No users found",onChange:r,className:"gf-form-input gf-form-input--form-dropdown "+(l||""),optionComponent:o.a,placeholder:"Choose",value:s,autosize:!0}))},t}(r.Component);t.a=Object(s.a)(d)},function(e,t,n){"use strict";var r=n(3),a=n.n(r),i=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),o=function(e){function t(t){var n=e.call(this,t)||this;return n.handleMouseDown=n.handleMouseDown.bind(n),n.handleMouseEnter=n.handleMouseEnter.bind(n),n.handleMouseMove=n.handleMouseMove.bind(n),n}return i(t,e),t.prototype.handleMouseDown=function(e){e.preventDefault(),e.stopPropagation(),this.props.onSelect(this.props.option,e)},t.prototype.handleMouseEnter=function(e){this.props.onFocus(this.props.option,e)},t.prototype.handleMouseMove=function(e){this.props.isFocused||this.props.onFocus(this.props.option,e)},t.prototype.render=function(){var e=this.props,t=e.option,n=e.children,r=e.className;return a.a.createElement("button",{onMouseDown:this.handleMouseDown,onMouseEnter:this.handleMouseEnter,onMouseMove:this.handleMouseMove,title:t.title,className:"user-picker-option__button btn btn-link "+r},a.a.createElement("img",{src:t.avatarUrl,alt:t.label,className:"user-picker-option__avatar"}),n)},t}(r.Component);t.a=o},function(e,t,n){"use strict";function r(e){return function(t){function n(e){var n=t.call(this,e)||this;return n.toggleLoading=n.toggleLoading.bind(n),n.state={isLoading:!1},n}return o(n,t),n.prototype.toggleLoading=function(e){this.setState(function(t){return s({},t,{isLoading:e})})},n.prototype.render=function(){return i.a.createElement(e,s({toggleLoading:this.toggleLoading,isLoading:this.state.isLoading},this.props))},n}
1(a.Component)}t.a=r;var a=n(3),i=n.n(a),o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),s=this&&this.__assign||function(){return s=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++){t=arguments[n];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},s.apply(this,arguments)}},function(e,t,n){"use strict";var r=n(3),a=n.n(r),i=n(1290),o=n(39),s=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),l=this&&this.__decorate||function(e,t,n,r){var a,i=arguments.length,o=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(a=e[s])&&(o=(i<3?a(o):i>3?a(t,n,o):a(t,n))||o);return i>3&&o&&Object.defineProperty(t,n,o),o},c=function(e){function t(t){var n=e.call(this,t)||this,r=n.props,a=r.dashboardId,i=r.isFolder,o=r.folderInfo;return n.permissionChanged=n.permissionChanged.bind(n),n.typeChanged=n.typeChanged.bind(n),n.removeItem=n.removeItem.bind(n),n.loadStore(a,i,o&&0===o.id),n}return s(t,e),t.prototype.loadStore=function(e,t,n){return void 0===n&&(n=!1),this.props.permissions.load(e,t,n)},t.prototype.permissionChanged=function(e,t,n){this.props.permissions.updatePermissionOnIndex(e,t,n)},t.prototype.removeItem=function(e){this.props.permissions.removeStoreItem(e)},t.prototype.resetNewType=function(){this.props.permissions.resetNewType()},t.prototype.typeChanged=function(e){var t=e.target.value,n=this.props,r=n.permissions,a=n.dashboardId;if("Viewer"===t||"Editor"===t)return r.addStoreItem({permission:1,role:t,dashboardId:a},a),void this.resetNewType();r.setNewType(t)},t.prototype.render=function(){var e=this.props,t=e.permissions,n=e.folderInfo;return a.a.createElement("div",{className:"gf-form-group"},a.a.createElement(i.a,{permissions:t.items,removeItem:this.removeItem,permissionChanged:this.permissionChanged,fetching:t.fetching,folderInfo:n}))},t=l([o.observer],t)}(r.Component);t.a=c},function(e,t,n){"use strict";var r=n(3),a=n.n(r),i=n(1294),o=n(241),s=(n.n(o),this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}()),l=this&&this.__assign||function(){return l=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++){t=arguments[n];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},l.apply(this,arguments)},c=function(e){function t(t){var n=e.call(this,t)||this;return n.showTooltip=n.showTooltip.bind(n),n.hideTooltip=n.hideTooltip.bind(n),n}return s(t,e),t.prototype.showTooltip=function(){(0,this.props.tooltipSetState)(function(e){return l({},e,{show:!0})})},t.prototype.hideTooltip=function(){(0,this.props.tooltipSetState)(function(e){return l({},e,{show:!1})})},t.prototype.render=function(){return a.a.createElement(o.Target,{className:"popper__target",onMouseOver:this.showTooltip,onMouseOut:this.hideTooltip},this.props.children)},t}(a.a.Component);t.a=Object(i.a)(c)},function(e,t,n){"use strict";var r=n(3),a=n.n(r);t.a=function(){return a.a.createElement("div",{className:""},a.a.createElement("h5",null,"What are Permissions?"),a.a.createElement("p",null,"An Access Control List (ACL) model is used to limit access to Dashboard Folders. A user or a Team can be assigned permissions for a folder or for a single dashboard."))}},function(e,t,n){"use strict";var r=n(3),a=n.n(r),i=n(39),o=n(121),s=n(521),l=n(1300),c=n(240),d=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),u=this&&this.__decorate||function(e,t,n,r){var a,i=arguments.length,o=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(a=e[s])&&(o=(i<3?a(o):i>3?a(t,n,o):a(t,n))||o);return i>3&&o&&Object.defineProperty(t,n,o),o},p=function(e){function t(t){var n=e.call(this,t)||this;return n.userPicked=n.userPicked.bind(n),n.teamPicked=n.teamPicked.bind(n),n.permissionPicked=n.permissionPicked.bind(n),n.typeChanged=n.typeChanged.bind(n),n.handleSubmit=n.handleSubmit.bind(n),n}return d(t,e),t.prototype.componentWillMount=function(){this.props.permissions.resetNewType()},t.prototype.typeChanged=function(e){var t=e.target.value;this.props.permissions.setNewType(t)},t.prototype.userPicked=function(e){var t=this.props.permissions;return e?t.newItem.setUser(e.id,e.login,e.avatarUrl):void t.newItem.setUser(null,null)},t.prototype.teamPicked=function(e){var t=this.props.permissions;return e?t.newItem.setTeam(e.id,e.name,e.avatarUrl):void t.newItem.setTeam(null,null)},t.prototype.permissionPicked=function(e){return this.props.permissions.newItem.setPermission(e.value)},t.prototype.resetNewType=function(){return this.props.permissions.resetNewType()},t.prototype.handleSubmit=function(e){e.preventDefault(),this.props.permissions.addStoreItem()},t.prototype.render=function(){var e=this.props,t=e.permissions,n=e.backendSrv,r=t.newItem,i=r.isValid();return a.a.createElement("div",{className:"gf-form-inline cta-form"},a.a.createElement("button",{className:"cta-form__close btn btn-trans
1parent",onClick:t.hideAddPermissions},a.a.createElement("i",{className:"fa fa-close"})),a.a.createElement("form",{name:"addPermission",onSubmit:this.handleSubmit},a.a.createElement("h6",null,"Add Permission For"),a.a.createElement("div",{className:"gf-form-inline"},a.a.createElement("div",{className:"gf-form"},a.a.createElement("div",{className:"gf-form-select-wrapper"},a.a.createElement("select",{className:"gf-form-input gf-size-auto",value:r.type,onChange:this.typeChanged},o.b.map(function(e,t){return a.a.createElement("option",{key:t,value:e.value},e.text)})))),"User"===r.type?a.a.createElement("div",{className:"gf-form"},a.a.createElement(s.a,{backendSrv:n,handlePicked:this.userPicked,value:r.userId,className:"width-20"})):null,"Group"===r.type?a.a.createElement("div",{className:"gf-form"},a.a.createElement(l.a,{backendSrv:n,handlePicked:this.teamPicked,value:r.teamId,className:"width-20"})):null,a.a.createElement("div",{className:"gf-form"},a.a.createElement(c.a,{optionsWithDesc:o.c,handlePicked:this.permissionPicked,value:r.permission,disabled:!1,className:"gf-form-input--form-dropdown-right"})),a.a.createElement("div",{className:"gf-form"},a.a.createElement("button",{"data-save-permission":!0,className:"btn btn-success",type:"submit",disabled:!i},"Save")))))},t=u([i.observer],t)}(r.Component);t.a=p},function(e,t,n){"use strict";var r=n(3),a=n.n(r),i=n(242),o=n.n(i),s=this&&this.__assign||function(){return s=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++){t=arguments[n];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},s.apply(this,arguments)},l={transition:"max-height 200ms ease-in-out",overflow:"hidden"};t.a=function(e){var t=e.children,n=e.in,r=e.maxHeight,i=void 0===r?"200px":r,c={exited:{maxHeight:0},entering:{maxHeight:i},entered:{maxHeight:i,overflow:"visible"},exiting:{maxHeight:0}};return a.a.createElement(o.a,{in:n,timeout:200},function(e){return a.a.createElement("div",{style:s({},l,c[e])},t)})}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";var r=n(199),a=n(1227),i=n(702),o=n(1230),s=function(){function e(e){this._isScalar=!1,e&&(this._subscribe=e)}return e.prototype.lift=function(t){var n=new e;return n.source=this,n.operator=t,n},e.prototype.subscribe=function(e,t,n){var r=this.operator,i=a.toSubscriber(e,t,n);if(r?r.call(i,this.source):i.add(this.source||!i.syncErrorThrowable?this._subscribe(i):this._trySubscribe(i)),i.syncErrorThrowable&&(i.syncErrorThrowable=!1,i.syncErrorThrown))throw i.syncErrorValue;return i},e.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){e.syncErrorThrown=!0,e.syncErrorValue=t,e.error(t)}},e.prototype.forEach=function(e,t){var n=this;if(t||(r.root.Rx&&r.root.Rx.config&&r.root.Rx.config.Promise?t=r.root.Rx.config.Promise:r.root.Promise&&(t=r.root.Promise)),!t)throw new Error("no Promise impl found");return new t(function(t,r){var a;a=n.subscribe(function(t){if(a)try{e(t)}catch(e){r(e),a.unsubscribe()}else e(t)},r,t)})},e.prototype._subscribe=function(e){return this.source.subscribe(e)},e.prototype[i.observable]=function(){return this},e.prototype.pipe=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return 0===e.length?this:o.pipeFromArray(e)(this)},e.prototype.toPromise=function(e){var t=this;if(e||(r.root.Rx&&r.root.Rx.config&&r.root.Rx.config.Promise?e=r.root.Rx.config.Promise:r.root.Promise&&(e=r.root.Promise)),!e)throw new Error("no Promise impl found");return new e(function(e,n){var r;t.subscribe(function(e){return r=e},function(e){return n(e)},function(){return e(r)})})},e.create=function(t){return new e(t)},e}();t.Observable=s},function(e,t,n){"use strict";function r(e,t,n){if(e){if(c.a.isMoment(e))return e;if(s.a.isDate(e))return c()(e);var r,a,o,l="";return"now"===e.substring(0,3)?(r="utc"===n?c.a.utc():c()(),l=e.substring("now".length)):(a=e.indexOf("||"),-1===a?(o=e,l=""):(o=e.substring(0,a),l=e.substring(a+2)),r=c()(o,c.a.ISO_8601)),l.length?
1i(l,r,t):r}}function a(e){var t=r(e);return!!t&&(!!c.a.isMoment(t)&&t.isValid())}function i(e,t,n){for(var r=t,a=0,i=e.length;a<i;){var o,l,c,u=e.charAt(a++);if("/"===u)o=0;else if("+"===u)o=1;else{if("-"!==u)return;o=2}if(isNaN(e.charAt(a)))l=1;else if(2===e.length)l=e.charAt(a);else{for(var p=a;!isNaN(e.charAt(a));)if(++a>10)return;l=parseInt(e.substring(p,a),10)}if(0===o&&1!==l)return;if(c=e.charAt(a++),!s.a.includes(d,c))return;0===o?n?r.endOf(c):r.startOf(c):1===o?r.add(l,c):2===o&&r.subtract(l,c)}return r}Object.defineProperty(t,"__esModule",{value:!0}),t.parse=r,t.isValid=a,t.parseDateMath=i;var o=n(4),s=n.n(o),l=n(0),c=n.n(l),d=["y","M","w","d","h","m","s"]},function(e,t,n){"use strict";n.d(t,"a",function(){return s});var r=n(2),a=n(23),i=n(4),o=n.n(i),s=function(){function e(){this.breadcrumbs=[]}return e}(),l=function(){function e(){this.navItems=a.a.bootData.navTree}return e.prototype.getCfgNode=function(){return o.a.find(this.navItems,{id:"cfg"})},e.prototype.getNav=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=this.navItems,r=new s,a=0,i=e;a<i.length;a++){var l=i[a];if(o.a.isNumber(l)){r.main=r.breadcrumbs[l];break}var c=o.a.find(n,{id:l});r.breadcrumbs.push(c),r.node=c,r.main=c,n=c.children}if(r.main.children)for(var d=0,u=r.main.children;d<u.length;d++){var p=u[d];p.active=!1,p.url===r.node.url&&(p.active=!0)}return r},e.prototype.getNotFoundNav=function(){var e={text:"Page not found",icon:"fa fa-fw fa-warning",subTitle:"404 Error"};return{breadcrumbs:[e],node:e,main:e}},e}();r.a.service("navModelSrv",l)},function(e,t,n){"use strict";function r(e){return e instanceof c||"syncErrorThrowable"in e&&e[l.rxSubscriber]}var a=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)},i=n(515),o=n(700),s=n(517),l=n(318),c=function(e){function t(t,n,a){switch(e.call(this),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=s.empty;break;case 1:if(!t){this.destination=s.empty;break}if("object"==typeof t){if(r(t)){var i=t[l.rxSubscriber]();this.syncErrorThrowable=i.syncErrorThrowable,this.destination=i,i.add(this)}else this.syncErrorThrowable=!0,this.destination=new d(this,t);break}default:this.syncErrorThrowable=!0,this.destination=new d(this,t,n,a)}}return a(t,e),t.prototype[l.rxSubscriber]=function(){return this},t.create=function(e,n,r){var a=new t(e,n,r);return a.syncErrorThrowable=!1,a},t.prototype.next=function(e){this.isStopped||this._next(e)},t.prototype.error=function(e){this.isStopped||(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this))},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){this.destination.error(e),this.unsubscribe()},t.prototype._complete=function(){this.destination.complete(),this.unsubscribe()},t.prototype._unsubscribeAndRecycle=function(){var e=this,t=e._parent,n=e._parents;return this._parent=null,this._parents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parent=t,this._parents=n,this},t}(o.Subscription);t.Subscriber=c;var d=function(e){function t(t,n,r,a){e.call(this),this._parentSubscriber=t;var o,l=this;i.isFunction(n)?o=n:n&&(o=n.next,r=n.error,a=n.complete,n!==s.empty&&(l=Object.create(n),i.isFunction(l.unsubscribe)&&this.add(l.unsubscribe.bind(l)),l.unsubscribe=this.unsubscribe.bind(this))),this._context=l,this._next=o,this._error=r,this._complete=a}return a(t,e),t.prototype.next=function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}},t.prototype.error=function(e){if(!this.isStopped){var t=this._parentSubscriber;if(this._error)t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else{if(!t.syncErrorThrowable)throw this.unsubscribe(),e;t.syncErrorValue=e,t.syncErrorThrown=!0,this.unsubscribe()}}},t.prototype.complete=function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var n=function(){return e._complete.call(e._context)};t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}},t.prototype.__tryOrUnsub=function(e,t){try{e.call(this._context,t)}catch(e){throw this.unsubscribe(),e}},t.prototype.__tryOrSetError=function(e,t,n){try{t.call(this._context,n)}catch(t){return e.syncErrorValue=t,e.syncErrorThrown=!0,!0}return!1},t.prototype._unsubscribe=function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()},t}(c)},,,function(e,t,n){"use strict";function r(e,t,n){var r=Math.sqrt(50),a=Math.sqrt(10),i=Math.sqrt(2),o=Math.abs(t-e)/Math.max(0,n),s=Math.pow(10,Math.floor(Math.log(o)/M
1ath.LN10)),l=o/s;return l>=r?s*=10:l>=a?s*=5:l>=i&&(s*=2),t<e?-s:s}function a(e,t){return e-Math.floor(Math.log(t)/Math.LN10)}function i(e,t,n,r){var a,i=(t-e)/n,o=-Math.floor(Math.log(i)/Math.LN10),s=r,l=Math.pow(10,-o),c=i/l;return c<1.5?a=1:c<3?(a=2,c>2.25&&(null==s||o+1<=s)&&(a=2.5,++o)):a=c<7.5?5:10,a*=l}function o(e,t,n,r){var a=+(null!=e?e:n),i=+(null!=t?t:r),o=i-a;if(0===o){var s=Math.abs(0===i?1:.25*i);null===e&&(a-=s),null!=t&&null==e||(i+=s)}else{null==e&&(a-=.02*o)<0&&null!=n&&n>=0&&(a=0),null==t&&(i+=.02*o)>0&&null!=r&&r<=0&&(i=0)}return{min:a,max:i}}function s(e,t,n,r){var a,i=o(n.min,n.max,e,t),s=i.min,l=i.max,c=.3*Math.sqrt(r),d=(l-s)/c,u=-Math.floor(Math.log(d)/Math.LN10),p=Math.pow(10,-u),f=d/p;f<1.5?a=1:f<3?(a=2,f>2.25&&(a=2.5)):a=f<7.5?5:10,a*=p;var m=Math.max(0,1-Math.floor(Math.log(d)/Math.LN10));return{tickDecimals:m,scaledDecimals:m-Math.floor(Math.log(a)/Math.LN10)}}function l(e,t,n){if(t&&n&&e){var r=n-t,a=r/e/1e3;return a<=45?"%H:%M:%S":a<=7200||r<=864e5?"%H:%M":a<=8e4?"%m/%d %H:%M":a<=2419200||r<=31536e6?"%m/%d":"%Y-%m"}return"%H:%M"}function c(e,t){return Math.log(e)/Math.log(t)}function d(e){return u(e.toString())}function u(e){var t=e.indexOf(".");return-1===t?0:e.length-t-1}Object.defineProperty(t,"__esModule",{value:!0}),t.tickStep=r,t.getScaledDecimals=a,t.getFlotTickSize=i,t.getFlotRange=o,t.getFlotTickDecimals=s,t.grafanaTimeFormat=l,t.logp=c,t.getPrecision=d,t.getStringPrecision=u},function(e,t,n){"use strict";function r(e,t){return l.a.groupBy(f,function(e){return e.active=e.display===t,e.section})}function a(e){return e.format(m)}function i(e){var t=0!==e.indexOf("+");-1===e.indexOf("now")&&(e=(t?"now-":"now")+e);var n=h[e+" to now"];if(n)return n;n=t?{from:e,to:"now"}:{from:"now",to:e};var r=/^now([-+])(\d+)(\w)/.exec(e);if(r){var a=r[3],i=parseInt(r[2]),o=p[a];o&&(n.display=t?"Last ":"Next ",n.display+=i+" "+o.display,n.section=o.section,i>1&&(n.display+="s"))}else n.display=n.from+" to "+n.to,n.invalid=!0;return n}function o(e){var t=h[e.from.toString()+" to "+e.to.toString()];if(t)return t.display;if(d.a.isMoment(e.from)&&d.a.isMoment(e.to))return a(e.from)+" to "+a(e.to);if(d.a.isMoment(e.from)){var n=u.parse(e.to,!0);return a(e.from)+" to "+n.fromNow()}if(d.a.isMoment(e.to)){return u.parse(e.from,!1).fromNow()+" to "+a(e.to)}if("now"===e.to.toString()){return i(e.from).display}return e.from.toString()+" to "+e.to.toString()}t.c=r,t.a=i,t.b=o;var s=n(4),l=n.n(s),c=n(0),d=n.n(c),u=n(691),p={s:{display:"second"},m:{display:"minute"},h:{display:"hour"},d:{display:"day"},w:{display:"week"},M:{display:"month"},y:{display:"year"}},f=[{from:"now/d",to:"now/d",display:"Today",section:2},{from:"now/d",to:"now",display:"Today so far",section:2},{from:"now/w",to:"now/w",display:"This week",section:2},{from:"now/w",to:"now",display:"This week so far",section:2},{from:"now/M",to:"now/M",display:"This month",section:2},{from:"now/M",to:"now",display:"This month so far",section:2},{from:"now/y",to:"now/y",display:"This year",section:2},{from:"now/y",to:"now",display:"This year so far",section:2},{from:"now-1d/d",to:"now-1d/d",display:"Yesterday",section:1},{from:"now-2d/d",to:"now-2d/d",display:"Day before yesterday",section:1},{from:"now-7d/d",to:"now-7d/d",display:"This day last week",section:1},{from:"now-1w/w",to:"now-1w/w",display:"Previous week",section:1},{from:"now-1M/M",to:"now-1M/M",display:"Previous month",section:1},{from:"now-1y/y",to:"now-1y/y",display:"Previous year",section:1},{from:"now-5m",to:"now",display:"Last 5 minutes",section:3},{from:"now-15m",to:"now",display:"Last 15 minutes",section:3},{from:"now-30m",to:"now",display:"Last 30 minutes",section:3},{from:"now-1h",to:"now",display:"Last 1 hour",section:3},{from:"now-3h",to:"now",display:"Last 3 hours",section:3},{from:"now-6h",to:"now",display:"Last 6 hours",section:3},{from:"now-12h",to:"now",display:"Last 12 hours",section:3},{from:"now-24h",to:"now",display:"Last 24 hours",section:3},{from:"now-2d",to:"now",display:"Last 2 days",section:0},{from:"now-7d",to:"now",display:"Last 7 days",section:0},{from:"now-30d",to:"now",display:"Last 30 days",section:0},{from:"now-90d",to:"now",display:"Last 90 days",section:0},{from:"now-6M",to:"now",display:"Last 6 months",section:0},{from:"now-1y",to:"now",display:"Last 1 year",section:0},{from:"now-2y",to:"now",display:"Last 2 years",section:0},{from:"now-5y",to:"now",display:"Last 5 years",section:0}],m="MMM D, YYYY HH:mm:ss",h={};l.a.each(f,function(e){h[e.from+" to "+e.to]=e})},function(e,t,n){"use strict";function r(e){var t=new c.b({type:e.type,defaultParams:[]});return new c.a(e,t)}function a(e){switch(e){case"ok":return{text:"OK",iconClass:"icon-gf icon-gf-online",stateClass:"alert-state-ok"};case"alerting":return{text:"ALERTING",iconClass:"icon-gf icon-gf-critical",stateClass:"alert-state-critical"};case"no_data":return{text:"NO DATA",iconClass:"fa fa-question",stateClass:"alert-state-warning"};case"paused":return{text:"PAUSED",iconClass:"fa fa-pause",stateClass:"alert-state-paused"};
1case"pending":return{text:"PENDING",iconClass:"fa fa-exclamation",stateClass:"alert-state-warning"}}throw{message:"Unknown alert state"}}function i(e,t){return l.a.reduce(e,function(e,t){return void 0!==t.metric&&void 0!==t.value&&e.push(t.metric+"="+t.value),void 0!==t.Metric&&void 0!==t.Value&&e.push(t.Metric+"="+t.Value),e},[]).join(t)}function o(e){return l.a.isArray(e.data)?i(e.data,", "):l.a.isArray(e.data.evalMatches)?i(e.data.evalMatches,", "):e.data.error?"Error: "+e.data.error:""}var s=n(4),l=n.n(s),c=n(699),d=new c.b({type:"query",params:[{name:"queryRefId",type:"string",dynamicLookup:!0},{name:"from",type:"string",options:["1s","10s","1m","5m","10m","15m","1h","24h","48h"]},{name:"to",type:"string",options:["now"]}],defaultParams:["#A","15m","now","avg"]}),u=[{text:"Query",value:"query"}],p={alerting:1,no_data:2,pending:3,ok:4,paused:5},f=[{text:"IS ABOVE",value:"gt"},{text:"IS BELOW",value:"lt"},{text:"IS OUTSIDE RANGE",value:"outside_range"},{text:"IS WITHIN RANGE",value:"within_range"},{text:"HAS NO VALUE",value:"no_value"}],m=[{text:"OR",value:"or"},{text:"AND",value:"and"}],h=[{text:"avg()",value:"avg"},{text:"min()",value:"min"},{text:"max()",value:"max"},{text:"sum()",value:"sum"},{text:"count()",value:"count"},{text:"last()",value:"last"},{text:"median()",value:"median"},{text:"diff()",value:"diff"},{text:"percent_diff()",value:"percent_diff"},{text:"count_non_null()",value:"count_non_null"}],g=[{text:"Alerting",value:"alerting"},{text:"No Data",value:"no_data"},{text:"Keep Last State",value:"keep_state"},{text:"Ok",value:"ok"}],b=[{text:"Alerting",value:"alerting"},{text:"Keep Last State",value:"keep_state"}];t.a={alertQueryDef:d,getStateDisplayModel:a,conditionTypes:u,evalFunctions:f,evalOperators:m,noDataModes:g,executionErrorModes:b,reducerTypes:h,createReducerPart:r,getAlertAnnotationInfo:o,alertStateSortScore:p}},function(e,t,n){"use strict";function r(e,t){var n=e.def.type+"(",r=o.a.map(e.params,function(t,n){var r=e.def.params[n];return"time"===r.type&&"auto"===t&&(t="$__interval"),"single"===r.quote?"'"+t+"'":"double"===r.quote?'"'+t+'"':t});return t&&r.unshift(t),n+r.join(", ")+")"}function a(e,t){return t+" "+e.params[0]}n.d(t,"b",function(){return s}),n.d(t,"a",function(){return l}),t.c=r,t.d=a;var i=n(4),o=n.n(i),s=function(){function e(e){this.type=e.type,this.params=e.params,this.defaultParams=e.defaultParams,this.renderer=e.renderer,this.category=e.category,this.addStrategy=e.addStrategy}return e}(),l=function(){function e(e,t){if(this.part=e,this.def=t,!this.def)throw{message:"Could not find query part "+e.type};e.params=e.params||o.a.clone(this.def.defaultParams),this.params=e.params,this.updateText()}return e.prototype.render=function(e){return this.def.renderer(this,e)},e.prototype.hasMultipleParamsInString=function(e,t){return-1!==e.indexOf(",")&&(this.def.params[t+1]&&this.def.params[t+1].optional)},e.prototype.updateParam=function(e,t){var n=this;if(this.hasMultipleParamsInString(e,t))return void o.a.each(e.split(","),function(e,t){n.updateParam(e.trim(),t)});""===e&&this.def.params[t].optional?this.params.splice(t,1):this.params[t]=e,this.part.params=this.params,this.updateText()},e.prototype.updateText=function(){if(0===this.params.length)return void(this.text=this.def.type+"()");var e=this.def.type+"(";e+=this.params.join(", "),e+=")",this.text=e},e}()},function(e,t,n){"use strict";function r(e){return e.reduce(function(e,t){return e.concat(t instanceof c.UnsubscriptionError?t.errors:t)},[])}var a=n(701),i=n(707),o=n(515),s=n(1228),l=n(516),c=n(1229),d=function(){function e(e){this.closed=!1,this._parent=null,this._parents=null,this._subscriptions=null,e&&(this._unsubscribe=e)}return e.prototype.unsubscribe=function(){var e,t=!1;if(!this.closed){var n=this,d=n._parent,u=n._parents,p=n._unsubscribe,f=n._subscriptions;this.closed=!0,this._parent=null,this._parents=null,this._subscriptions=null;for(var m=-1,h=u?u.length:0;d;)d.remove(this),d=++m<h&&u[m]||null;if(o.isFunction(p)){var g=s.tryCatch(p).call(this);g===l.errorObject&&(t=!0,e=e||(l.errorObject.e instanceof c.UnsubscriptionError?r(l.errorObject.e.errors):[l.errorObject.e]))}if(a.isArray(f))for(m=-1,h=f.length;++m<h;){var b=f[m];
1if(i.isObject(b)){var g=s.tryCatch(b.unsubscribe).call(b);if(g===l.errorObject){t=!0,e=e||[];var v=l.errorObject.e;v instanceof c.UnsubscriptionError?e=e.concat(r(v.errors)):e.push(v)}}}if(t)throw new c.UnsubscriptionError(e)}},e.prototype.add=function(t){if(!t||t===e.EMPTY)return e.EMPTY;if(t===this)return this;var n=t;switch(typeof t){case"function":n=new e(t);case"object":if(n.closed||"function"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if("function"!=typeof n._addParent){var r=n;n=new e,n._subscriptions=[r]}break;default:throw new Error("unrecognized teardown "+t+" added to Subscription.")}return(this._subscriptions||(this._subscriptions=[])).push(n),n._addParent(this),n},e.prototype.remove=function(e){var t=this._subscriptions;if(t){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}},e.prototype._addParent=function(e){var t=this,n=t._parent,r=t._parents;n&&n!==e?r?-1===r.indexOf(e)&&r.push(e):this._parents=[e]:this._parent=e},e.EMPTY=function(e){return e.closed=!0,e}(new e),e}();t.Subscription=d},function(e,t,n){"use strict";t.isArray=Array.isArray||function(e){return e&&"number"==typeof e.length}},function(e,t,n){"use strict";function r(e){var t,n=e.Symbol;return"function"==typeof n?n.observable?t=n.observable:(t=n("observable"),n.observable=t):t="@@observable",t}var a=n(199);t.getSymbolObservable=r,t.observable=r(a.root),t.$$observable=t.observable},function(e,t,n){"use strict";n.d(t,"a",function(){return m});var r=n(0),a=n.n(r),i=n(4),o=n.n(i),s=n(315),l=n(138),c=n(158),d=n(101),u=n(1255),p=n(319),f=n(1256),m=function(){function e(e,t){e||(e={}),this.events=new c.a,this.id=e.id||null,this.uid=e.uid||null,this.revision=e.revision,this.title=e.title||"No Title",this.autoUpdate=e.autoUpdate,this.description=e.description,this.tags=e.tags||[],this.style=e.style||"dark",this.timezone=e.timezone||"",this.editable=!1!==e.editable,this.graphTooltip=e.graphTooltip||0,this.time=e.time||{from:"1970-01-01T00:00:00.000Z",to:"1970-01-01T00:00:05.000Z"},this.timepicker=e.timepicker||{},this.templating=this.ensureListExist(e.templating),this.annotations=this.ensureListExist(e.annotations),this.refresh=e.refresh,this.snapshot=e.snapshot,this.schemaVersion=e.schemaVersion||0,this.version=e.version||0,this.links=e.links||[],this.gnetId=e.gnetId||null,this.panels=o.a.map(e.panels||[],function(e){return new p.a(e)}),this.resetOriginalVariables(),this.resetOriginalTime(),this.initMeta(t),this.updateSchema(e),this.addBuiltInAnnotationQuery(),this.sortPanelsByGridPos()}return e.prototype.addBuiltInAnnotationQuery=function(){for(var e=!1,t=0,n=this.annotations.list;t<n.length;t++){if(1===n[t].builtIn){e=!0;break}}e||this.annotations.list.unshift({datasource:"-- Grafana --",name:"Annotations & Alerts",type:"dashboard",iconColor:l.b,enable:!0,hide:!0,builtIn:1})},e.prototype.initMeta=function(e){e=e||{},e.canShare=!1!==e.canShare,e.canSave=!1!==e.canSave,e.canStar=!1!==e.canStar,e.canEdit=!1!==e.canEdit,e.showSettings=e.canEdit,e.canMakeEditable=e.canSave&&!this.editable,this.editable||(e.canEdit=!1,e.canDelete=!1,e.canSave=!1),this.meta=e},e.prototype.getSaveModelClone=function(t){var n=o.a.defaults(t||{},{saveVariables:!0,saveTimerange:!0}),r={};for(var a in this)!e.nonPersistedProperties[a]&&this.hasOwnProperty(a)&&(r[a]=o.a.cloneDeep(this[a]));if(r.templating={list:o.a.map(this.templating.list,function(e){return e.getSaveModel?e.getSaveModel():e})},!n.saveVariables)for(var i=0;i<r.templating.list.length;i++){var s=r.templating.list[i],l=o.a.find(this.originalTemplating,{name:s.name,type:s.type});l&&("adhoc"===s.type?r.templating.list[i].filters=l.filters:r.templating.list[i].current=l.current)}return n.saveTimerange||(r.time=this.originalTime),r.panels=o.a.chain(this.panels).filter(function(e){return"add-panel"!==e.type}).map(function(e){return e.getSaveModel()}).value(),r=Object(u.a)(r)},e.prototype.setViewMode=function(e,t,n){this.meta.fullscreen=t,this.meta.isEditing=n&&this.meta.canEdit,e.setViewMode(t,this.meta.isEditing),this.events.emit("view-mode-changed",e)},e.prototype.ensureListExist=function(e){return e||(e={}),e.list||(e.list=[]),e},e.prototype.getNextPanelId=function(){for(var e=0,t=0,n=this.panels;t<n.length;t++){var r=n[t];if(r.id>e&&(e=r.id),r.collapsed)for(var a=0,i=r.panels;a<i.length;a++){var o=i[a];o.id>e&&(e=o.id)}}return e+1},e.prototype.forEachPanel=function(e){for(var t=0;t<this.panels.length;t++)e(this.panels[t],t)},e.prototype.getPanelById=function(e){for(var t=0,n=this.panels;t<n.length;t++){var r=n[t];if(r.id===e)return r}return null}
1,e.prototype.addSensorPanel=function(e,t){this.addPanel({type:"sensor",xaxis:{tzero:!0},sensorTargets:[{sensorShortName:e,experimentId:t}],gridPos:{x:0,y:0,w:12,h:9}})},e.prototype.addExperimentMetaPanel=function(){this.addPanel({type:"experimentdetails",gridPos:{x:0,y:0,w:12,h:9},title:"Experiment details"})},e.prototype.addVideoPanel=function(){this.addPanel({type:"experimentvideo",gridPos:{x:0,y:0,w:12,h:9},title:"Video"})},e.prototype.addPanel=function(e){e.id=this.getNextPanelId();var t=new p.a(e);this.panels.unshift(t),this.sortPanelsByGridPos(),this.events.emit("panel-added",t)},e.prototype.sortPanelsByGridPos=function(){this.panels.sort(function(e,t){return e.gridPos.y===t.gridPos.y?e.gridPos.x-t.gridPos.x:e.gridPos.y-t.gridPos.y})},e.prototype.cleanUpRepeats=function(){if(!this.snapshot&&0!==this.templating.list.length){this.iteration=(this.iteration||(new Date).getTime())+1;for(var e=[],t=0,n=this.panels;t<n.length;t++){var r=n[t];delete r.scopedVars}for(var a=0;a<this.panels.length;a++){var r=this.panels[a];r.repeat&&!r.repeatedByRow||!r.repeatPanelId||r.repeatIteration===this.iteration||e.push(r)}o.a.pull.apply(o.a,[this.panels].concat(e)),this.sortPanelsByGridPos(),this.events.emit("repeats-processed")}},e.prototype.processRepeats=function(){if(!this.snapshot&&0!==this.templating.list.length){this.cleanUpRepeats(),this.iteration=(this.iteration||(new Date).getTime())+1;for(var e=0;e<this.panels.length;e++){var t=this.panels[e];t.repeat&&this.repeatPanel(t,e)}this.sortPanelsByGridPos(),this.events.emit("repeats-processed")}},e.prototype.cleanUpRowRepeats=function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];!r.repeat&&r.repeatPanelId&&t.push(r)}o.a.pull.apply(o.a,[e].concat(t)),o.a.pull.apply(o.a,[this.panels].concat(t))},e.prototype.processRowRepeats=function(e){if(!this.snapshot&&0!==this.templating.list.length){var t=e.panels;if(!e.collapsed){var n=o.a.findIndex(this.panels,function(t){return t.id===e.id});t=this.getRowPanels(n)}this.cleanUpRowRepeats(t);for(var r=this,a=0;a<t.length;a++)!function(e){var n=t[e];if(n.repeat){var a=o.a.findIndex(r.panels,function(e){return e.id===n.id});r.repeatPanel(n,a)}}(a)}},e.prototype.getPanelRepeatClone=function(e,t,n){if(0===t)return e;var r=new p.a(e.getSaveModel());return r.id=this.getNextPanelId(),this.panels.splice(n+t,0,r),r.repeatIteration=this.iteration,r.repeatPanelId=e.id,r.repeat=null,r},e.prototype.getRowRepeatClone=function(e,t,n){if(0===t){if(!e.collapsed){var r=this.getRowPanels(n);e.panels=r}return e}var a,i,s=new p.a(e.getSaveModel());return e.collapsed?(a=o.a.cloneDeep(e.panels),s.panels=a,i=n+t):(a=this.getRowPanels(n),s.panels=o.a.map(a,function(e){return e.getSaveModel()}),i=n+(a.length+1)*t),this.panels.splice(i,0,s),this.updateRepeatedPanelIds(s),s},e.prototype.repeatPanel=function(e,t){var n=o.a.find(this.templating.list,{name:e.repeat});if(n){if("row"===e.type)return void this.repeatRow(e,t,n);for(var r=this.getSelectedVariableOptions(n),a=e.minSpan||6,i=0,l=e.gridPos.y,c=0;c<r.length;c++){var d=r[c],u=void 0;u=this.getPanelRepeatClone(e,c,t),u.scopedVars=u.scopedVars||{},u.scopedVars[n.name]=d,e.repeatDirection===s.h?(c>0&&(l+=u.gridPos.h),u.gridPos.y=l):(u.gridPos.w=Math.max(s.e/r.length,a),u.gridPos.x=i,u.gridPos.y=l,(i+=u.gridPos.w)+u.gridPos.w>s.e&&(i=0,l+=u.gridPos.h))}var p=l-e.gridPos.y;if(p>0)for(var f=t+r.length,m=f;m<this.panels.length;m++)this.panels[m].gridPos.y+=p}},e.prototype.repeatRow=function(e,t,n){function r(e,t){e.scopedVars=e.scopedVars||{},e.scopedVars[n.name]=t}for(var a=this,i=this.getSelectedVariableOptions(n),s=e.gridPos.y,l=this,c=0;c<i.length;c++)!function(n){var c=i[n],d=l.getRowRepeatClone(e,n,t);r(d,c);var u=l.getRowHeight(d),f=d.panels||[],m=void 0;if(e.collapsed)o.a.each(f,function(e,t){r(e,c),n>0&&a.updateRepeatedPanelIds(e,!0)}),d.gridPos.y+=n,s+=n,m=t+n+1;else{var h=t+(f.length+1)*n+1;o.a.each(f,function(e,t){if(r(e,c),n>0){var i=new p.a(e);a.updateRepeatedPanelIds(i,!0),i.gridPos.y+=u*n,a.panels.splice(h+t,0,i)}}),d.panels=[],d.gridPos.y+=u*n,s+=u,m=h+f.length}for(var g=m;g<l.panels.length;g++)l.panels[g].gridPos.y+=s}(c)},e.prototype.updateRepeatedPanelIds=function(e,t){return e.repeatPanelId=e.id,e.id=this.getNextPanelId(),e.repeatIteration=this.iteration,t?e.repeatedByRow=!0:e.repeat=null,e},e.prototype.getSelectedVariableOptions=function(e){return"All"===e.current.text?e.o
1ptions.slice(1,e.options.length):o.a.filter(e.options,{selected:!0})},e.prototype.getRowHeight=function(e){if(!e.panels||0===e.panels.length)return 0;var t=e.gridPos.y,n=o.a.map(e.panels,"gridPos"),r=o.a.maxBy(n,function(e){return e.y+e.h});return r.y+r.h-t},e.prototype.removePanel=function(e){var t=o.a.indexOf(this.panels,e);this.panels.splice(t,1),this.events.emit("panel-removed",e)},e.prototype.removeRow=function(e,t){(!t&&e.collapsed||t&&!e.collapsed)&&this.toggleRow(e),this.removePanel(e)},e.prototype.expandRows=function(){for(var e=0;e<this.panels.length;e++){var t=this.panels[e];"row"===t.type&&(t.collapsed&&this.toggleRow(t))}},e.prototype.collapseRows=function(){for(var e=0;e<this.panels.length;e++){var t=this.panels[e];"row"===t.type&&(t.collapsed||this.toggleRow(t))}},e.prototype.setPanelFocus=function(e){this.meta.focusPanelId=e},e.prototype.updateSubmenuVisibility=function(){var e=this;this.meta.submenuEnabled=function(){return e.links.length>0||(o.a.filter(e.templating.list,function(e){return 2!==e.hide}).length>0||o.a.filter(e.annotations.list,function(e){return!0!==e.hide}).length>0)}()},e.prototype.getPanelInfoById=function(e){for(var t=0;t<this.panels.length;t++)if(this.panels[t].id===e)return{panel:this.panels[t],index:t};return null},e.prototype.duplicatePanel=function(e){var t=e.getSaveModel();return t.id=this.getNextPanelId(),delete t.repeat,delete t.repeatIteration,delete t.repeatPanelId,delete t.scopedVars,t.alert&&delete t.thresholds,delete t.alert,e.gridPos.x+2*e.gridPos.w<=s.e?t.gridPos.x+=e.gridPos.w:t.gridPos.y+=e.gridPos.h,this.addPanel(t),t},e.prototype.formatDate=function(e,t){return e=a.a.isMoment(e)?e:a()(e),t=t||"YYYY-MM-DD HH:mm:ss.SSS","browser"===this.getTimezone()?a()(e).format(t):a.a.utc(e).format(t)},e.prototype.destroy=function(){this.events.removeAllListeners();for(var e=0,t=this.panels;e<t.length;e++){t[e].destroy()}},e.prototype.toggleRow=function(e){var t=o.a.indexOf(this.panels,e);if(e.collapsed){e.collapsed=!1;var n=o.a.some(e.panels,function(e){return e.repeat});if(e.panels.length>0){for(var r=e.panels[0],a=r.gridPos.y-(e.gridPos.y+e.gridPos.h),i=t+1,s=e.gridPos.y,l=0,c=e.panels;l<c.length;l++){var d=c[l];d.gridPos.y-=a,this.panels.splice(i,0,new p.a(d)),i+=1,s=Math.max(s,d.gridPos.y+d.gridPos.h)}for(var u=s-e.gridPos.y-1,f=i;f<this.panels.length;f++)this.panels[f].gridPos.y+=u;e.panels=[],n&&this.processRowRepeats(e)}return this.sortPanelsByGridPos(),void this.events.emit("row-expanded")}var m=this.getRowPanels(t);o.a.pull.apply(o.a,[this.panels].concat(m)),e.panels=o.a.map(m,function(e){return e.getSaveModel()}),e.collapsed=!0,this.events.emit("row-collapsed")},e.prototype.getRowPanels=function(e){for(var t=[],n=e+1;n<this.panels.length;n++){var r=this.panels[n];if("row"===r.type)break;t.push(r)}return t},e.prototype.on=function(e,t){this.events.on(e,t)},e.prototype.off=function(e,t){this.events.off(e,t)},e.prototype.cycleGraphTooltip=function(){this.graphTooltip=(this.graphTooltip+1)%3},e.prototype.sharedTooltipModeEnabled=function(){return this.graphTooltip>0},e.prototype.sharedCrosshairModeOnly=function(){return 1===this.graphTooltip},e.prototype.getRelativeTime=function(e){return e=a.a.isMoment(e)?e:a()(e),"browser"===this.timezone?a()(e).fromNow():a.a.utc(e).fromNow()},e.prototype.getNextQueryLetter=function(e){return o.a.find("ABCDEFGHIJKLMNOPQRSTUVWXYZ",function(t){return o.a.every(e.targets,function(e){return e.refId!==t})})},e.prototype.isTimezoneUtc=function(){return"utc"===this.getTimezone()},e.prototype.getTimezone=function(){return this.timezone?this.timezone:d.a.user.timezone},e.prototype.updateSchema=function(e){new f.a(this).updateSchema(e)},e.prototype.resetOriginalTime=function(){this.originalTime=o.a.cloneDeep(this.time)},e.prototype.hasTimeChanged=function(){return!o.a.isEqual(this.time,this.originalTime)},e.prototype.resetOriginalVariables=function(){this.originalTemplating=o.a.map(this.templating.list,function(e){return{name:e.name,type:e.type,current:o.a.cloneDeep(e.current),filters:o.a.cloneDeep(e.filters)}})},e.prototype.hasVariableValuesChanged=function(){if(this.templating.list.length!==this.originalTemplating.length)return!1;var e=o.a.map(this.templating.list,function(e){return{name:e.name,type:e.type,current:o.a.cloneDeep(e.current),filters:o.a.cloneDeep(e.filters)}});return!o.a.isEqual(e,this.originalTemplating)},e.nonPersistedProperties={events:!0,meta:!0,panels:!0,templating:!0,originalTime:!0,originalTemplating:!0},e}()},,,,function(e,t,n){"use strict";function r(e){return null!=e&&"object"==typeof e}t.isObject=r},function(e,t,n){"use strict";function r(e,t,n,r){for(var a in n)n.hasOwnProperty(a)&&(e[a]=void 0===t[a]?n[a]:t[a])}t.a=r},,,,,,function(e,t,n){"use strict";
1Object.defineProperty(t,"__esModule",{value:!0}),n(715).a.init()},function(e,t,n){"use strict";var r=n(321),a=(n.n(r),n(314)),i=(n.n(a),n(4)),o=n.n(i),s=n(17),l=n.n(s),c=n(27),d=n.n(c),u=n(357),p=(n.n(u),n(358)),f=(n.n(p),n(359)),m=(n.n(f),n(360)),h=(n.n(m),n(3)),g=(n.n(h),n(32)),b=(n.n(g),n(931)),v=(n.n(b),n(932)),y=(n.n(v),n(933)),w=(n.n(y),n(23)),x=n(0),k=n.n(x),_=n(486),E=n(197),T=n(1310);_.init({dsn:"https://[email protected]/1316931",environment:"production",release:"819eeb"}),o.a.move=function(e,t,n){return e.splice(n,0,e.splice(t,1)[0]),e};var S=function(){function e(){this.preBootModules=[],this.registerFunctions={},this.ngModuleDependencies=[]}return e.prototype.useModule=function(e){return this.preBootModules?this.preBootModules.push(e):o.a.extend(e,this.registerFunctions),this.ngModuleDependencies.push(e.name),e},e.prototype.init=function(){var e=this,t=d.a.module("grafana",[]);t.config(["$provide",function(e){e.decorator("$exceptionHandler",["$delegate",function(e){return function(e,t){console.log("[UH-OH!]",e),null!==e&&"object"==typeof e&&"message"in e?_.captureException(new Error(e.message)):_.captureException(e)}}])}]),k.a.locale(w.a.bootData.user.locale),t.config(["$locationProvider","$controllerProvider","$compileProvider","$filterProvider","$httpProvider","$provide",function(t,n,r,a,i,o){r.preAssignBindingsEnabled(!0),"development"===w.a.buildInfo.env?console.log("Angular debug data is enabled."):(r.debugInfoEnabled(!1),console.log("Angular debug data disabled.")),i.useApplyAsync(!0),e.registerFunctions.controller=n.register,e.registerFunctions.directive=r.directive,e.registerFunctions.factory=o.factory,e.registerFunctions.service=o.service,e.registerFunctions.filter=a.register,o.decorator("$http",["$delegate","$templateCache",function(e,t){var n=e.get;return e.get=function(e,r){return e.match(/\.html$/)&&(t.get(e)||(e+="?v="+(new Date).getTime())),n(e,r)},e}])}]),this.ngModuleDependencies=["grafana.core","ngRoute","ngSanitize","$strap.directives","ang-drag-drop","grafana","pasvaz.bindonce","ui.bootstrap","ui.bootstrap.tpls","react"];var r=["controllers","directives","factories","services","filters","routes"];o.a.each(r,function(t){var n="grafana."+t;e.useModule(d.a.module(n,[]))}),this.useModule(E.d),E.d.config(T.a),Object(E.f)();var a=[n.e(0).then(n.bind(null,1982))];Promise.all(a).then(function(){l.a.fn.tooltip.defaults.animation=!1,d.a.bootstrap(document,e.ngModuleDependencies).invoke(function(){o.a.each(e.preBootModules,function(t){o.a.extend(t,e.registerFunctions)}),e.preBootModules=null})}).catch(function(e){console.log("Application boot failed:",e)}),w.a.bootData.user.isSignedIn&&_.setUser({email:w.a.bootData.user.email,id:w.a.bootData.user.id})},e}();t.a=new S},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t){!function(e){"use strict";e(function(){e.support.transition=function(){var e=function(){var e,t=document.createElement("bootstrap"),n={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(e in n)if(void 0!==t.style[e])return n[e]}();return e&&{end:e}}()})}(window.jQuery),function(e){"use strict";function t(){e(".dropdown-backdrop").remove(),e(r).each(function(){n(e(this)).removeClass("open")})}function n(t){var n,r=t.attr("data-target");return r||(r=t.attr("href"),r=r&&/#[A-Za-z]/.test(r)&&r.replace(/.*(?=#[^\s]*$)/,"")),n=r&&e(r),n&&n.length||(n=t.parent()),n}var r="[data-toggle=dropdown]",a=function(t){var n=e(t).on("click.dropdown.data-api",this.toggle);e("html").on("click.dropdown.data-api",function(){n.parent().removeClass("open")})};a.prototype={constructor:a,toggle:function(r){var a,i,o=e(this);if(!o.is(".disabled, :disabled"))return a=n(o),i=a.hasClass("open"),t(),i||("ontouchstart"in document.documentElement&&e('<div class="dropdown-backdrop"/>').insertBefore(e(this)).on("click",t),a.toggleClass("open")),o.focus(),!1},keydown:function(t){var a,i,o,s,l;if(/(38|40|27)/.test(t.keyCode)&&(a=e(this),t.preventDefault(),t.stopPropagation(),!a.is(".disabled, :disabled"))){if(o=n(a),!(s=o.hasClass("open"))||s&&27==t.keyCode)return 27==t.which&&o.find(r).focus(),a.click();i=e("[role=menu] li:not(.divider):visible a",o),i.length&&(l=i.index(i.filter(":focus")),38==t.keyCode&&l>0&&l--,40==t.keyCode&&l<i.length-1&&l++,~l||(l=0),i.eq(l).focus())}}};var i=e.fn.dropdown;e.fn.dropdown=function(t){return this.each(function(){var n=e(this),r=n.data("dropdown");r||n.data("dropdown",r=new a(this)),"string"==typeof t&&r[t].call(n)})},e.fn.dropdown.Constructor=a,e.fn.dropdown.noConflict=function(){return e.fn.dropdown=i,this},e(document).on("click.dropdown.data-api",t).on("click.dropdown.data-api",".dropdown form",function(e){e.stopPropagation()}).on("click.dropdown.data-api",r,a.prototype.toggle).on("keydown.dropdown.data-api",r+", [role=menu]",a.prototype.keydown)}(window.jQuery),function(e){"use strict";var t=function(t,n){this.options=n,this.$element=e(t).delegate('[data-dismiss="modal"]',"click.dismiss.modal",e.proxy(this.hide,this)),this.options.remote&&this.$element.find(".modal
1-body").load(this.options.remote)};t.prototype={constructor:t,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var t=this,n=e.Event("show");this.$element.trigger(n),this.isShown||n.isDefaultPrevented()||(this.isShown=!0,this.escape(),this.backdrop(function(){var n=e.support.transition&&t.$element.hasClass("fade");t.$element.parent().length||t.$element.appendTo(document.body),t.$element.show(),n&&t.$element[0].offsetWidth,t.$element.addClass("in").attr("aria-hidden",!1),t.enforceFocus(),n?t.$element.one(e.support.transition.end,function(){t.$element.focus().trigger("shown")}):t.$element.focus().trigger("shown")}))},hide:function(t){t&&t.preventDefault();t=e.Event("hide"),this.$element.trigger(t),this.isShown&&!t.isDefaultPrevented()&&(this.isShown=!1,this.escape(),e(document).off("focusin.modal"),this.$element.removeClass("in").attr("aria-hidden",!0),e.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal())},enforceFocus:function(){var t=this;e(document).on("focusin.modal",function(e){t.$element[0]===e.target||t.$element.has(e.target).length||t.$element.focus()})},escape:function(){var e=this;this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.modal",function(t){27==t.which&&e.hide()}):this.isShown||this.$element.off("keyup.dismiss.modal")},hideWithTransition:function(){var t=this,n=setTimeout(function(){t.$element.off(e.support.transition.end),t.hideModal()},500);this.$element.one(e.support.transition.end,function(){clearTimeout(n),t.hideModal()})},hideModal:function(){var e=this;this.$element.hide(),this.backdrop(function(){e.removeBackdrop(),e.$element.trigger("hidden")})},removeBackdrop:function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},backdrop:function(t){var n=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var r=e.support.transition&&n;if(this.$backdrop=e('<div class="modal-backdrop '+n+'" />').appendTo(document.body),this.$backdrop.click("static"==this.options.backdrop?e.proxy(this.$element[0].focus,this.$element[0]):e.proxy(this.hide,this)),r&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!t)return;r?this.$backdrop.one(e.support.transition.end,t):t()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),e.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(e.support.transition.end,t):t()):t&&t()}};var n=e.fn.modal;e.fn.modal=function(n){return this.each(function(){var r=e(this),a=r.data("modal"),i=e.extend({},e.fn.modal.defaults,r.data(),"object"==typeof n&&n);a||r.data("modal",a=new t(this,i)),"string"==typeof n?a[n]():i.show&&a.show()})},e.fn.modal.defaults={backdrop:!0,keyboard:!0,show:!0},e.fn.modal.Constructor=t,e.fn.modal.noConflict=function(){return e.fn.modal=n,this},e(document).on("click.modal.data-api",'[data-toggle="modal"]',function(t){var n=e(this),r=n.attr("href"),a=e(n.attr("data-target")||r&&r.replace(/.*(?=#[^\s]+$)/,"")),i=a.data("modal")?"toggle":e.extend({remote:!/#/.test(r)&&r},a.data(),n.data());t.preventDefault(),a.modal(i).one("hide",function(){n.focus()})})}(window.jQuery),function(e){"use strict";var t=function(e,t){this.init("tooltip",e,t)};t.prototype={constructor:t,init:function(t,n,r){var a,i,o,s,l;for(this.type=t,this.$element=e(n),this.options=this.getOptions(r),this.enabled=!0,o=this.options.trigger.split(" "),l=o.length;l--;)s=o[l],"click"==s?this.$element.on("click."+this.type,this.options.selector,e.proxy(this.toggle,this)):"manual"!=s&&(a="hover"==s?"mouseenter":"focus",i="hover"==s?"mouseleave":"blur",this.$element.on(a+"."+this.type,this.options.selector,e.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,e.proxy(this.leave,this)));this.options.selector?this._options=e.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(t){return t=e.extend({},e.fn[this.type].defaults,this.$element.data(),t),t.delay&&"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),t},enter:function(t){var n,r=e.fn[this.type].defaults,a={};
1if(this._options&&e.each(this._options,function(e,t){r[e]!=t&&(a[e]=t)},this),n=e(t.currentTarget)[this.type](a).data(this.type),!n.options.delay||!n.options.delay.show)return n.show();clearTimeout(this.timeout),n.hoverState="in",this.timeout=setTimeout(function(){"in"==n.hoverState&&n.show()},n.options.delay.show)},leave:function(t){var n=e(t.currentTarget)[this.type](this._options).data(this.type);if(this.timeout&&clearTimeout(this.timeout),!n.options.delay||!n.options.delay.hide)return n.hide();n.hoverState="out",this.timeout=setTimeout(function(){"out"==n.hoverState&&n.hide()},n.options.delay.hide)},show:function(){var t,n,r,a,i,o,s=e.Event("show");if(this.hasContent()&&this.enabled){if(this.$element.trigger(s),s.isDefaultPrevented())return;switch(t=this.tip(),this.setContent(),this.options.animation&&t.addClass("fade"),i="function"==typeof this.options.placement?this.options.placement.call(this,t[0],this.$element[0]):this.options.placement,t.detach().css({top:0,left:0,display:"block"}),this.options.container?t.appendTo(this.options.container):t.insertAfter(this.$element),n=this.getPosition(),r=t[0].offsetWidth,a=t[0].offsetHeight,i){case"bottom":o={top:n.top+n.height,left:n.left+n.width/2-r/2};break;case"top":o={top:n.top-a,left:n.left+n.width/2-r/2};break;case"left":o={top:n.top+n.height/2-a/2,left:n.left-r};break;case"right":o={top:n.top+n.height/2-a/2,left:n.left+n.width};break;case"topLeft":o={top:n.top-a,left:n.left+n.width/2-.1*r};break;case"topRight":o={top:n.top-a,left:n.left+n.width/2-.9*r};break;case"rightTop":o={top:n.top+n.height/2-.1*a,left:n.left+n.width};break;case"rightBottom":o={top:n.top+n.height/2-.9*a,left:n.left+n.width};break;case"bottomLeft":o={top:n.top+n.height,left:n.left+n.width/2-.1*r};break;case"bottomRight":o={top:n.top+n.height,left:n.left+n.width/2-.9*r};break;case"leftTop":o={top:n.top+n.height/2-.1*a,left:n.left-r};break;case"leftBottom":o={top:n.top+n.height/2-.9*a,left:n.left-r}}this.applyPlacement(o,i),this.$element.trigger("shown")}},applyPlacement:function(e,t){var n,r,a,i,o=this.tip(),s=o[0].offsetWidth,l=o[0].offsetHeight;o.offset(e).addClass(t).addClass("in"),n=o[0].offsetWidth,r=o[0].offsetHeight,"top"==t&&r!=l&&(e.top=e.top+l-r,i=!0),"bottom"==t||"top"==t?(a=0,e.left<0&&(a=-2*e.left,e.left=0,o.offset(e),n=o[0].offsetWidth,r=o[0].offsetHeight),this.replaceArrow(a-s+n,n,"left")):this.replaceArrow(r-l,r,"top"),i&&o.offset(e)},replaceArrow:function(e,t,n){this.arrow().css(n,e?50*(1-e/t)+"%":"")},setContent:function(){var e=this.tip(),t=this.getTitle();e.find(".tooltip-inner")[this.options.html?"html":"text"](t),e.removeClass("fade in top bottom left right")},hide:function(){var t=this.tip(),n=e.Event("hide");if(this.$element.trigger(n),!n.isDefaultPrevented())return t.removeClass("in"),e.support.transition&&this.$tip.hasClass("fade")?function(){var n=setTimeout(function(){t.off(e.support.transition.end).detach()},500);t.one(e.support.transition.end,function(){clearTimeout(n),t.detach()})}():t.detach(),this.$element.trigger("hidden"),this},fixTitle:function(){var e=this.$element;(e.attr("title")||"string"!=typeof e.attr("data-original-title"))&&e.attr("data-original-title",e.attr("title")||"").attr("title","")},hasContent:function(){return this.getTitle()},getPosition:function(){var t=this.$element[0];return e.extend({},"function"==typeof t.getBoundingClientRect?t.getBoundingClientRect():{width:t.offsetWidth,height:t.offsetHeight},this.$element.offset())},getTitle:function(){var e=this.$element,t=this.options;return e.attr("data-original-title")||("function"==typeof t.title?t.title.call(e[0]):t.title)},tip:function(){return this.$tip=this.$tip||e(this.options.template)},arrow:function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(t){var n=t?e(t.currentTarget)[this.type](this._options).data(this.type):this;n.tip().hasClass("in")?n.hide():n.show()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}};var n=e.fn.tooltip;e.fn.tooltip=function(n){return this.each(function(){var r=e(this),a=r.data("tooltip"),i="object"==typeof n&&n;a||r.data("tooltip",a=new t(this,i)),"string"==typeof n&&a[n]()})},e.fn.tooltip.Constructor=t,e.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},e.fn.tooltip.noConflict=function(){return e.fn.tooltip=n,this}}(window.jQuery),function(e){"use strict";var t=function(t){this.element=e(t)};t.prototype={constructor:t,show:function(){var t,n,r,a=this.element,i=a.closest("ul:not(.dropdown-menu)"),o=a.attr("data-target");o||(o=a.attr("href"),o=o&&o.replace(/.*(?=#[^\s]*$)/,"")),a.parent("li").hasClass("active")||(t=i.find(".active:last a")[0],r=e.Event("show",{relatedTarget:t}),a.trigger(r),r.isDefaultPrevented()||(n=e(o),this.activate(a.parent("li"),i),this.activate(n,n.parent(),function(){a.trigger({type:"shown",relatedTarget:t})})))},activate:function(t,n,r){function a(){i.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),t.addClass("active"),o?(t[0].offsetWidth,t.addClass("in")):t.removeClass("fade"),t.parent(".dropdown-menu")&&t.closest("li.dropdown").addClass("active"),r&&r()}var i=n.find("> .active"),o=r&&e.support.transition&&i.hasClass("fade");o?i.one(e.support.transition.end,a):a(),i.removeClass("in")}};var n=e.fn.tab;e.fn.tab=function(n){return this.each(function(){var r=e(this),a=r.data("tab");a||r.data("tab",a=new t(this)),"string"==typeof n&&a[n]()})},e.fn.tab.Constructor=t,e.fn.tab.noConflict=function(){return e.fn.tab=n,this},e(document).on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(t){t.preventDefault(),e(this).tab("show")})}(window.jQuery),function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.typeahead.defaults,n),this.matcher=this.options.matcher||this.matcher,this.sorter=this.options.sorter||this.sorter,this.highlighter=this.options.highlighter||this.highlighter,this.updater=this.options.updater||this.updater,this.source=this.options.source,this.$menu=e(this.options.menu),this.shown=!1,this.listen()};t.prototype={constructor:t,select:function(){var e=this.$menu.find(".active").attr("data-value")||this.$element.val();return this.$element.val(this.updater(e)).change(),this.hide()},updater:function(e){return e},show:function(){var t=e.extend({},this.$element.position(),{height:this.$element[0].offsetHeight});return this.$menu.insertAfter(this.$element).css({top:t.top+t.height,left:t.left}).show(),this.shown=!0,this},hide:function(){return this.$menu.hide(),this.shown=!1,this},lookup:function(t){var n;return this.query=this.$element.val(),!this.query||this.query.length<this.options.minLength?this.shown?this.hide():this:(n=e.isFunction(this.source)?this.source(this.query,e.proxy(this.process,this)):this.source,n?this.process(n):this)},process:function(t){var n=this;return t=e.grep(t,function(e){return n.matcher(e)}),t=this.sorter(t),t.length?this.render(t.slice(0,this.options.items)).show():this.shown?this.hide():this},matcher:function(e){return~e.toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(e){for(var t,n=[],r=[],a=[];t=e.shift();)t.toLowerCase().indexOf(this.query.toLowerCase())?~t.indexOf(this.query)?r.push(t):a.push(t):n.push(t);return n.concat(r,a)},highlighter:function(e){var t=this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&");return t?e.replace(new RegExp("("+t+")","ig"),function(e,t){return"<strong>"+t+"</strong>"}):e},render:function(t){var n=this;return t=e(t).map(function(t,r){return t=e(n.options.item).attr("data-value",r),t.find("a").html(n.highlighter(r)),t[0]}),this.$menu.html(t),this},next:function(t){var n=this.$menu.find(".active").removeClass("active"),r=n.next();r.length||(r=e(this.$menu.find("li")[0])),r.addClass("active")},prev:function(e){var t=this.$menu.find(".active").removeClass("active"),n=t.prev();n.length||(n=this.$menu.find("li").last()),n.addClass("active")},listen:function(){this.$element.on("focus",e.proxy(this.focus,this)).on("blur",e.proxy(this.blur,this)).on("keypress",e.proxy(this.keypress,this)).on("keyup",e.proxy(this.keyup,this)),this.eventSupported("keydown")&&this.$element.on("key
1down",e.proxy(this.keydown,this)),this.$menu.on("click",e.proxy(this.click,this)).on("mouseenter","li",e.proxy(this.mouseenter,this)).on("mouseleave","li",e.proxy(this.mouseleave,this))},destroy:function(){this.$element.off().removeData("typeahead"),this.$menu.off()},eventSupported:function(e){var t=e in this.$element;return t||(this.$element.setAttribute(e,"return;"),t="function"==typeof this.$element[e]),t},move:function(e){if(this.shown&&(!e.shiftKey||40!==e.keyCode)){switch(e.keyCode){case 9:case 13:case 27:e.preventDefault();break;case 38:e.preventDefault(),this.prev();break;case 40:e.preventDefault(),this.next()}e.stopPropagation()}},keydown:function(t){this.suppressKeyPressRepeat=~e.inArray(t.keyCode,[40,38,9,13,27,57]),this.move(t)},keypress:function(e){this.suppressKeyPressRepeat||this.move(e)},keyup:function(e){switch(e.keyCode){case 40:case 38:case 16:case 17:case 18:break;case 9:case 13:if(!this.shown)return;this.select();break;case 27:if(!this.shown)return;this.hide();break;default:this.lookup()}13===e.keyCode&&void 0===this.$menu.find(".active").attr("data-value")?this.$element.submit():(e.stopPropagation(),e.preventDefault())},focus:function(e){this.focused=!0},blur:function(e){this.focused=!1,!this.mousedover&&this.shown&&this.hide()},click:function(e){e.stopPropagation(),e.preventDefault(),this.select(),this.$element.focus()},mouseenter:function(t){this.mousedover=!0,this.$menu.find(".active").removeClass("active"),e(t.currentTarget).addClass("active")},mouseleave:function(e){this.mousedover=!1,!this.focused&&this.shown&&this.hide()}};var n=e.fn.typeahead;e.fn.typeahead=function(n){return this.each(function(){var r=e(this),a=r.data("typeahead"),i="object"==typeof n&&n;a||r.data("typeahead",a=new t(this,i)),"string"==typeof n&&a[n]()})},e.fn.typeahead.defaults={source:[],items:8,menu:'<ul class="typeahead dropdown-menu"></ul>',item:'<li><a href="#"></a></li>',minLength:1},e.fn.typeahead.Constructor=t,e.fn.typeahead.noConflict=function(){return e.fn.typeahead=n,this},e(document).on("focus.typeahead.data-api",'[data-provide="typeahead"]',function(t){var n=e(this);n.data("typeahead")||n.typeahead(n.data())})}(window.jQuery),function(e){"use strict";var t=function(t,n){this.options=e.extend({},e.fn.affix.defaults,n),this.$window=e(window).on("scroll.affix.data-api",e.proxy(this.checkPosition,this)).on("click.affix.data-api",e.proxy(function(){setTimeout(e.proxy(this.checkPosition,this),1)},this)),this.$element=e(t),this.checkPosition()};t.prototype.checkPosition=function(){if(this.$element.is(":visible")){var t,n=e(document).height(),r=this.$window.scrollTop(),a=this.$element.offset(),i=this.options.offset,o=i.bottom,s=i.top;"object"!=typeof i&&(o=s=i),"function"==typeof s&&(s=i.top()),"function"==typeof o&&(o=i.bottom()),t=!(null!=this.unpin&&r+this.unpin<=a.top)&&(null!=o&&a.top+this.$element.height()>=n-o?"bottom":null!=s&&r<=s&&"top"),this.affixed!==t&&(this.affixed=t,this.unpin="bottom"==t?a.top-r:null,this.$element.removeClass("affix affix-top affix-bottom").addClass("affix"+(t?"-"+t:"")))}};var n=e.fn.affix;e.fn.affix=function(n){return this.each(function(){var r=e(this),a=r.data("affix"),i="object"==typeof n&&n;a||r.data("affix",a=new t(this,i)),"string"==typeof n&&a[n]()})},e.fn.affix.Constructor=t,e.fn.affix.defaults={offset:0},e.fn.affix.noConflict=function(){return e.fn.affix=n,this},e(window).on("load",function(){e('[data-spy="affix"]').each(function(){var t=e(this),n=t.data();n.offset=n.offset||{},n.offsetBottom&&(n.offset.bottom=n.offsetBottom),n.offsetTop&&(n.offset.top=n.offsetTop),t.affix(n)})})}(window.jQuery)},function(e,t){angular.module("ui.bootstrap",["ui.bootstrap.tpls","ui.bootstrap.position","ui.bootstrap.dateparser","ui.bootstrap.datepicker"]),angular.module("ui.bootstrap.tpls",["template/datepicker/datepicker.html","template/datepicker/day.html","template/datepicker/month.html","template/datepicker/popup.html","template/datepicker/year.html"]),angular.module("ui.bootstrap.position",[]).factory("$position",["$document","$window",function(e,t){function n(e,n){return e.currentStyle?e.currentStyle[n]:t.getComputedStyle?t.getComputedStyle(e)[n]:e.style[n]}function r(e){return"static"===(n(e,"position")||"static")}var a=function(t){for(var n=e[0],a=t.offsetParent||n;a&&a!==n&&r(a);)a=a.offsetParent;return a||n};return{position:function(t){var n=this.offset(t),r={top:0,left:0},i=a(t[0]);i!=e[0]&&(r=this.offset(angular.element(i)),r.top+=i.clientTop-i.scrollTop,r.left+=i.clientLeft-i.scrollLeft);var o=t[0].getBoundingClientRect();return{width:o.width||t.prop("offsetWidth"),height:o.height||t.prop("offsetHeight"),top:n.top-r.top,left
1:n.left-r.left}},offset:function(n){var r=n[0].getBoundingClientRect();return{width:r.width||n.prop("offsetWidth"),height:r.height||n.prop("offsetHeight"),top:r.top+(t.pageYOffset||e[0].documentElement.scrollTop),left:r.left+(t.pageXOffset||e[0].documentElement.scrollLeft)}},positionElements:function(e,t,n,r){var a,i,o,s,l=n.split("-"),c=l[0],d=l[1]||"center";a=r?this.offset(e):this.position(e),i=t.prop("offsetWidth"),o=t.prop("offsetHeight");var u={center:function(){return a.left+a.width/2-i/2},left:function(){return a.left},right:function(){return a.left+a.width}},p={center:function(){return a.top+a.height/2-o/2},top:function(){return a.top},bottom:function(){return a.top+a.height}};switch(c){case"right":s={top:p[d](),left:u[c]()};break;case"left":s={top:p[d](),left:a.left-i};break;case"bottom":s={top:p[c](),left:u[d]()};break;default:s={top:a.top-o,left:u[d]()}}return s}}}]),angular.module("ui.bootstrap.dateparser",[]).service("dateParser",["$log","$locale","orderByFilter",function(e,t,n){function r(e){var t=[],r=e.split("");return angular.forEach(o,function(n,a){var i=e.indexOf(a);if(i>-1){e=e.split(""),r[i]="("+n.regex+")",e[i]="$";for(var o=i+1,s=i+a.length;o<s;o++)r[o]="",e[o]="$";e=e.join(""),t.push({index:i,apply:n.apply})}}),{regex:new RegExp("^"+r.join("")+"$"),map:n(t,"index")}}function a(e,t,n){return!(n<1)&&(1===t&&n>28?29===n&&(e%4==0&&e%100!=0||e%400==0):3!==t&&5!==t&&8!==t&&10!==t||n<31)}var i=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;this.parsers={};var o={yyyy:{regex:"\\d{4}",apply:function(e){this.year=+e}},yy:{regex:"\\d{2}",apply:function(e){this.year=+e+2e3}},y:{regex:"\\d{1,4}",apply:function(e){this.year=+e}},MMMM:{regex:t.DATETIME_FORMATS.MONTH.join("|"),apply:function(e){this.month=t.DATETIME_FORMATS.MONTH.indexOf(e)}},MMM:{regex:t.DATETIME_FORMATS.SHORTMONTH.join("|"),apply:function(e){this.month=t.DATETIME_FORMATS.SHORTMONTH.indexOf(e)}},MM:{regex:"0[1-9]|1[0-2]",apply:function(e){this.month=e-1}},M:{regex:"[1-9]|1[0-2]",apply:function(e){this.month=e-1}},dd:{regex:"[0-2][0-9]{1}|3[0-1]{1}",apply:function(e){this.date=+e}},d:{regex:"[1-2]?[0-9]{1}|3[0-1]{1}",apply:function(e){this.date=+e}},EEEE:{regex:t.DATETIME_FORMATS.DAY.join("|")},EEE:{regex:t.DATETIME_FORMATS.SHORTDAY.join("|")},HH:{regex:"(?:0|1)[0-9]|2[0-3]",apply:function(e){this.hours=+e}},hh:{regex:"0[0-9]|1[0-2]",apply:function(e){this.hours=+e}},H:{regex:"1?[0-9]|2[0-3]",apply:function(e){this.hours=+e}},h:{regex:"[0-9]|1[0-2]",apply:function(e){this.hours=+e}},mm:{regex:"[0-5][0-9]",apply:function(e){this.minutes=+e}},m:{regex:"[0-9]|[1-5][0-9]",apply:function(e){this.minutes=+e}},sss:{regex:"[0-9][0-9][0-9]",apply:function(e){this.milliseconds=+e}},ss:{regex:"[0-5][0-9]",apply:function(e){this.seconds=+e}},s:{regex:"[0-9]|[1-5][0-9]",apply:function(e){this.seconds=+e}},a:{regex:t.DATETIME_FORMATS.AMPMS.join("|"),apply:function(e){12===this.hours&&(this.hours=0),"PM"===e&&(this.hours+=12)}}};this.parse=function(n,o,s){if(!angular.isString(n)||!o)return n;o=t.DATETIME_FORMATS[o]||o,o=o.replace(i,"\\$&"),this.parsers[o]||(this.parsers[o]=r(o));var l=this.parsers[o],c=l.regex,d=l.map,u=n.match(c);if(u&&u.length){var p,f;angular.isDate(s)&&!isNaN(s.getTime())?p={year:s.getFullYear(),month:s.getMonth(),date:s.getDate(),hours:s.getHours(),minutes:s.getMinutes(),seconds:s.getSeconds(),milliseconds:s.getMilliseconds()}:(s&&e.warn("dateparser:","baseDate is not a valid date"),p={year:1900,month:0,date:1,hours:0,minutes:0,seconds:0,milliseconds:0});for(var m=1,h=u.length;m<h;m++){var g=d[m-1];g.apply&&g.apply.call(p,u[m])}return a(p.year,p.month,p.date)&&(f=new Date(p.year,p.month,p.date,p.hours,p.minutes,p.seconds,p.milliseconds||0)),f}}}]),angular.module("ui.bootstrap.datepicker",["ui.bootstrap.dateparser","ui.bootstrap.position"]).value("$datepickerSuppressError",!1).constant("datepickerConfig",{formatDay:"dd",formatMonth:"MMMM",formatYear:"yyyy",formatDayHeader:"EEE",formatDayTitle:"MMMM yyyy",formatMonthTitle:"yyyy",datepickerMode:"day",minMode:"day",maxMode:"year",showWeeks:!0,startingDay:0,yearRange:20,minDate:null,maxDate:null,shortcutPropagation:!1}).controller("DatepickerController",["$scope","$attrs","$parse","$interpolate","$log","dateFilter","datepickerConfig","$datepickerSuppressError",function(e,t,n,r,a,i,o,s){var l=this,c={$setViewValue:angular.noop};this.modes=["day","month","year"],angular.forEach(["formatDay","formatMonth","formatYear","formatDayHeader","formatDayTitle","formatMonthTitle","showWeeks","startingDay","yearRange","shortcutPropagation"],function(n,a){l[n]=angular.isDefined(t[n])?a<6?r(t[n])(e.$parent):e.$parent.$eval(t[n]):o[n]}),angular.forEach(["minDate","maxDate"],function(r){t[r]?e.$parent.$watch(n(t[r]),function(e){l[r]=e?new Date(e):null,l.refreshView()}):l[r]=o[r]?new Date(o[r]):null}),angular.forEach(["minMode","maxMode"],function(r){t[r]?e.$parent.$watch(n(t[r]),function(n){l[r]=angular.isDefined(n)?n:t[r],e[r]=l[r],("minMode"==r&&l.modes.indexOf(e.datepickerMode)<l.modes.indexOf(l[r])||"maxMode"==r&&l.modes.indexOf(e.datepickerMode)>l.modes.indexOf(l[r]))&&(e.datepickerMode=l[r])}):(l[r]=o[r]||null,e[r]=l[r])}),e.datepickerMode=e.datepickerMode||o.datepickerMode,e.uniqueId="datepicker-"+e.$id+"-"+Math.floor(1e4*Math.random()),angular.isDefined(t.initDate)?(this.activeDate=e.$parent.$eval(t.initDate)||new Date,e.$parent.$watch(t.initDate,function(e){e&&(c.$isEmpty(c.$modelValue)||c.$invalid)&&
1(l.activeDate=e,l.refreshView())})):this.activeDate=new Date,e.isActive=function(t){return 0===l.compare(t.date,l.activeDate)&&(e.activeDateId=t.uid,!0)},this.init=function(e){c=e,c.$render=function(){l.render()}},this.render=function(){if(c.$viewValue){var e=new Date(c.$viewValue);!isNaN(e)?this.activeDate=e:s||a.error('Datepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.')}this.refreshView()},this.refreshView=function(){if(this.element){this._refreshView();var e=c.$viewValue?new Date(c.$viewValue):null;c.$setValidity("dateDisabled",!e||this.element&&!this.isDisabled(e))}},this.createDateObject=function(e,t){var n=c.$viewValue?new Date(c.$viewValue):null;return{date:e,label:i(e,t),selected:n&&0===this.compare(e,n),disabled:this.isDisabled(e),current:0===this.compare(e,new Date),customClass:this.customClass(e)}},this.isDisabled=function(n){return this.minDate&&this.compare(n,this.minDate)<0||this.maxDate&&this.compare(n,this.maxDate)>0||t.dateDisabled&&e.dateDisabled({date:n,mode:e.datepickerMode})},this.customClass=function(t){return e.customClass({date:t,mode:e.datepickerMode})},this.split=function(e,t){for(var n=[];e.length>0;)n.push(e.splice(0,t));return n},this.fixTimeZone=function(e){var t=e.getHours();e.setHours(23===t?t+2:0)},e.select=function(t){if(e.datepickerMode===l.minMode){var n=c.$viewValue?new Date(c.$viewValue):new Date(0,0,0,0,0,0,0);n.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()),c.$setViewValue(n),c.$render()}else l.activeDate=t,e.datepickerMode=l.modes[l.modes.indexOf(e.datepickerMode)-1]},e.move=function(e){var t=l.activeDate.getFullYear()+e*(l.step.years||0),n=l.activeDate.getMonth()+e*(l.step.months||0);l.activeDate.setFullYear(t,n,1),l.refreshView()},e.toggleMode=function(t){t=t||1,e.datepickerMode===l.maxMode&&1===t||e.datepickerMode===l.minMode&&-1===t||(e.datepickerMode=l.modes[l.modes.indexOf(e.datepickerMode)+t])},e.keys={13:"enter",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down"};var d=function(){l.element[0].focus()};e.$on("datepicker.focus",d),e.keydown=function(t){var n=e.keys[t.which];if(n&&!t.shiftKey&&!t.altKey)if(t.preventDefault(),l.shortcutPropagation||t.stopPropagation(),"enter"===n||"space"===n){if(l.isDisabled(l.activeDate))return;e.select(l.activeDate),d()}else!t.ctrlKey||"up"!==n&&"down"!==n?(l.handleKeyDown(n,t),l.refreshView()):(e.toggleMode("up"===n?1:-1),d())}}]).directive("datepicker",function(){return{restrict:"EA",replace:!0,templateUrl:function(e,t){return t.templateUrl||"template/datepicker/datepicker.html"},scope:{datepickerMode:"=?",dateDisabled:"&",customClass:"&",shortcutPropagation:"&?"},require:["datepicker","^ngModel"],controller:"DatepickerController",controllerAs:"datepicker",link:function(e,t,n,r){var a=r[0],i=r[1];a.init(i)}}}).directive("daypicker",["dateFilter",function(e){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/day.html",require:"^datepicker",link:function(t,n,r,a){function i(e,t){return 1!==t||e%4!=0||e%100==0&&e%400!=0?l[t]:29}function o(e,t){for(var n,r=new Array(t),i=new Date(e),o=0;o<t;)n=new Date(i),a.fixTimeZone(n),r[o++]=n,i.setDate(i.getDate()+1);return r}function s(e){var t=new Date(e);t.setDate(t.getDate()+4-(t.getDay()||7));var n=t.getTime();return t.setMonth(0),t.setDate(1),Math.floor(Math.round((n-t)/864e5)/7)+1}t.showWeeks=a.showWeeks,a.step={months:1},a.element=n;var l=[31,28,31,30,31,30,31,31,30,31,30,31];a._refreshView=function(){var n=a.activeDate.getFullYear(),r=a.activeDate.getMonth(),i=new Date(n,r,1),l=a.startingDay-i.getDay(),c=l>0?7-l:-l,d=new Date(i);c>0&&d.setDate(1-c);for(var u=o(d,42),p=0;p<42;p++)u[p]=angular.extend(a.createDateObject(u[p],a.formatDay),{secondary:u[p].getMonth()!==r,uid:t.uniqueId+"-"+p});t.labels=new Array(7);for(var f=0;f<7;f++)t.labels[f]={abbr:e(u[f].date,a.formatDayHeader),full:e(u[f].date,"EEEE")};if(t.title=e(a.activeDate,a.formatDayTitle),t.rows=a.split(u,7),t.showWeeks){t.weekNumbers=[];for(var m=(11-a.startingDay)%7,h=t.rows.length,g=0;g<h;g++)t.weekNumbers.push(s(t.rows[g][m].date))}},a.compare=function(e,t){return new Date(e.getFullYear(),e.getMonth(),e.getDate())-new Date(t.getFullYear(),t.getMonth(),t.getDate())},a.handleKeyDown=function(e,t){var n=a.activeDate.getDate();if("left"===e)n-=1;else if("up"===e)n-=7;else if("right"===e)n+=1;else if("down"===e)n+=7;else if("pageup"===e||"pagedown"===e){var r=a.activeDate.getMonth()+("pageup"===e?-1:1);a.activeDate.setMonth(r,1),n=Math.min(i(a.activeDate.getFullYear(),a.activeDate.getMonth()),n)}else"home"===e?n=1:"end"===e&&(n=i(a.activeDate.getFullYear(),a.activeDate.getMonth()));a.activeDate.setDate(n)},a.refreshView()}}}]).directive("monthpicker",["dateFilter",function(e){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/month.html",require:"^datepicker",link:function(t,n,r,a){a.step={years:1},a.element=n,a._refreshView=function(){for(var n,r=new Array(12),i=a.activeDate.getFullYear(),o=0;o<12;o++)n=new Date(i,o,1),a.fixTimeZone(n),r[o]=angular.extend(a.createDateObject(n,a.formatMonth),{uid:t.uniqueId+"-"+o});t.title=e(a.activeDate,a.formatMonthTitle),t.rows=a.split(r,3)},a.compare=function(e,t){return new Date(e.getFullYear(),e.getMonth())-new Date(t.getFullYear(),t.getMonth())},a.handleKeyDown=function(e,t){var n=a.activeDate.getMonth();if("left"===e)n-=1;else if("up"===e)n-=3;else if("right"===e)n+=1;else if("down"===e)n+=3;else if("pageup"===e||"pagedown"===e){var r=a.activeDate.getFullYear()+("pageup"===e?-1:1);a.activeDate.setFullYear(r)}else"home"===e?n=0:"end"===e&&(n=11);a.activeDate.setMonth(n)},a.refreshView()}}}]).directive("yearpicker",["dateFilter",function(e){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/year.html",require:"^datepicker",link:function(e,t,n,r){function a(e){return parseInt((e-1)/i,10)*i+1}var i=r.yearRange;r.step={years:i},r.element=t,r._refreshView=function(){for(var t,n=new Array(i),o=0,s=a(r.activeDate.getFullYear());o<i;o++)t=new Date(s+o,0,1),r.fixTimeZone(t),n[o]=angular.extend(r.createDateObject(t,r.formatYear),{uid:e.uniqueId+"-"+o});
1e.title=[n[0].label,n[i-1].label].join(" - "),e.rows=r.split(n,5)},r.compare=function(e,t){return e.getFullYear()-t.getFullYear()},r.handleKeyDown=function(e,t){var n=r.activeDate.getFullYear();"left"===e?n-=1:"up"===e?n-=5:"right"===e?n+=1:"down"===e?n+=5:"pageup"===e||"pagedown"===e?n+=("pageup"===e?-1:1)*r.step.years:"home"===e?n=a(r.activeDate.getFullYear()):"end"===e&&(n=a(r.activeDate.getFullYear())+i-1),r.activeDate.setFullYear(n)},r.refreshView()}}}]).constant("datepickerPopupConfig",{datepickerPopup:"yyyy-MM-dd",datepickerPopupTemplateUrl:"template/datepicker/popup.html",datepickerTemplateUrl:"template/datepicker/datepicker.html",html5Types:{date:"yyyy-MM-dd","datetime-local":"yyyy-MM-ddTHH:mm:ss.sss",month:"yyyy-MM"},currentText:"Today",clearText:"Clear",closeText:"Done",closeOnDateSelection:!0,appendToBody:!1,showButtonBar:!0,onOpenFocus:!0}).directive("datepickerPopup",["$compile","$parse","$document","$rootScope","$position","dateFilter","dateParser","datepickerPopupConfig","$timeout",function(e,t,n,r,a,i,o,s,l){return{restrict:"EA",require:"ngModel",scope:{isOpen:"=?",currentText:"@",clearText:"@",closeText:"@",dateDisabled:"&",customClass:"&"},link:function(c,d,u,p){function f(e){return e.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()})}function m(e){angular.isNumber(e)&&(e=new Date(e));{if(!e)return null;if(angular.isDate(e)&&!isNaN(e))return e;if(angular.isString(e)){var t=o.parse(e,g,c.date);return isNaN(t)?void 0:t}}}function h(e,t){var n=e||t;if(!u.ngRequired&&!n)return!0;if(angular.isNumber(n)&&(n=new Date(n)),n){if(angular.isDate(n)&&!isNaN(n))return!0;if(angular.isString(n)){var r=o.parse(n,g);return!isNaN(r)}return!1}return!0}var g,b=angular.isDefined(u.closeOnDateSelection)?c.$parent.$eval(u.closeOnDateSelection):s.closeOnDateSelection,v=angular.isDefined(u.datepickerAppendToBody)?c.$parent.$eval(u.datepickerAppendToBody):s.appendToBody,y=angular.isDefined(u.onOpenFocus)?c.$parent.$eval(u.onOpenFocus):s.onOpenFocus,w=angular.isDefined(u.datepickerPopupTemplateUrl)?u.datepickerPopupTemplateUrl:s.datepickerPopupTemplateUrl,x=angular.isDefined(u.datepickerTemplateUrl)?u.datepickerTemplateUrl:s.datepickerTemplateUrl,k={};c.showButtonBar=angular.isDefined(u.showButtonBar)?c.$parent.$eval(u.showButtonBar):s.showButtonBar,c.getText=function(e){return c[e+"Text"]||s[e+"Text"]},c.isDisabled=function(e){return"today"===e&&(e=new Date),c.watchData.minDate&&c.compare(e,k.minDate)<0||c.watchData.maxDate&&c.compare(e,k.maxDate)>0},c.compare=function(e,t){return new Date(e.getFullYear(),e.getMonth(),e.getDate())-new Date(t.getFullYear(),t.getMonth(),t.getDate())};var _=!1;if(s.html5Types[u.type]?(g=s.html5Types[u.type],_=!0):(g=u.datepickerPopup||s.datepickerPopup,u.$observe("datepickerPopup",function(e,t){var n=e||s.datepickerPopup;if(n!==g&&(g=n,p.$modelValue=null,!g))throw new Error("datepickerPopup must have a date format specified.")})),!g)throw new Error("datepickerPopup must have a date format specified.");if(_&&u.datepickerPopup)throw new Error("HTML5 date input types do not support custom formats.");var E=angular.element("<div datepicker-popup-wrap><div datepicker></div></div>");E.attr({"ng-model":"date","ng-change":"dateSelection(date)","template-url":w});var T=angular.element(E.children()[0]);if(T.attr("template-url",x),_&&"month"===u.type&&(T.attr("datepicker-mode",'"month"'),T.attr("min-mode","month")),u.datepickerOptions){var S=c.$parent.$eval(u.datepickerOptions);S&&S.initDate&&(c.initDate=S.initDate,T.attr("init-date","initDate"),delete S.initDate),angular.forEach(S,function(e,t){T.attr(f(t),e)})}c.watchData={},angular.forEach(["minMode","maxMode","minDate","maxDate","datepickerMode","initDate","shortcutPropagation"],function(e){if(u[e]){var n=t(u[e]);if(c.$parent.$watch(n,function(t){c.watchData[e]=t,"minDate"!==e&&"maxDate"!==e||(k[e]=new Date(t))}),T.attr(f(e),"watchData."+e),"datepickerMode"===e){var r=n.assign;c.$watch("watchData."+e,function(e,t){angular.isFunction(r)&&e!==t&&r(c.$parent,e)})}}}),u.dateDisabled&&T.attr("date-disabled","dateDisabled({ date: date, mode: mode })"),u.showWeeks&&T.attr("show-weeks",u.showWeeks),u.customClass&&T.attr("custom-class","customClass({ date: date, mode: mode })"),_?p.$formatters.push(function(e){return c.date=e,e}):(p.$$parserName="date",p.$validators.date=h,p.$parsers.unshift(m),p.$formatters.push(function(e){return c.date=e,p.$isEmpty(e)?e:i(e,g)})),c.dateSelection=function(e){angular.isDefined(e)&&(c.date=e);var t=c.date?i(c.date,g):null;d.val(t),p.$setViewValue(t),b&&(c.isOpen=!1,d[0].focus())},p.$viewChangeListeners.push(function(){c.date=o.parse(p.$viewValue,g,c.date)});var C=function(e){!c.isOpen||d[0].contains(e.target)||E[0].contains(e.target)||c.$apply(function(){c.isOpen=!1})},A=function(e){27===e.which&&c.isOpen?(e.preventDefault(),e.stopPropagation(),c.$apply(function(){c.isOpen=!1}),d[0].focus()):40!==e.which||c.isOpen||(e.preventDefault(),e.stopPropagation(),c.$apply(function(){c.isOpen=!0}))};d.bind("keydown",A),c.keydown=function(e){27===e.which&&(c.isOpen=!1,d[0].focus())},c.$watch("isOpen",function(e){e?(c.position=v?a.offset(d):a.position(d),c.position.top=c.position.top+d.prop("offsetHeight"),l(function(){y&&c.$broadcast("datepicker.focus"),n.bind("click",C)},0,!1)):n.unbind("click",C)}),c.select=function(e){if("today"===e){var t=new Date;angular.isDate(c.date)?(e=new Date(c.date),e.setFullYear(t.getFullYear(),t.getMonth(),t.getDate())):e=new Date(t.setHours(0,0,0,0))}c.dateSelection(e)},c.close=function(){c.isOpen=!1,d[0].focus()};var N=e(E)(c);E.remove(),v?n.find("body").append(N):d.after(N),c.$on("$destroy",function(){!0===c.isOpen&&(r.$$ph
1ase||c.$apply(function(){c.isOpen=!1})),N.remove(),d.unbind("keydown",A),n.unbind("click",C)})}}}]).directive("datepickerPopupWrap",function(){return{restrict:"EA",replace:!0,transclude:!0,templateUrl:function(e,t){return t.templateUrl||"template/datepicker/popup.html"}}}),angular.module("template/datepicker/datepicker.html",[]).run(["$templateCache",function(e){e.put("template/datepicker/datepicker.html",'<div ng-switch="datepickerMode" role="application" ng-keydown="keydown($event)">\n <daypicker ng-switch-when="day" tabindex="0"></daypicker>\n <monthpicker ng-switch-when="month" tabindex="0"></monthpicker>\n <yearpicker ng-switch-when="year" tabindex="0"></yearpicker>\n</div>')}]),angular.module("template/datepicker/day.html",[]).run(["$templateCache",function(e){e.put("template/datepicker/day.html",'<table role="grid" aria-labelledby="{{::uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n <thead>\n <tr>\n <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n <th colspan="{{::5 + showWeeks}}"><button id="{{::uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" ng-disabled="datepickerMode === maxMode" tabindex="-1" style="width:100%;"><strong>{{title}}</strong></button></th>\n <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n </tr>\n <tr>\n <th ng-if="showWeeks" class="text-center"></th>\n <th ng-repeat="label in ::labels track by $index" class="text-center"><small aria-label="{{::label.full}}">{{::label.abbr}}</small></th>\n </tr>\n </thead>\n <tbody>\n <tr ng-repeat="row in rows track by $index">\n <td ng-if="showWeeks" class="text-center h6"><em>{{ weekNumbers[$index] }}</em></td>\n <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{::dt.uid}}" ng-class="::dt.customClass">\n <button type="button" style="min-width:100%;" class="btn btn-default btn-sm" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="::{\'text-muted\': dt.secondary, \'text-info\': dt.current}">{{::dt.label}}</span></button>\n </td>\n </tr>\n </tbody>\n</table>\n')}]),angular.module("template/datepicker/month.html",[]).run(["$templateCache",function(e){e.put("template/datepicker/month.html",'<table role="grid" aria-labelledby="{{::uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n <thead>\n <tr>\n <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n <th><button id="{{::uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" ng-disabled="datepickerMode === maxMode" tabindex="-1" style="width:100%;"><strong>{{title}}</strong></button></th>\n <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n </tr>\n </thead>\n <tbody>\n <tr ng-repeat="row in rows track by $index">\n <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{::dt.uid}}" ng-class="::dt.customClass">\n <button type="button" style="min-width:100%;" class="btn btn-default" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="::{\'text-info\': dt.current}">{{::dt.label}}</span></button>\n </td>\n </tr>\n </tbody>\n</table>\n')}]),angular.module("template/datepicker/popup.html",[]).run(["$templateCache",function(e){e.put("template/datepicker/popup.html",'<ul class="dropdown-menu" ng-if="isOpen" style="display: block" ng-style="{top: position.top+\'px\', left: position.left+\'px\'}" ng-keydown="keydown($event)" ng-click="$event.stopPropagation()">\n\t<li ng-transclude></li>\n\t<li ng-if="showButtonBar" style="padding:10px 9px 2px">\n\t\t<span class="btn-group pull-left">\n\t\t\t<button type="button" class="btn btn-sm btn-info" ng-click="select(\'today\')" ng-disabled="isDisabled(\'today\')">{{ getText(\'current\') }}</button>\n\t\t\t<button type="button" class="btn btn-sm btn-danger" ng-click="select(null)">{{ getText(\'clear\') }}</button>\n\t\t</span>\n\t\t<button type="button" class="btn btn-sm btn-success pull-right" ng-click="close()">{{ getText(\'close\') }}</button>\n\t</li>\n</ul>\n')}]),angular.module("template/datepicker/year.html",[]).run(["$templateCache",function(e){e.put("template/datepicker/year.html",'<table role="grid" aria-labelledby="{{::uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n <thead>\n <tr>\n <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n <th colspan="3"><button id="{{::uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" ng-disabled="datepickerMode === max
1Mode" tabindex="-1" style="width:100%;"><strong>{{title}}</strong></button></th>\n <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n </tr>\n </thead>\n <tbody>\n <tr ng-repeat="row in rows track by $index">\n <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{::dt.uid}}">\n <button type="button" style="min-width:100%;" class="btn btn-default" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="::{\'text-info\': dt.current}">{{::dt.label}}</span></button>\n </td>\n </tr>\n </tbody>\n</table>\n')}])},function(e,t){/** 2 * AngularStrap - Twitter Bootstrap directives for AngularJS 3 * @version v0.7.5 - 2013-07-21 4 * @link http://mgcrea.github.com/angular-strap 5 * @author Olivier Louvignes <[email protected]> 6 * @license MIT License, http://www.opensource.org/licenses/MIT 7 */ 8angular.module("$strap.config",[]).value("$strapConfig",{}),angular.module("$strap.filters",["$strap.config"]),angular.module("$strap.directives",["$strap.config"]),angular.module("$strap",["$strap.filters","$strap.directives","$strap.config"]),angular.module("$strap.directives").factory("$modal",["$rootScope","$compile","$http","$timeout","$q","$templateCache","$strapConfig",function(e,t,n,r,a,i,o){return function(s){function l(s){var l=angular.extend({show:!0},o.modal,s),c=l.scope?l.scope:e.$new(),d=l.template;return a.when(l.templateHtml||i.get(d)||n.get(d,{cache:!0}).then(function(e){return e.data})).then(function(e){var n=c.$id;d&&(n+=d.replace(".html","").replace(/[\/|\.|:]/g,"-"));var a=$('<div class="modal hide" tabindex="-1"></div>').attr("id",n).html(e);return l.modalClass&&a.addClass(l.modalClass),$("body").append(a),r(function(){t(a)(c)}),c.$modal=function(e){a.modal(e)},angular.forEach(["show","hide"],function(e){c[e]=function(){a.modal(e)}}),c.dismiss=c.hide,angular.forEach(["show","shown","hide","hidden"],function(e){a.on(e,function(t){c.$emit("modal-"+e,t)})}),a.on("shown",function(e){$("input[autofocus], textarea[autofocus]",a).first().trigger("focus")}),a.on("hidden",function(e){l.persist||c.$destroy()}),c.$on("$destroy",function(){a.remove()}),a.modal(l),a})}return new l(s)}}]),angular.module("$strap.directives").directive("bsTooltip",["$parse","$compile",function(e,t){return{restrict:"A",scope:!0,link:function(t,n,r,a){var i=e(r.bsTooltip),o=(i.assign,i(t));t.$watch(r.bsTooltip,function(e,t){e!==t&&(o=e)}),n.on("show",function(e){$(".tooltip.in").each(function(){var e=$
8(this),t=e.data("tooltip");t&&!t.$element.is(n)&&e.tooltip("hide")})}),n.tooltip({title:function(){return angular.isFunction(o)?o.apply(null,arguments):o},html:!0,container:"body"}),n.data("tooltip").show=function(){var e=$.fn.tooltip.Constructor.prototype.show.apply(this,arguments);return this.tip().data("tooltip",this),e},t._tooltip=function(e){n.tooltip(e)},t.hide=function(){n.tooltip("hide")},t.show=function(){n.tooltip("show")},t.dismiss=t.hide}}}]),angular.module("$strap.directives").directive("bsTypeahead",["$parse",function(e){return{restrict:"A",require:"?ngModel",link:function(t,n,r,a){var i=e(r.bsTypeahead),o=(i.assign,i(t));t.$watch(r.bsTypeahead,function(e,t){e!==t&&(o=e)}),n.attr("data-provide","typeahead"),n.typeahead({source:function(e){return angular.isFunction(o)?o.apply(null,arguments):o},minLength:r.minLength||1,items:r.items,updater:function(e){return a&&t.$apply(function(){a.$setViewValue(e)}),t.$emit("typeahead-updated",e),e}});var s=n.data("typeahead");s.lookup=function(e){var t;return this.query=this.$element.val()||"",this.query.length<this.options.minLength?this.shown?this.hide():this:(t=$.isFunction(this.source)?this.source(this.query,$.proxy(this.process,this)):this.source,t?this.process(t):this)},r.matchAll&&(s.matcher=function(e){return!0}),"0"===r.minLength&&setTimeout(function(){n.on("focus",function(){0===n.val().length&&setTimeout(n.typeahead.bind(n,"lookup"),200)})})}}}])},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";function r(){return{link:function(e,t){e.onAppEvent("panel-fullscreen-enter",function(){t.toggleClass("panel-in-fullscreen",!0)}),e.onAppEvent("panel-fullscreen-exit",function(){t.toggleClass("panel-in-fullscreen",!1)}),e.$watch("ctrl.dashboardViewState.state.editview",function(e){e?(t.toggleClass("dashboard-page--settings-opening",i.a.isString(e)),setTimeout(function(){t.toggleClass("dashboard-page--settings-open",i.a.isString(e))},10)):(t.removeClass("dashboard-page--settings-opening"),t.removeClass("dashboard-page--settings-open"))})}}}var a=n(4),i=n.n(a);n(2).a.directive("dashClass",r)},function(e,t,n){"use strict";function r(e){return{scope:{menuItems:"=dropdownTypeahead",dropdownTypeaheadOnSelect:"&dropdownTypeaheadOnSelect",model:"=ngModel"},link:function(t,n,r){var a=l()('<input type="text" class="gf-form-input input-medium tight-form-input" spellcheck="false" style="display:none"></input>'),i=l()('<a class="gf-form-label tight-form-func dropdown-toggle" tabindex="1" gf-dropdown="menuItems" data-toggle="dropdown" data-placement="top"><i class="fa fa-plus"></i></a>');a.appendTo(n),i.appendTo(n),r.linkText&&i.html(r.linkText),r.ngModel&&t.$watch("model",function(e){o.a.each(t.menuItems,function(t){o.a.each(t.submenu,function(t){t.value===e&&i.html(t.text)})})});var s=o.a.reduce(t.menuItems,function(e,t,n){return t.submenu?o.a.each(t.submenu,function(r,a){r.click="menuItemSelected("+n+","+a+")",e.push(t.text+" "+r.text)}):(t.click="menuItemSelected("+n+")",e.push(t.text)),e},[]);t.menuItemSelected=function(e,n){var r=t.menuItems[e],a={$item:r};r.submenu&&void 0!==n&&(a.$subItem=r.submenu[n]),t.dropdownTypeaheadOnSelect(a)},a.attr("data-provide","typeahead"),a.typeahead({source:s,minLength:1,items:10,updater:function(e){var n={};return o.a.each(t.menuItems,function(t){o.a.each(t.submenu,function(r){e===t.text+" "+r.text&&(n.$subItem=r,n.$item=t)})}),n.$item&&t.$apply(function(){t.dropdownTypeaheadOnSelect(n)}),a.trigger("blur"),""}}),i.click(function(){i.hide(),a.show(),a.focus()}),a.keyup(function(){n.toggleClass("open",""===a.val())}),a.blur(function(){a.hide(),a.val(""),i.show(),i.focus(),setTimeout(function(){n.removeClass("open")},200)}),e(n.contents())(t)}}}function a(e){return{scope:{menuItems:"=dropdownTypeahead2",dropdownTypeaheadOnSelect:"&dropdownTypeaheadOnSelect",model:"=ngModel"},link:function(t,n,r){var a=l()('<input type="text" class="gf-form-input" spellcheck="false" style="display:none"></input>'),i=l()('<a class="gf-form-input dropdown-toggle" tabindex="1" gf-dropdown="menuItems" data-toggle="dropdown" data-placement="top"><i class="fa fa-plus"></i></a>');a.appendTo(n),i.appendTo(n),r.linkText&&i.html(r.linkText),r.ngModel&&t.$watch("model",function(e){o.a.each(t.menuItems,function(t){o.a.each(t.submenu,function(t){t.value===e&&i.html(t.text)})})});var s=o.a.reduce(t.menuItems,function(e,t,n){return t.submenu?o.a.each(t.submenu,function(r,a){r.click="menuItemSelected("+n+","+a+")",e.push(t.text+" "+r.text)}):(t.click="menuItemSelected("+n+")",e.push(t.text)),e},[]);t.menuItemSelected=function(e,n){var r=t.menuItems[e],a={$item:r};r.submenu&&void 0!==n&&(a.$subItem=r.submenu[n]),t.dropdownTypeaheadOnSelect(a)},a.attr("data-provide","typeahead"),a.typeahead({source:s,minLength:1,items:10,updater:function(e){var n={};return o.a.each(t.menuItems,function(t){o.a.each(t.submenu,function(r){e===t.text+" "+r.text&&(n.$subItem=r,n.$item=t)})}),n.$item&&t.$apply(function(){t.dropdownTypeaheadOnSelect(n)}),a.trigger("blur"),""}}),i.click(function(){i.hide(),a.show(),a.focus()}),a.keyup(function(){n.toggleClass("open",""===a.val())}),a.blur(function(){a.hide(),a.val(""),i.show(),i.focus(),setTimeout(function(){n.removeClass("open")},200)}),e(n.contents())(t)}}}r.$inject=["$compile"],a.$inject=["$compile"];var i=n(4),o=n.n(i),s=n(17),l=n.n(s),c=n(2);c.a.directive("dropdownTypeahead",r),c.a.directive("dropdownTypeahead2",a)},function(e,t,n){"use strict";
8function r(e,t){return{scope:{segment:"=",getOptions:"&",onChange:"&",debounce:"@"},link:function(n,r){var a=l()('<input type="text" data-provide="typeahead" class="gf-form-input input-medium" spellcheck="false" style="display:none"></input>'),i=n.segment,s=l()(i.selectMode?'<a class="gf-form-input gf-form-input--dropdown" ng-class="segment.cssClass" tabindex="1" give-focus="segment.focus" ng-bind-html="segment.html"></a>':'<a class="gf-form-label" ng-class="segment.cssClass" tabindex="1" give-focus="segment.focus" ng-bind-html="segment.html"></a>'),c=null,d=null,u=!0,p=n.debounce;a.appendTo(r),s.appendTo(r),n.updateVariableValue=function(e){""!==e&&i.value!==e&&(e=o.a.unescape(e),n.$apply(function(){var r=o.a.find(n.altSegments,{value:e});r?(i.value=r.value,i.html=r.html||r.value,i.fake=!1,i.expandable=r.expandable,r.type&&(i.type=r.type)):"false"!==i.custom&&(i.value=e,i.html=t.trustAsHtml(e),i.expandable=!0,i.fake=!1),n.onChange()}))},n.switchToLink=function(e){u&&!e||(clearTimeout(d),d=null,u=!0,a.hide(),s.show(),n.updateVariableValue(a.val()))},n.inputBlur=function(){d=setTimeout(n.switchToLink,200)},n.source=function(e,t){n.$apply(function(){n.getOptions({$query:e}).then(function(e){n.altSegments=e,c=o.a.map(n.altSegments,function(e){return o.a.escape(e.value)}),"false"!==i.custom&&(i.fake||-1!==o.a.indexOf(c,i.value)||c.unshift(i.value)),t(c)})})},n.updater=function(e){return e===i.value?(clearTimeout(d),a.focus(),e):(a.val(e),n.switchToLink(!0),e)},n.matcher=function(e){var t=this.query;"/"===t[0]&&(t=t.substring(1)),"/"===t[t.length-1]&&(t=t.substring(0,t.length-1));try{return e.toLowerCase().match(t.toLowerCase())}catch(e){return!1}},a.attr("data-provide","typeahead"),a.typeahead({source:n.source,minLength:0,items:1e4,updater:n.updater,matcher:n.matcher});var f=a.data("typeahead");f.lookup=function(){this.query=this.$element.val()||"";var e=this.source(this.query,l.a.proxy(this.process,this));return e?this.process(e):e},p&&(f.lookup=o.a.debounce(f.lookup,500,{leading:!0})),s.keydown(function(e){40!==e.keyCode&&13!==e.keyCode||s.click()}),s.click(function(){c=null,a.css("width",Math.max(s.width(),80)+16+"px"),s.hide(),a.show(),a.focus(),u=!1;var e=a.data("typeahead");e&&(a.val(""),e.lookup())}),a.blur(n.inputBlur),e(r.contents())(n)}}}function a(e,t){return{template:'<metric-segment segment="segment" get-options="getOptionsInternal()" on-change="onSegmentChange()"></metric-segment>',restrict:"E",scope:{property:"=",options:"=",getOptions:"&",onChange:"&"},link:{pre:function(n,r,a){var i;n.valueToSegment=function(t){var r=o.a.find(n.options,{value:t}),i={cssClass:a.cssClass,custom:a.custom,value:r?r.text:t,selectMode:a.selectMode};return e.newSegment(i)},n.getOptionsInternal=function(){return n.options?(i=n.options,t.when(o.a.map(n.options,function(e){return{value:e.text}}))):n.getOptions().then(function(e){return i=e,o.a.map(e,function(e){return e.html?e:{value:e.text}})})},n.onSegmentChange=function(){if(i){var e=o.a.find(i,{text:n.segment.value});e&&e.value!==n.property?n.property=e.value:"false"!==a.custom&&(n.property=n.segment.value)}else n.property=n.segment.value;n.$$postDigest(function(){n.$apply(function(){n.onChange()})})},n.segment=n.valueToSegment(n.property)}}}}r.$inject=["$compile","$sce"],a.$inject=["uiSegmentSrv","$q"];var i=n(4),o=n.n(i),s=n(17),l=n.n(s),c=n(2);c.a.directive("metricSegment",r),c.a.directive("metricSegmentModel",a)},function(e,t,n){"use strict";function r(e){return{restrict:"E",link:function(t,n,r){var a='<i class="grafana-tip fa fa-'+(r.icon||"question-circle")+'" bs-tooltip="\''+h.a.addslashes(n.text())+"'\"></i>";a=a.replace(/{/g,"\\{").replace(/}/g,"\\}"),n.replaceWith(e(u.a.element(a))(t))}}}function a(){return{scope:{getText:"&clipboardButton"},link:function(e,t){e.clipboard=new f.a(t[0],{text:function(){return e.getText()}}),e.clipboard.on("success",function(){g.b.emit("alert-success",["Content copied to clipboard"])}),e.$on("$destroy",function(){e.clipboard&&e.clipboard.destroy()})}}}function i(e){return{restrict:"A",link:function(t,n,r){t.$watch(function(e){return e.$eval(r.compile)},function(r){n.html(r),e(n.contents())(t)})}}}function o(){return{scope:{onchange:"&watchChange"},link:function(e,t){t.on("input",function(){e.$apply(function(){e.onchange({inputValue:t.val()})})})}}}function s(e){return{restrict:"E",link:function(t,n,r){var a=r.change?' ng-change="'+r.change+'"':"",i=r.tip?" <tip>"+r.tip+"</tip>":"",o=r.showIf?' ng-show="'+r.showIf+'" ':"",s='<div class="editor-option gf-form-checkbox text-center"'+o+'> <label for="'+r.model+'" class="small">'+r.text+i+'</label><input class="cr1" id="'+r.model+'" type="checkbox" ng-model="'+r.model+'"'+a+' ng-checked="'+r.model+'"></input> <label for="'+r.model+'" class="cr1"></label>';
8n.replaceWith(e(u.a.element(s))(t))}}}function l(e,t){return{restrict:"E",link:function(n,r,a){var i=t(a.text)(n),o=t(a.model)(n),s=a.change?' ng-change="'+a.change+'"':"",l=a.tip?" <tip>"+a.tip+"</tip>":"",c='<label for="'+n.$id+o+'" class="checkbox-label">'+i+l+"</label>",d='<input class="cr1" id="'+n.$id+o+'" type="checkbox" ng-model="'+o+'"'+s+' ng-checked="'+o+'"></input> <label for="'+n.$id+o+'" class="cr1"></label>';d+=c,r.addClass("gf-form-checkbox"),r.html(e(u.a.element(d))(n))}}}function c(e,t,n){function r(e,t){for(var n="top"===t?"dropup":"",a=['<ul class="dropdown-menu '+n+'" role="menu" aria-labelledby="drop1">',"</ul>"],i=0;i<e.length;i++){var o=e[i];if(o.divider)a.splice(i+1,0,'<li class="divider"></li>');else{var s="<li"+(o.submenu&&o.submenu.length?' class="dropdown-submenu"':"")+'><a tabindex="-1" ng-href="'+(o.href||"")+'"'+(o.click?' ng-click="'+o.click+'"':"")+(o.target?' target="'+o.target+'"':"")+(o.method?' data-method="'+o.method+'"':"")+">"+(o.text||"")+"</a>";o.submenu&&o.submenu.length&&(s+=r(o.submenu).join("\n")),s+="</li>",a.splice(i+1,0,s)}}return a}return{restrict:"EA",scope:!0,link:function(a,i,o){var s=e(o.gfDropdown),l=s(a);n(function(){var e=i.data("placement");u.a.element(r(l,e).join("")).insertAfter(i),t(i.next("ul.dropdown-menu"))(a)}),i.addClass("dropdown-toggle").attr("data-toggle","dropdown")}}}r.$inject=["$compile"],i.$inject=["$compile"],s.$inject=["$compile"],l.$inject=["$compile","$interpolate"],c.$inject=["$parse","$compile","$timeout"];var d=n(27),u=n.n(d),p=n(501),f=n.n(p),m=n(2),h=n(312),g=n(197);m.a.directive("tip",r),m.a.directive("clipboardButton",a),m.a.directive("compile",i),m.a.directive("watchChange",o),m.a.directive("editorOptBool",s),m.a.directive("editorCheckbox",l),m.a.directive("gfDropdown",c)},,,,,,,,function(e,t,n){"use strict";function r(){return{restrict:"A",priority:1,require:"ngModel",link:function(e,t,n,r){"radio"!==n.type&&"checkbox"!==n.type&&(t.off("input keydown change"),t.bind("blur",function(){e.$apply(function(){r.$setViewValue(t.val())})}))}}}function a(){return{restrict:"A",require:"ngModel",link:function(e,t,n,r){r.$parsers.push(function(e){return""===e?null:e})}}}function i(){return{require:"ngModel",link:function(e,t,n,r){r.$validators.integer=function(e,t){return!!r.$isEmpty(e)||(0===t.indexOf("$")||0===t.indexOf("+$")||!0!==s.a(t).invalid)}}}}var o=n(2),s=n(697);o.a.directive("ngModelOnblur",r),o.a.directive("emptyToNull",a),o.a.directive("validTimeSpan",i)},function(e,t,n){"use strict";function r(e,t){var n=u.a.getTagColorsFromName(e),r=n.color,a=n.borderColor;t.css("background-color",r),t.css("border-color",a)}function a(){return{scope:{tagColorFromName:"="},link:function(e,t){r(e.tagColorFromName,t)}}}function i(){function e(e,t){if(t)return s.a.isFunction(e.$parent[t])?e.$parent[t]:function(e){return e[t]}}return{restrict:"EA",scope:{model:"=ngModel",onTagsUpdated:"&"},template:"<select multiple></select>",replace:!1,link:function(t,n,a){s.a.isArray(t.model)||(t.model=[]);var i=c()("select",n);a.placeholder&&i.attr("placeholder",a.placeholder),i.tagsinput({typeahead:{source:s.a.isFunction(t.$parent[a.typeaheadSource])?t.$parent[a.typeaheadSource]:null},widthClass:a.widthClass,itemValue:e(t,a.itemvalue),itemText:e(t,a.itemtext),tagClass:s.a.isFunction(t.$parent[a.tagclass])?t.$parent[a.tagclass]:function(){return a.tagclass}}),i.on("itemAdded",function(e){-1===t.model.indexOf(e.item)&&(t.model.push(e.item),t.onTagsUpdated&&t.onTagsUpdated());var n=i.next().children("span").filter(function(){return c()(this).text()===e.item});r(e.item,n)}),i.on("itemRemoved",function(e){var n=t.model.indexOf(e.item);-1!==n&&(t.model.splice(n,1),t.onTagsUpdated&&t.onTagsUpdated())}),t.$watch("model",function(){s.a.isArray(t.model)||(t.model=[]),i.tagsinput("removeAll");for(var e=0;e<t.model.length;e++)i.tagsinput("add",t.model[e])},!0)}}}var o=n(27),s=n.n(o),l=n(17),c=n.n(l),d=n(2),u=n(237),p=n(976);n.n(p);d.a.directive("tagColorFromName",a),d.a.directive("bootstrapTagsinput",i)},function(e,t){!function(e){"use strict";function t(t,n){this.itemsArray=[],this.$element=e(t),this.$element.hide(),this.widthClass=n.widthClass||"width-9",this.isSelect="SELECT"===t.tagName,this.multiple=this.isSelect&&t.hasAttribute("multiple"),this.objectItems=n&&n.itemValue,this.placeholderText=t.hasAttribute("placeholder")?this.$element.attr("placeholder"):"",this.$container=e('<div class="bootstrap-tagsinput"></div>
8'),this.$input=e('<input class="gf-form-input '+this.widthClass+'" type="text" placeholder="'+this.placeholderText+'"/>').appendTo(this.$container),this.$element.after(this.$container),this.build(n)}function n(e,t){if("function"!=typeof e[t]){var n=e[t];e[t]=function(e){return e[n]}}}function r(e,t){if("function"!=typeof e[t]){var n=e[t];e[t]=function(){return n}}}function a(e){return e?s.text(e).html():""}function i(e){var t=0;if(document.selection){e.focus();var n=document.selection.createRange();n.moveStart("character",-e.value.length),t=n.text.length}else(e.selectionStart||"0"==e.selectionStart)&&(t=e.selectionStart);return t}var o={tagClass:function(e){return"label label-info"},itemValue:function(e){return e?e.toString():e},itemText:function(e){return this.itemValue(e)},freeInput:!0,maxTags:void 0,confirmKeys:[13],onTagExists:function(e,t){t.hide().fadeIn()}};t.prototype={constructor:t,add:function(t,n){var r=this;if(!(r.options.maxTags&&r.itemsArray.length>=r.options.maxTags)&&(!1===t||t)){if("object"==typeof t&&!r.objectItems)throw"Can't add objects when itemValue option is not set";if(!t.toString().match(/^\s*$/)){if(r.isSelect&&!r.multiple&&r.itemsArray.length>0&&r.remove(r.itemsArray[0]),"string"==typeof t&&"INPUT"===this.$element[0].tagName){var i=t.split(",");if(i.length>1){for(var o=0;o<i.length;o++)this.add(i[o],!0);return void(n||r.pushVal())}}var s=r.options.itemValue(t),l=r.options.itemText(t),c=r.options.tagClass(t),d=e.grep(r.itemsArray,function(e){return r.options.itemValue(e)===s})[0];if(d){if(r.options.onTagExists){var u=e(".tag",r.$container).filter(function(){return e(this).data("item")===d});r.options.onTagExists(t,u)}}else{r.itemsArray.push(t);var p=e('<span class="tag '+a(c)+'">'+a(l)+'<span data-role="remove"></span></span>');if(p.data("item",t),r.findInputWrapper().before(p),p.after(" "),r.isSelect&&!e('option[value="'+escape(s)+'"]',r.$element)[0]){var f=e("<option selected>"+a(l)+"</option>");f.data("item",t),f.attr("value",s),r.$element.append(f)}n||r.pushVal(),r.options.maxTags===r.itemsArray.length&&r.$container.addClass("bootstrap-tagsinput-max"),r.$element.trigger(e.Event("itemAdded",{item:t}))}}}},remove:function(t,n){var r=this;r.objectItems&&(t="object"==typeof t?e.grep(r.itemsArray,function(e){return r.options.itemValue(e)==r.options.itemValue(t)})[0]:e.grep(r.itemsArray,function(e){return r.options.itemValue(e)==t})[0]),t&&(e(".tag",r.$container).filter(function(){return e(this).data("item")===t}).remove(),e("option",r.$element).filter(function(){return e(this).data("item")===t}).remove(),r.itemsArray.splice(e.inArray(t,r.itemsArray),1)),n||r.pushVal(),r.options.maxTags>r.itemsArray.length&&r.$container.removeClass("bootstrap-tagsinput-max"),r.$element.trigger(e.Event("itemRemoved",{item:t}))},removeAll:function(){var t=this;for(e(".tag",t.$container).remove(),e("option",t.$element).remove();t.itemsArray.length>0;)t.itemsArray.pop();t.pushVal(),t.options.maxTags&&!this.isEnabled()&&this.enable()},refresh:function(){var t=this;e(".tag",t.$container).each(function(){var n=e(this),r=n.data("item"),i=t.options.itemValue(r),o=t.options.itemText(r),s=t.options.tagClass(r);if(n.attr("class",null),n.addClass("tag "+a(s)),n.contents().filter(function(){return 3==this.nodeType})[0].nodeValue=a(o),t.isSelect){e("option",t.$element).filter(function(){return e(this).data("item")===r}).attr("value",i)}})},items:function(){return this.itemsArray},pushVal:function(){var t=this,n=e.map(t.items(),function(e){return t.options.itemValue(e).toString()});t.$element.val(n,!0).trigger("change")},build:function(t){var a=this;a.options=e.extend({},o,t);var s=a.options.typeahead||{};a.objectItems&&(a.options.freeInput=!1),n(a.options,"itemValue"),n(a.options,"itemText"),n(a.options,"tagClass"),a.options.source&&(s.source=a.options.source),s.source&&e.fn.typeahead&&(r(s,"source"),a.$input.typeahead({source:function(t,n){function r(e){for(var t=[],r=0;r<e.length;r++){var o=a.options.itemText(e[r]);i[o]=e[r],t.push(o)}n(t)}this.map={};var i=this.map,o=s.source(t);e.isFunction(o.success)?o.success(r):e.when(o).then(r)},updater:function(e){a.add(this.map[e])},matcher:function(e){return-1!==e.toLowerCase().indexOf(this.query.trim().toLowerCase())},sorter:function(e){return e.sort()},highlighter:function(e){var t=new RegExp("("+this.query+")","gi");return e.replace(t,"<strong>$1</strong>")}}
8)),a.$container.on("click",e.proxy(function(e){a.$input.focus()},a)),a.$container.on("blur","input",e.proxy(function(t){var n=e(t.target);a.add(n.val()),n.val(""),t.preventDefault()},a)),a.$container.on("keydown","input",e.proxy(function(t){var n=e(t.target),r=a.findInputWrapper();switch(t.which){case 8:if(0===i(n[0])){var o=r.prev();o&&a.remove(o.data("item"))}break;case 46:if(0===i(n[0])){var s=r.next();s&&a.remove(s.data("item"))}break;case 37:var l=r.prev();0===n.val().length&&l[0]&&(l.before(r),n.focus());break;case 39:var c=r.next();0===n.val().length&&c[0]&&(c.after(r),n.focus());break;default:a.options.freeInput&&e.inArray(t.which,a.options.confirmKeys)>=0&&(a.add(n.val()),n.val(""),t.preventDefault())}n.attr("size",Math.max(this.inputSize,n.val().length))},a)),a.$container.on("click","[data-role=remove]",e.proxy(function(t){a.remove(e(t.target).closest(".tag").data("item")),t.stopPropagation()},a)),a.options.itemValue===o.itemValue&&("INPUT"===a.$element[0].tagName?a.add(a.$element.val()):e("option",a.$element).each(function(){a.add(e(this).attr("value"),!0)}))},destroy:function(){var e=this;e.$container.off("keypress","input"),e.$container.off("click","[role=remove]"),e.$container.remove(),e.$element.removeData("tagsinput"),e.$element.show()},focus:function(){this.$input.focus()},input:function(){return this.$input},findInputWrapper:function(){for(var t=this.$input[0],n=this.$container[0];t&&t.parentNode!==n;)t=t.parentNode;return e(t)}},e.fn.tagsinput=function(n,r){var a=[];return this.each(function(){var i=e(this).data("tagsinput");if(i){var o=i[n](r);void 0!==o&&a.push(o)}else i=new t(this,n),e(this).data("tagsinput",i),a.push(i),"SELECT"===this.tagName&&e("option",e(this)).attr("selected","selected"),e(this).val(e(this).val())}),"string"==typeof n?a.length>1?a:a[0]:a},e.fn.tagsinput.Constructor=t;var s=e("<div />");e(function(){e("input[data-role=tagsinput], select[multiple][data-role=tagsinput]").tagsinput()})}(window.jQuery)},function(e,t,n){"use strict";function r(e){var t=this;t.ready(function(){e.steps.forEach(function(n){t.controlBar.addChild(new c(t,{el:i.default.dom.createEl("button",{className:"vjs-res-button vjs-control",innerHTML:'<div class="vjs-control-content" style="font-size: 11px; line-height: 28px;"><span class="vjs-fbf">'+n.text+"</span></div>"},{role:"button"}),value:n.step,fps:e.fps}),{},n.index)})})}var a=n(2),i=n(502),o=n(197),s=["$timeout",function(e){return{scope:{src:"=",offset:"=",sync:"=",player:"="},link:function(t,n){e(function(){var e=n.children()[0],r=Object(i.default)(e,{plugins:{framebyframe:{fps:29.97,steps:[{text:'<i class="fa fa-step-backward" aria-hidden="true" title="Step backwards 1 frame"></i>',step:-1},{text:'<i class="fa fa-step-forward" aria-hidden="true" title="Step forward 1 frame"></i>',step:1}]}}});t.player=r,console.log("Video offset is",t.offset),void 0!==t.offset&&r.on("timeupdate",function(){r.paused()&&s()}
8),r.on("play",function(){console.log("play"),l()}),r.on("pause",function(){console.log("pause"),cancelAnimationFrame(a)});var a,s=function(){if(t.sync){var e=1e3*(r.currentTime()+t.offset),n={panelRelY:.5,x:e},a={pos:n,panel:{id:-1},isVideoSync:!0};o.b.emit("graph-hover",a)}},l=function(){a=requestAnimationFrame(l),s()}})},template:'\n <video ng-attr-id="thevideotag" class="video-js vjs-big-play-centered"\n controls preload="auto" style="margin: auto;">\n <source ng-src="{{ src }}" type="video/mp4">\n Your browser does not support the video tag.\n </video>'}}];a.a.directive("videoJs",s);var l=i.default.getComponent("Button"),c=i.default.extend(l,{constructor:function(e,t){l.call(this,e,t),this.player=e,this.frameTime=1/t.fps,this.step_size=t.value,this.on("click",this.onClick)},onClick:function(){this.player.pause();var e=this.frameTime*this.step_size;this.player.currentTime(this.player.currentTime()+e)}});i.default.registerPlugin("framebyframe",r)},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";function r(e,t,n,r){return{scope:{variable:"=",onUpdated:"&"},templateUrl:"public/app/partials/valueSelectDropdown.html",controller:"ValueSelectDropdownCtrl",controllerAs:"vm",bindToController:!0,link:function(e,a){function o(){u.css("width",Math.max(d.width(),80)+"px"),u.show(),d.hide(),u.focus(),n(function(){c.on("click",l)},0,!1)}function s(){u.hide(),d.show(),c.off("click",l)}function l(t){0===a.has(t.target).length&&e.$apply(function(){e.vm.commitChanges()})}var c=i.a.element(t.document.body),d=a.find(".variable-value-link"),u=a.find("input");e.$watch("vm.dropdownVisible",function(e){e?o():s()});var p=r.$on("template-variable-value-updated",function(){e.vm.updateLinkText()});e.$on("$destroy",function(){p()}),e.vm.init()}}}r.$inject=["$compile","$window","$timeout","$rootScope"];var a=n(27),i=n.n(a),o=n(4),s=n.n(o),l=n(2),c=function(){function e(e){this.$q=e}return e.$inject=["$q"],e.prototype.show=function(){var e=this;this.oldVariableText=this.variable.current.text,this.highlightIndex=-1,this.options=this.variable.options,this.selectedValues=s.a.filter(this.options,{selected:!0}),this.tags=s.a.map(this.variable.tags,function(t){var n={text:t,selected:!1};return s.a.each(e.variable.current.tags,function(e){e.text===t&&(n=e)}),n}),this.search={query:"",options:this.options.slice(0,Math.min(this.options.length,1e3))},this.dropdownVisible=!0},e.prototype.updateLinkText=function(){var e=this.variable.current;if(e.tags&&e.tags.length){var t=s.a.filter(this.variable.options,function(t){if(!t.selected)return!1;for(var n=0;n<e.tags.length;n++){var r=e.tags[n];if(-1!==s.a.indexOf(r.values,t.value))return!1}return!0}),n=s.a.map(t,"text");this.linkText=n.join(" + "),this.linkText.length>0&&(this.linkText+=" + ")}else this.linkText=this.variable.current.text},e.prototype.clearSelections=function(){s.a.each(this.options,function(e){e.selected=!1}),this.selectionsChanged(!1)},e.prototype.selectTag=function(e){var t=this;e.selected=!e.selected;var n;n=e.values?this.$q.when(e.values):this.variable.getValuesForTag(e.text),n.then(function(n){e.values=n,e.valuesText=n.join(" + "),s.a.each(t.options,function(t){-1!==s.a.indexOf(e.values,t.value)&&(t.selected=e.selected)}),t.selectionsChanged(!1)})},e.prototype.keyDown=function(e){27===e.keyCode&&this.hide(),40===e.keyCode&&this.moveHighlight(1),38===e.keyCode&&this.moveHighlight(-1),13===e.keyCode&&(0===this.search.options.length?this.commitChanges():this.selectValue(this.search.options[this.highlightIndex],{},!0,!1)),32===e.keyCode&&this.selectValue(this.search.options[this.highlightIndex],{},!1,!1)},e.prototype.moveHighlight=function(e){this.highlightIndex=(this.highlightIndex+e)%this.search.options.length},e.prototype.selectValue=function(e,t,n,r){var a=this;if(e){e.selected=!this.variable.multi||!e.selected,n=n||!1,r=r||!1;var i=function(t){s.a.each(a.options,function(n){e!==n&&(n.selected=t)})};n&&(e.selected=!0),"All"===e.text||r?(i(!1),n=!0):this.variable.multi?(t.ctrlKey||t.metaKey||t.shiftKey)&&(n=!0,i(!1)):(i(!1),n=!0),this.selectionsChanged(n)}},e.prototype.selectionsChanged=function(e){var t=this;this.selectedValues=s.a.filter(this.options,{selected:!0}),this.selectedValues.length>1&&"All"===this.selectedValues[0].text&&(this.selectedValues[0].selected=!1,this.selectedValues=this.selectedValues.slice(1,this.selectedValues.length)),s.a.each(this.tags,function(e){e.selected&&s.a.each(e.values,function(n){s.a.find(t.selectedValues,{value:n})||(e.selected=!1)})}),this.selectedTags=s.a.filter(this.tags,{selected:!0}),this.variable.current.value=s.a.map(this.selectedValues,"value"),this.variable.current.text=s.a.map(this.selectedValues,"text").join(" + "),this.variable.current.tags=this.selectedTags,this.variable.multi||
8(this.variable.current.value=this.selectedValues[0].value),e&&this.commitChanges()},e.prototype.commitChanges=function(){0===this.search.options.length&&this.search.query.length>0?this.variable.current={text:this.search.query,value:this.search.query}:0===this.selectedValues.length&&(this.options[0].selected=!0,this.selectionsChanged(!1)),this.dropdownVisible=!1,this.updateLinkText(),this.variable.current.text!==this.oldVariableText&&this.onUpdated()},e.prototype.queryChanged=function(){var e=this;this.highlightIndex=-1,this.search.options=s.a.filter(this.options,function(t){return-1!==t.text.toLowerCase().indexOf(e.search.query.toLowerCase())}),this.search.options=this.search.options.slice(0,Math.min(this.search.options.length,1e3))},e.prototype.init=function(){this.selectedTags=this.variable.current.tags||[],this.updateLinkText()},e}();l.a.controller("ValueSelectDropdownCtrl",c),l.a.directive("valueSelectDropdown",r)},function(e,t,n){"use strict";function r(e){for(var t,n=e[0],r=e[e.length-1],a=1;n!==r&&(n=n.nextSibling);a++)(t||e[a]!==n)&&(t||(t=o()([].slice.call(e,0,a))),t.push(n));return t||e}function a(e){return{multiElement:!0,terminal:!0,transclude:!0,priority:600,restrict:"E",link:function(t,n,a,i,o){function s(){d&&(d.remove(),d=null),c&&(c.$destroy(),c=null),l&&(d=r(l.clone),e.leave(d).then(function(){d=null}),l=null)}var l,c,d;t.$watch(a.property,function(t,r){c&&t!==r&&s(),c||!t&&!a.showNull?s():o(function(t,r){c=r,t[t.length++]=document.createComment(" end rebuild on change "),l={clone:t},e.enter(t,n.parent(),n)})})}}}a.$inject=["$animate"];var i=n(17),o=n.n(i);n(2).a.directive("rebuildOnChange",a)},function(e,t,n){"use strict";n(2).a.directive("giveFocus",function(){return function(e,t,n){t.click(function(e){e.stopPropagation()}),e.$watch(n.giveFocus,function(e){e&&setTimeout(function(){t.focus();var e=t[0];if(e.setSelectionRange){var n=2*t.val().length;e.setSelectionRange(n,n)}},200)},!0)}})},function(e,t,n){"use strict";function r(){return{controller:l,replace:!1,restrict:"A"}}function a(){return{controller:c,controllerAs:"ctrl",replace:!0,restrict:"E",scope:{line:"@lineDisplay",link:"@lineLink",switchView:"&"},template:'<a class="diff-linenum btn btn-inverse btn-small" ng-click="ctrl.goToLine(link)">Line {{ line }}</a>'}}var i=n(27),o=n.n(i),s=n(2),l=function(){function e(e){var t=this;this.$rootScope=e;var n=function(e){1===e.length&&t.$rootScope.appEvent("json-diff-ready")};this.observer=new MutationObserver(n);var r={attributes:!0,attributeFilter:["class"],characterData:!1,childList:!0,subtree:!1};this.observer.observe(o.a.element(".delta-html")[0],r)}return e.$inject=["$rootScope"],e.prototype.$onDestroy=function(){this.observer.disconnect()},e}();s.a.directive("diffDelta",r);var c=function(){function e(e,t,n){this.$scope=e,this.$rootScope=t,this.$anchorScroll=n}return e.$inject=["$scope","$rootScope","$anchorScroll"],e.prototype.goToLine=function(e){var t,n=this,r=function(){n.$anchorScroll("l"+e),t()};this.$scope.switchView().then(function(){t=n.$rootScope.$on("json-diff-ready",r.bind(n))})},e}();s.a.directive("diffLinkJson",a)},function(e,t,n){"use strict";var r=n(17),a=n.n(r),i=n(27),o=n.n(i),s=n(4),l=n.n(s),c=a()(window);a.a.fn.place_tt=function(){var e={offset:5};return function(t,n,r){return r=a.a.extend(!0,{},e,r),this.each(function(){var e,i,s=a()(this);s.addClass("grafana-tooltip"),a()("#tooltip").remove(),s.appendTo(document.body),r.compile&&o.a.element(document).injector().invoke(["$compile","$rootScope",function(e,t){var n=t.$new(!0);l.a.extend(n,r.scopeData),e(s)(n),n.$digest(),n.$destroy()}]),e=s.outerWidth(!0),i=s.outerHeight(!0),s.css("left",t+r.offset+e>c.width()?t-r.offset-e:t+r.offset),s.css("top",n+r.offset+i>c.height()?n-r.offset-i:n+r.offset)})}}()},function(e,t,n){var r=n(1020);r.keys().forEach(function(e){r(e)})},function(e,t,n){function r(e){return n(a(e))}function a(e){var t=i[e];if(!(t+1))throw new Error("Cannot find module '"+e+"'.");return t}var i={"./core/components/help/help.html":1021,"./core/components/manage_dashboards/manage_dashboards.html":1022,"./core/components/navbar/navbar.html":1023,"./core/components/search/search.html":1024,"./core/components/search/search_results.html":1025,"./core/components/sidemenu/sidemenu.html":1026,"./core/components/sidepane/sidepane.html":1027,"./features/admin/partials/admin_home.html":1028,"./features/admin/partials/edit_org.html":1029,"./features/admin/partials/edit_user.html":1030,"./features/admin/partials/experiments.html":1031,"./features/admin/partials/new_user.html":1032,"./features/admin/partials/orgs.html":1033,"./features/admin/partials/settings.html":1034,"./features/admin/partials/stats.html":1035,"./features/admin/partials/users.html":1036,"./features/alerting/partials/alert_howto.html":1037,"./features/alerting/partials/alert_tab.html":1038,"./features/alerting/partials/notification_edit.html":1039,"./features/alerting/partials/notifications_list.html":1040,"./features/annotations/partials/editor.html":1041,"./features/annotations/partials/event_editor.html":1042,"./features/dashboard/dashnav/dashnav.html":1043,"./features/dashboard/export/export_modal.html":1044,"./features/dashboard/export_data/export_data_modal.html":1045,"./features/dashboard/export_experiment/export_experiment_modal.html":1046,"./features/dashboard/folder_picker/folder_picker.html":1047,"./features/dashboard/history/history.html":1048,"./features/dashboard/move_to_folder_modal/move_to_folder.html":1049,"./features/dashboard/partials/create_folder.html":1050,"./features/dashboard/partials/dashboard_import.html":1051,"./features/dashboard/partials/dashboard_list.html":1052,"./features/dashboard/partials/folder_dashboards.html":1053,"./features/dashboard/partials/folder_permissions.html":1054,"./features/dashboard/partials/folder_settings.html":1055,"./features/dashboard/partials/inspector.html":1056,"./features/dashboard/partials/row_options.html":1057,"./features/dashboard/partials/shareModal.html":1058,"./features/dashboard/settings/sett
8ings.html":1059,"./features/dashboard/submenu/submenu.html":1060,"./features/dashboard/timepicker/settings.html":1061,"./features/dashboard/timepicker/timepicker.html":1062,"./features/dashlinks/editor.html":1063,"./features/experiments/partials/edit_experiment.html":1064,"./features/experiments/partials/edit_folder.html":1065,"./features/org/partials/apikeyModal.html":1066,"./features/org/partials/change_password.html":1067,"./features/org/partials/create_team.html":1068,"./features/org/partials/invite.html":1069,"./features/org/partials/newOrg.html":1070,"./features/org/partials/orgApiKeys.html":1071,"./features/org/partials/orgDetails.html":1072,"./features/org/partials/orgUsers.html":1073,"./features/org/partials/profile.html":1074,"./features/org/partials/select_org.html":1075,"./features/org/partials/team_details.html":1076,"./features/org/partials/teams.html":1077,"./features/panel/partials/metrics_tab.html":1078,"./features/panel/partials/panelTime.html":1079,"./features/panel/partials/query_editor_row.html":1080,"./features/panel/partials/soloPanel.html":1081,"./features/panellinks/module.html":1082,"./features/playlist/partials/playlist.html":1083,"./features/playlist/partials/playlist_search.html":1084,"./features/playlist/partials/playlists.html":1085,"./features/plugins/import_list/import_list.html":1086,"./features/plugins/partials/ds_dashboards.html":1087,"./features/plugins/partials/ds_edit.html":1088,"./features/plugins/partials/ds_http_settings.html":1089,"./features/plugins/partials/ds_list.html":1090,"./features/plugins/partials/plugin_edit.html":1091,"./features/plugins/partials/plugin_list.html":1092,"./features/plugins/partials/plugin_page.html":1093,"./features/plugins/partials/update_instructions.html":1094,"./features/sensors/partials/bind_sensor.html":1095,"./features/sensors/partials/edit_sensor.html":1096,"./features/snapshot/partials/snapshots.html":1097,"./features/styleguide/styleguide.html":1098,"./features/templating/partials/editor.html":1099,"./features/upload/partials/upload.html":1100,"./partials/confirm_modal.html":1101,"./partials/dashboard.html":1102,"./partials/edit_json.html":1103,"./partials/error.html":1104,"./partials/home.html":1105,"./partials/login.html":1106,"./partials/modal.html":1107,"./partials/panelgeneral.html":1108,"./partials/reset_password.html":1109,"./partials/signup_invited.html":1110,"./partials/signup_step2.html":1111,"./partials/valueSelectDropdown.html":1112,"./plugins/app/testdata/partials/query.editor.html":1113,"./plugins/datasource/cloudwatch/partials/annotations.editor.html":1114,"./plugins/datasource/cloudwatch/partials/config.html":1115,"./plugins/datasource/cloudwatch/partials/query.editor.html":1116,"./plugins/datasource/cloudwatch/partials/query.parameter.html":1117,"./plugins/datasource/elasticsearch/partials/annotations.editor.html":1118,"./plugins/datasource/elasticsearch/partials/bucket_agg.html":1119,"./plugins/datasource/elasticsearch/partials/config.html":1120,"./plugins/datasource/elasticsearch/partials/metric_agg.html":1121,"./plugins/datasource/elasticsearch/partials/query.editor.html":1122,"./plugins/datasource/grafana-live/partials/query.editor.html":1123,"./plugins/datasource/grafana/partials/annotations.editor.html":1124,"./plugins/datasource/grafana/partials/query.editor.html":1125,"./plugins/datasource/graphite/partials/annotations.editor.html":1126,"./plugins/datasource/graphite/partials/config.html":1127,"./plugins/datasource/graphite/partials/query.editor.html":1128,"./plugins/datasource/influxdb/partials/annotations.editor.html":1129,"./plugins/datasource/influxdb/partials/config.html":1130,"./plugins/datasource/influxdb/partials/query.editor.html":1131,"./plugins/datasource/mssql/partials/annotations.editor.html":1132,"./plugins/datasource/mssql/partials/config.html":1133,"./plugins/datasource/mssql/partials/query.editor.html":1134,"./plugins/datasource/mysql/partials/annotations.editor.html":1135,"./plugins/datasource/mysql/partials/config.html":1136,"./plugins/datasource/mysql/partials/query.editor.html":1137,"./plugins/datasource/opentsdb/partials/annotations.editor.html":1138,"./plugins/datasource/opentsdb/partials/config.html":1139,"./plugins/datasource/opentsdb/partials/query.editor.html":1140,"./plugins/datasource/postgres/partials/annotations.editor.html":1141,"./plugins/datasource/postgres/partials/config.html":1142,"./plugins/datasource/postgres/partials/query.editor.html":1143,"./plugins/datasource/prometheus/partials/annotations.editor.html":1144,"./plugins/datasource/prometheus/partials/config.html":1145,"./plugins/datasource/prometheus/partials/query.editor.html":1146,"./plugins/panel/alertlist/editor.html":1147,"./plugins/panel/alertlist/module.html":1148,"./plugins/panel/dashlist/editor.html":1149,"./plugins/panel/dashlist/module.html":1150,"./plugins/panel/experimentdetails/module.html":1151,"./plugins/panel/experimentvideo/module.html":1152,"./plugins/panel/gettingstarted/editor.html":1153,"./plugins/panel/gettingstarted/module.html":1154,"./plugins/panel/graph/axes_editor.html":1155,"./plugins/panel/graph/tab_display.html":1156,"./plugins/panel/graph/tab_legend.html":1157,"./plugins/panel/heatmap/module.html":1158,"./plugins/panel/heatmap/partials/axes_editor.html":1159,"./plugins/panel/heatmap/partials/display_editor.html":1160,"./plugins/panel/pluginlist/editor.html":1161,"./plugins/panel/pluginlist/module.html":1162,"./plugins/panel/sensor/partials/tab.html":1163,"./plugins/panel/singlestat/editor.html":1164,"./plugins/panel/singlestat/mappings.html":1165,"./plugins/panel/singlestat/module.html":1166,"./plugins/panel/table/column_options.html":1167,"./plugins/panel/table/editor.html":1168,"./plugins/panel/table/module.html":1169,"./plugins/panel/text/editor.html":1170,"./plugins/panel/text/module.html":1171,"./plugins/panel/unknown/module.html":1172};r.keys=function(){return Object.keys(i)},r.resolve=a,e.exports=r,r.id=1020},function(e,t){var n="public/app/core/components/help/help.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=modal-body>\n\t<div class=modal-header>\n\t\t<h2 class=modal-header-title>\n\t\t\t<i class="fa fa-keyboard-o"></i>\n\t\t\t<span class=p-l-1>Shortcuts</span>\n\t\t</h2>\n\t\t<a class=modal-header-close ng-click=ctrl.dismiss();>\n\t\t\t<i class="fa fa-remove"></i>\n\t\t</a>\n\t</div>\n\n\t<div class="modal-content help-modal">\n\n\t\t<p class=small style=position:absolute;top:13px;right:44px>\n\t\t\t<span class=shortcut-table-key>mod</span> =\n\t\t\t<span class=muted>CTRL on windows or linux and CMD key on Mac</span>\n\t\t</p>\n\n\t\t<div ng-repeat="(category, shortcuts) in ctrl.shortcuts" class=shortcut-category>\n\t\t\t<table class=shortcut-table>\n\t\t\t\t<tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th class=shortcut-table-category-header colspan=2>{{category}}</th>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr ng-repeat="shortcut in shortcuts">\n\t\t\t\t\t\t<td class=shortcut-table-keys>
8\n <span class=shortcut-table-key ng-repeat="key in shortcut.keys track by $index" ng-bind-html=key>\n </span>\n </td>\n\t\t\t\t\t\t<td class=shortcut-table-description>{{shortcut.description}}</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tbody>\n\t\t\t</tbody></tbody></table>\n\t\t</div>\n\n\t\t<div class=clearfix></div>\n\t</div>\n\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/core/components/manage_dashboards/manage_dashboards.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=dashboard-list>\n <div class="page-action-bar page-action-bar--narrow" ng-hide="ctrl.folderId && !ctrl.hasFilters && ctrl.sections.length === 0">\n <label class="gf-form gf-form--grow gf-form--has-input-icon">\n <input type=text class="gf-form-input max-width-30" placeholder="Find Dashboard by name" tabindex=1 give-focus=true ng-model=ctrl.query.query ng-model-options="{ debounce: 500 }" spellcheck=false ng-change=ctrl.onQueryChange() />\n <i class="gf-form-input-icon fa fa-search"></i>\n </label>\n <div class=page-action-bar__spacer></div>\n <a class="btn btn-success" ng-href={{ctrl.createDashboardUrl()}} ng-if="ctrl.hasEditPermissionInFolders || ctrl.canSave">\n <i class="fa fa-plus"></i>\n Dashboard\n </a>\n <a class="btn btn-success" href=dashboards/folder/new ng-if="!ctrl.folderId && ctrl.isEditor">\n <i class="fa fa-plus"></i>\n Folder\n </a>\n \x3c!--\n <a class="btn btn-success" href="{{ctrl.importDashboardUrl()}}" ng-if="ctrl.hasEditPermissionInFolders || ctrl.canSave">\n <i class="fa fa-plus"></i>\n Import\n </a>\n --\x3e\n </div>\n\n <div class="page-action-bar page-action-bar--narrow" ng-show=ctrl.hasFilters>\n <div class=gf-form-inline>\n <div class=gf-form ng-show="ctrl.query.tag.length > 0">\n <label class="gf-form-label width-4">\n Tags\n </label>\n <div class="gf-form-input gf-form-input--plaintext" ng-show="ctrl.query.tag.length > 0">\n <span ng-repeat="tagName in ctrl.query.tag">\n <a ng-click="ctrl.removeTag(tagName, $event)" tag-color-from-name=tagName class="tag label label-tag">\n <i class="fa fa-remove"></i> {{tagName}}\n </a>\n </span>\n </div>\n </div>\n <div class=gf-form ng-show=ctrl.query.starred>\n <label class=gf-form-label>\n <a class=pointer ng-click=ctrl.removeStarred()>\n <i class="fa fa-fw fa-check"></i> Starred\n </a>\n </label>\n </div>\n <div class=gf-form>\n <label class=gf-form-label>\n <a class=pointer ng-click=ctrl.clearFilters() bs-tooltip="\'Clear current search query and filters\'">\n <i class="fa fa-remove"></i> Clear\n </a>\n </label>\n </div>\n </div>\n </div>\n\n <div class=search-results ng-show="ctrl.hasFilters && ctrl.sections.length === 0">\n <em class=muted>\n No dashboards matching your query were found.\n </em>\n </div>\n\n\t<div class=search-results ng-show="!ctrl.folderId && !ctrl.hasFilters && ctrl.sections.length === 0">\n <em class=muted>\n No dashboards found.\n </em>\n </div>\n\n <div class=search-results ng-show="ctrl.sections.length > 0">\n <div class=search-results-filter-row>\n <gf-form-switch on-change=ctrl.onSelectAllChanged() checked=ctrl.selectAllChecked switch-class="gf-form-switch--transparent gf-form-switch--search-result-filter-row__checkbox"/>\n <div class=search-results-filter-row__filters>\n <div class=gf-form-select-wrapper ng-show="!(ctrl.canMove || ctrl.canDelete)">\n <select class="search-results-filter-row__filters-item gf-form-input" ng-model=ctrl.selectedStarredFilter ng-options="t.text disable when t.disabled for t in ctrl.starredFilterOptions" ng-change=ctrl.onStarredFilterChange() />\n </div>\n <div class=gf-form-select-wrapper ng-show="!(ctrl.canMove || ctrl.canDelete)">\n <select class="search-results-filter-row__filters-item gf-form-input" ng-model=ctrl.selectedTagFilter ng-options="t.term disable when t.disabled for t in ctrl.tagFilterOptions" ng-change=ctrl.onTagFilterChange() />\n </div>\n <div class=gf-form-button-row ng-show="ctrl.canMove || ctrl.canDelete">\n <button type=button class="btn gf-form-button btn-inverse" ng-disabled=!ctrl.canMove ng-click=ctrl.moveTo() bs-tooltip="ctrl.canMove ? \'\' : \'Select a dashboard to move (cannot move folders)\'" data-placement=bottom>\n <i class="fa fa-exchange"></i> Move\n </button>\n <button type=button class="btn gf-form-button btn-danger" ng-click=ctrl.delete() ng-disabled=!ctrl.canDelete>
8\n <i class="fa fa-trash"></i> Delete\n </button>\n </div>\n </div>\n </div>\n <div class=search-results-container>\n <dashboard-search-results results=ctrl.sections editable=true on-selection-changed=ctrl.selectionChanged() on-tag-selected=ctrl.filterByTag($tag) />\n </div>\n </div>\n\n</div>\n\n<div ng-if="ctrl.canSave && ctrl.folderId && !ctrl.hasFilters && ctrl.sections.length === 0">\n <empty-list-cta model="{\n title: \'This folder doesn\\\'t have any dashboards yet\',\n buttonIcon: \'gicon gicon-dashboard-new\',\n buttonLink: \'dashboard/new?folderId={{ctrl.folderId}}\',\n buttonTitle: \'Create Dashboard\',\n proTip: \'Add/move dashboards to your folder at ->\',\n proTipLink: \'dashboards\',\n proTipLinkTitle: \'Manage dashboards\',\n proTipTarget: \'\'\n }"/>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/core/components/navbar/navbar.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=page-nav>\n <div class=page-breadcrumbs>\n <a class="breadcrumb-item active" href=/ >\n <i class="fa fa-home"></i>\n </a>\n <a class=breadcrumb-item ng-href={{::item.url}} ng-repeat="item in ctrl.model.breadcrumbs">\n {{::item.text}}\n </a>\n </div>\n</div>\n\n<dashboard-search></dashboard-search>\n')}]),e.exports=n},function(e,t){var n="public/app/core/components/search/search.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'\n<div class=search-backdrop ng-if=ctrl.isOpen></div>\n\n<div class=search-container ng-if=ctrl.isOpen>\n\n\t<div class=search-field-wrapper>\n\t\t<div class="search-field-icon pointer" ng-click=ctrl.closeSearch()><i class="fa fa-search"></i></div>\n\n\t\t<input type=text placeholder="Find dashboards by name" give-focus=ctrl.giveSearchFocus tabindex=1 ng-keydown=ctrl.keyDown($event) ng-model=ctrl.query.query ng-model-options="{ debounce: 500 }" spellcheck=false ng-change=ctrl.search() />\n\n\t\t<div class=search-field-spacer></div>\n\t</div>\n\n\t<div class=search-dropdown>\n <div class=search-dropdown__col_1>\n <div class=search-results-scroller>\n <div class=search-results-container grafana-scrollbar>\n <h6 ng-show="!ctrl.isLoading && ctrl.results.length === 0">No dashboards matching your query were found.</h6>\n <dashboard-search-results results=ctrl.results on-tag-selected=ctrl.filterByTag($tag) on-folder-expanding=ctrl.folderExpanding() on-folder-expanded=ctrl.folderExpanded($folder) />\n </div>\n </div>\n </div>\n\n <div class=search-dropdown__col_2>\n <div class=search-filter-box ng-click=ctrl.onFilterboxClick()>\n <div class=search-filter-box__header>\n <i class="fa fa-filter"></i>\n Filter by:\n <a class="pointer pull-right small" ng-click=ctrl.clearSearchFilter()>\n <i class="fa fa-remove"></i> Clear\n </a>\n </div>\n\n <tag-filter tags=ctrl.query.tag tagoptions=ctrl.getTags onselect=ctrl.onTagSelect>\n </tag-filter>\n </div>\n\n <div class=search-filter-box ng-if="ctrl.isEditor || ctrl.hasEditPermissionInFolders">\n <a href=dashboard/new class=search-filter-box-link>\n <i class="gicon gicon-dashboard-new"></i> New dashboard\n </a>\n <a href=dashboards/folder/new class=search-filter-box-link ng-if=ctrl.isEditor>\n <i class="gicon gicon-folder-new"></i> New folder\n </a>\n </div>\n </div>\n </div>\n</div>\n\n')}]),e.exports=n},function(e,t){var n="public/app/core/components/search/search_results.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div ng-repeat="section in ctrl.results" class=search-section>\n <div class="search-section__header pointer" ng-hide=section.hideHeader ng-class="{\'selected\': section.selected}" ng-click=ctrl.toggleFolderExpand(section)>\n <div ng-click="ctrl.toggleSelection(section, $event)">\n <gf-form-switch ng-show=ctrl.editable on-change=ctrl.selectionChanged($event) checked=section.checked switch-class="gf-form-switch--transparent gf-form-switch--search-result__section">\n </gf-form-switch>\n </div>\n <i class=search-section__header__icon ng-class=section.icon></i>\n <span class=search-section__header__text>{{::section.title}}</span>\n <a ng-show=section.url href={{section.url}} class=search-section__header__link>\n <i class="fa fa-cog"></i>\n </a>\n <i class="fa fa-angle-down search-section__header__toggle" ng-show=section.expanded></i>\n <i class="fa fa-angle-right search-section__header__toggle" ng-hide=section.expanded></i>\n </div>\n\n <div class=search-section__header ng-show=section.hideHeader></div>\n\n <div ng-if=section.expanded>\n <a ng-repeat="item in section.items" class="search-item search-item--indent" ng-class="{\'selected\': item.selected}" ng-href={{::item.url}}>\n <div ng-click="ctrl.toggleSelection(item, $event)">
8\n <gf-form-switch ng-show=ctrl.editable on-change=ctrl.selectionChanged() checked=item.checked switch-class="gf-form-switch--transparent gf-form-switch--search-result__item">\n </gf-form-switch>\n </div>\n <span class=search-item__icon>\n <i class="gicon mini gicon-dashboard-list"></i>\n </span>\n <span class=search-item__body ng-click=ctrl.onItemClick(item)>\n <div class=search-item__body-title>{{::item.title}}</div>\n </span>\n <span class=search-item__tags>\n <span ng-click="ctrl.selectTag(tag, $event)" ng-repeat="tag in item.tags" tag-color-from-name=tag class="label label-tag">\n {{tag}}\n </span>\n </span>\n </a>\n </div>\n</div>\n\n')}]),e.exports=n},function(e,t){var n="public/app/core/components/sidemenu/sidemenu.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<a class=sidemenu__logo ng-click=ctrl.toggleSideMenu()>\n <img src=public/img/grafana_icon.svg>\n</a>\n\n<a class=sidemenu__logo_small_breakpoint ng-click=ctrl.toggleSideMenuSmallBreakpoint()>\n <i class="fa fa-bars"></i>\n <span class=sidemenu__close>\n <i class="fa fa-times"></i> Close</span>\n</a>\n\n<div class=sidemenu__top>\n <div ng-repeat="item in ::ctrl.mainLinks" class="sidemenu-item dropdown">\n <a href={{::item.url}} class=sidemenu-link target={{::item.target}}>\n <span class="icon-circle sidemenu-icon">\n <i class={{::item.icon}} ng-show=::item.icon></i>\n <img ng-src={{::item.img}} ng-show=::item.img>\n </span>\n </a>\n <ul class="dropdown-menu dropdown-menu--sidemenu" role=menu ng-if=::item.children>\n <li class=side-menu-header>\n <span class=sidemenu-item-text>{{::item.text}}</span>\n </li>\n <li ng-repeat="child in ::item.children" ng-class="{divider: child.divider}">\n <a href={{::child.url}}>\n <i class={{::child.icon}} ng-show=::child.icon></i>\n {{::child.text}}\n </a>\n </li>\n </ul>\n </div>\n</div>\n\n<div class=sidemenu__bottom>\n <div ng-show=::!ctrl.isSignedIn class=sidemenu-item>\n <a href={{ctrl.loginUrl}} class=sidemenu-link target=_self>
8\n <span class="icon-circle sidemenu-icon">\n <i class="fa fa-fw fa-sign-in"></i>\n </span>\n </a>\n <a href={{ctrl.loginUrl}} target=_self>\n <ul class="dropdown-menu dropdown-menu--sidemenu" role=menu>\n <li class=side-menu-header>\n <span class=sidemenu-item-text>Sign In</span>\n </li>\n </ul>\n </a>\n </div>\n\n <div ng-repeat="item in ::ctrl.bottomNav" class="sidemenu-item dropdown dropup">\n <a href={{::item.url}} class=sidemenu-link target={{::item.target}}>\n <span class="icon-circle sidemenu-icon">\n <i class={{::item.icon}} ng-show=::item.icon></i>\n <img ng-src={{::item.img}} ng-show=::item.img>\n </span>\n </a>\n <ul class="dropdown-menu dropdown-menu--sidemenu" role=menu>\n <li ng-if=item.subTitle class=sidemenu-subtitle>\n <span class=sidemenu-item-text>{{::item.subTitle}}</span>\n </li>\n <li ng-if=item.showOrgSwitcher class=sidemenu-org-switcher>\n <a ng-click=ctrl.switchOrg()>\n <div>\n <div class=sidemenu-org-switcher__org-name>{{ctrl.contextSrv.user.orgName}}</div>\n <div class=sidemenu-org-switcher__org-current>Current Org:</div>\n </div>\n <div class=sidemenu-org-switcher__switch>\n <i class="fa fa-fw fa-random"></i>Switch</div>\n </a>\n </li>\n <li ng-repeat="child in ::item.children" ng-class="{divider: child.divider}" ng-hide=::child.hideFromMenu>\n <a href={{::child.url}} target={{::child.target}} ng-click="ctrl.itemClicked(child, $event)">\n <i class={{::child.icon}} ng-show=::child.icon></i>\n {{::child.text}}\n </a>\n </li>\n <li class=side-menu-header>\n <span class=sidemenu-item-text>{{::item.text}}</span>\n </li>\n </ul>\n </div>\n</div>')}]),e.exports=n},function(e,t){var n="public/app/core/components/sidepane/sidepane.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div id=sidepane-contents ng-class="{\'collapsed\': ctrl.collapsed}" class=contents ng-click=ctrl.sidepaneClicked($event)>\n\n <div class=logo ng-if=!ctrl.collapsed> \n <div class=logowrapper>\n <a href=/ alt=home>\n \x3c!-- <img src="/public/img/fav32.png" alt="curve logo" width="32px" height="32px"> --\x3e\n <img src=/public/img/curve-logo-even.svg alt="curve logo" width=200px height=100px>\n </a>\n </div>\n <div class=collapse-button>\n <a ng-click=ctrl.toggleCollapsed()><i class="fa fa-caret-left"></i></a>\n </div>\n </div>\n\n <div class=logocollapsed ng-if=ctrl.collapsed>\n <a style=margin:auto ng-click=ctrl.toggleCollapsed()>\n <img src=/public/img/fav32.png alt="curve logo" width=32px height=32px>\n </a>\n </div>\n\n <div id=experiment_list ng-if=!ctrl.collapsed>\n\n <div class=search-forms>\n <label class="gf-form gf-form--grow gf-form--has-input-icon">\n <gf-sidepane-search class=gf-form--grow sensors=ctrl.sensors on-search=ctrl.doSearch($query)>\n </gf-sidepane-search>\n </label>\n\n </div>\n\n <div class=experimentstreeloader-placeholder>\n <div ng-show=ctrl.loading class=experimentstreeloader></div>\n </div>\n\n <div class=experiments-search-results>\n\n <tree tree=ctrl.tree handlechange=ctrl.handleTreeUpdate onedit=ctrl.onEdit onview=ctrl.onView onadd=ctrl.onAdd searchterm=ctrl.searchTerm searchinprogress=ctrl.searchInProgress searcherror=ctrl.searchError dragstart=ctrl.reactDragStart dragend=ctrl.reactDragEnd matlabpluginurlclick=ctrl.matlabPluginUrlClick>\n </tree>\n\n <div ng-if=ctrl.showSensorsWarning class=tree-notice-below>\n No sensors found. <br>\n Add sensors using the\n <span class="fa fa-fw fa-plus"></span> button below,<br>\n and then drag them onto your dashboards<br> \n to create graphs.\n </div>\n\n <div ng-if=ctrl.showLoadMoreExperimentsButton class=tree-load-more-button>\n <a ng-click=ctrl.loadMoreExperiments()>{{ctrl.loadMoreExperimentsButtonText}}</a>\n </div>\n\n </div>\n\n </div>\n\n <div class=button-bar>\n\n <div ng-class="ctrl.collapsed ? \'button-section-vertical\' : \'button-section-horizontal\'">\n\n <div ng-class="ctrl.collapsed ? \'sidemenu__top\' : \'horizontal-right-buttons\'">\n\n <div ng-repeat="item in ::ctrl.mainLinks" class="sidemenu-item dropdown" ng-class="ctrl.collapsed ? \'\' : \'dropup\'">\n <a href={{::item.url}} class=sidemenu-link target={{::item.target}}>
8\n <span class="icon-circle sidemenu-icon">\n <i class={{::item.icon}} ng-show=::item.icon></i>\n <img ng-src={{::item.img}} ng-show=::item.img>\n </span>\n </a>\n <ul ng-if=!item.hideDropdownMenu class="dropdown-menu dropdown-menu--sidemenu" role=menu ng-if=::item.children>\n <li class=side-menu-header>\n <span class=sidemenu-item-text>{{::item.text}}</span>\n </li>\n <li ng-repeat="child in ::item.children" ng-class="{divider: child.divider}">\n <a href={{::child.url}}>\n <i class={{::child.icon}} ng-show=::child.icon></i>\n {{::child.text}}\n </a>\n </li>\n </ul>\n </div>\n </div>\n\n <div ng-class="ctrl.collapsed ? \'sidemenu__bottom\': \'horizontal-left-buttons\'" ng-style="{ flexDirection: ctrl.collapsed ? \'column\' : \'\' }">\n <div ng-show=::!ctrl.isSignedIn class=sidemenu-item>\n <a href={{ctrl.loginUrl}} class=sidemenu-link target=_self>\n <span class="icon-circle sidemenu-icon">\n <i class="fa fa-fw fa-sign-in"></i>\n </span>\n </a>\n <a href={{ctrl.loginUrl}} target=_self>\n <ul class="dropdown-menu dropdown-menu--sidemenu" role=menu>\n <li class=side-menu-header>\n <span class=sidemenu-item-text>Sign In</span>\n </li>\n </ul>\n </a>\n </div>\n\n <div ng-repeat="item in ctrl.bottomNav" class="sidemenu-item dropdown dropup">\n <a href={{::item.url}} class=sidemenu-link target={{::item.target}}>\n <span class="icon-circle sidemenu-icon">\n <i class={{::item.icon}} ng-show=::item.icon></i>\n <img ng-src={{::item.img}} ng-show=::item.img>\n </span>\n </a>\n <ul ng-if=!item.hideDropdownMenu class="dropdown-menu dropdown-menu--sidemenu" role=menu>\n <li class=side-menu-header>\n <span class=sidemenu-item-text>{{::item.text}}</span>\n </li>\n <li ng-if=item.subTitle class=sidemenu-subtitle>\n <span class=sidemenu-item-text>{{::item.subTitle}}</span>\n </li>\n <li ng-if=item.showOrgSwitcher class=sidemenu-org-switcher>\n <a ng-click=ctrl.switchOrg()>\n <div>\n <div class=sidemenu-org-switcher__org-current>Current Org:</div>\n <div class=sidemenu-org-switcher__org-name>{{ctrl.contextSrv.user.orgName}}</div>\n </div>\n <div class=sidemenu-org-switcher__switch>\n <i class="fa fa-fw fa-random"></i>Switch</div>\n </a>\n </li>\n <li ng-repeat="child in item.children" ng-class="{divider: child.divider}" ng-hide=::child.hideFromMenu>\n <a href={{::child.url}} target={{::child.target}} ng-click="ctrl.itemClicked(child, $event)">\n <i class={{::child.icon}} ng-show=::child.icon></i>\n {{::child.text}}\n </a>\n </li>\n </ul>\n </div>\n\n </div>\n\n </div>\n\n </div>\n\n</div>')}]),e.exports=n},function(e,t){var n="public/app/features/admin/partials/admin_home.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=ctrl.navModel></page-header>\n\n<div class="page-container page-body">\n\n <div class="grafana-info-box span8">\n Grafana is a multi-tenant system where most can be configured per organization. These\n admin pages are for server admins where you can manage orgs, & all users across all orgs.\n </div>\n\n</div>\n\n')}]),e.exports=n},function(e,t){var n="public/app/features/admin/partials/edit_org.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=navModel></page-header>\n\n<div class="page-container page-body">
8\n\t<h2 class=page-sub-heading>Edit Organization</h2>\n\n\t<form name=orgDetailsForm class=gf-form-group>\n\t\t<div class=gf-form>\n\t\t\t<span class="gf-form-label width-10">Name</span>\n\t\t\t<input type=text required ng-model=org.name class="gf-form-input max-width-14">\n\t\t</div>\n\n\t\t<div class=gf-form-button-row>\n\t\t\t<button type=submit class="btn btn-success" ng-click=update() ng-show=!createMode>Update</button>\n\t\t</div>\n\t</form>\n\n\t<h3 class=page-heading>Organization Users</h3>\n\n\t<table class=filter-table>\n\t\t<tr>\n\t\t\t<th>Username</th>\n\t\t\t<th>Email</th>\n\t\t\t<th>Role</th>\n\t\t\t<th></th>\n\t\t</tr>\n\t\t<tr ng-repeat="orgUser in orgUsers">\n\t\t\t<td>{{orgUser.login}}</td>\n\t\t\t<td>{{orgUser.email}}</td>\n\t\t\t<td>\n <div class=gf-form>\n <span class=gf-form-select-wrapper>\n <select type=text ng-model=orgUser.role class="gf-form-input max-width-8" ng-options="f for f in [\'Viewer\', \'Editor\', \'Admin\']" ng-change=updateOrgUser(orgUser)>\n </select>\n </span>\n </div>\n\t\t\t</td>\n\t\t\t<td style=width:1%>\n\t\t\t\t<a ng-click=removeOrgUser(orgUser) class="btn btn-danger btn-mini">\n\t\t\t\t\t<i class="fa fa-remove"></i>\n\t\t\t\t</a>\n\t\t\t</td>\n\t\t</tr>\n\t</table>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/admin/partials/edit_user.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=navModel></page-header>\n\n<div class="page-container page-body">\n\n\t<div class=page-sub-heading>\n\t\t<h2>Edit User</h2>\n\t</div>\n\n\t<form name=userForm class=gf-form-group>\n\t\t\t<div class=gf-form>\n\t\t\t\t<span class="gf-form-label width-10">Name</span>\n\t\t\t\t<input type=text required ng-model=user.name class="gf-form-input max-width-25">\n\t\t\t</div>\n\t\t\t<div class=gf-form>\n\t\t\t\t<span class="gf-form-label width-10">Email</span>\n\t\t\t\t<input type=email ng-model=user.email class="gf-form-input max-width-25">\n\t\t\t</div>\n\t\t\t<div class=gf-form>\n\t\t\t\t<span class="gf-form-label width-10">Username</span>\n\t\t\t\t<input type=text ng-model=user.login class="gf-form-input max-width-25">\n\t\t\t</div>\n\n\t\t\t<div class=gf-form-button-row>\n\t\t\t\t<button type=submit class="btn btn-success" ng-click=update() ng-show=!createMode>Update</button>\n\t\t\t</div>\n\t</form>\n\n\t<h3 class=page-heading>Change password</h3>\n\n\t<form name=passwordForm class=gf-form-group>\n\t\t<div class=gf-form>\n\t\t\t\t<span class="gf-form-label width-10">New password</span>\n\t\t\t\t<input type=password required ng-minlength=4 ng-model=password class="gf-form-input max-width-25">\n\t\t</div>\n\n\t\t<div class=gf-form-button-row>\n\t\t\t<button type=submit class="btn btn-success" ng-click=setPassword()>Update</button>\n\t\t</div>\n\t</form>\n\n\t<h3 class=page-heading>Permissions</h3>\n\n\t<form name=passwordForm class=gf-form-group>\n\t\t<div class=gf-form>\n\t\t\t<gf-form-switch class=gf-form label="Grafana Admin" checked=permissions.isGrafanaAdmin switch-class=max-width-6></gf-form-switch>\n\t\t</div>\n\n\t\t<div class=gf-form-button-row>\n\t\t\t<button type=submit class="btn btn-success" ng-click=updatePermissions()>Update</button>\n\t\t</div>\n\t</form>\n\n\t<h3 class=page-heading>Organizations</h3>\n\n\t<form name=addOrgForm class=gf-form-group>\n\t\t<div class=gf-form-inline>\n\t\t\t<div class=gf-form>\n\t\t\t\t<span class=gf-form-label>Add</span>\n\t\t\t\t<input type=text ng-model=newOrg.name bs-typeahead=searchOrgs required class="gf-form-input max-width-20" placeholder="organization name">\n\t\t\t</div>\n\t\t\t<div class=gf-form>\n \t<span class=gf-form-label>Role</span>\n \t<span class=gf-form-select-wrapper>\n \t<select type=text ng-model=newOrg.role class="gf-form-input width-10" ng-options="f for f in [\'Viewer\', \'Editor\', \'Admin\']"></select>\n \t</span>\n\t\t\t</div>\n\t\t\t<div class=gf-form>\n\t\t\t\t<button class="btn btn-success gf-form-btn" ng-click=addOrgUser()>Add</button>\n\t\t\t</div>\n\t\t</div>\n\t</form>\n\n\t<table class=filter-table>\n\t\t<thead>\n\t\t\t<tr>\n\t\t\t\t<th>
8Name</th>\n\t\t\t\t<th>Role</th>\n\t\t\t\t<th></th>\n\t\t\t</tr>\n\t\t</thead>\n\t\t<tr ng-repeat="org in orgs">\n\t\t\t<td>\n\t\t\t\t{{org.name}} <span class="label label-info" ng-show="org.orgId === user.orgId">Current</span>\n\t\t\t</td>\n\t\t\t<td>\n <div class=gf-form>\n <span class=gf-form-select-wrapper>\n <select type=text ng-model=org.role class="gf-form-input max-width-12" ng-options="f for f in [\'Viewer\', \'Editor\', \'Admin\']" ng-change=updateOrgUser(org)>\n </select>\n </span>\n </div>\n\t\t\t</td>\n\t\t\t<td style=width:1%>\n\t\t\t\t<a ng-click=removeOrgUser(org) class="btn btn-danger btn-mini">\n\t\t\t\t\t<i class="fa fa-remove"></i>\n\t\t\t\t</a>\n\t\t\t</td>\n\t\t</tr>\n\t</table>\n\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/admin/partials/experiments.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=navModel></page-header>\n\n<div class="page-container page-body">\n <table class="filter-table form-inline filter-table--hover">\n <thead>\n <tr>\n <th>Id</th>\n <th>Org</th>\n <th>Title</th>\n <th>Created</th>\n <th>User Email</th>\n <th style=width:1%></th>\n </tr>\n </thead>\n <tbody>\n <tr ng-repeat="experiment in experiments">\n <td class=link-td>\n {{experiment.id}}\n </td>\n <td class=link-td>\n {{experiment.orgName}}\n </td>\n <td class=link-td>\n {{experiment.title}}\n </td>\n <td class=link-td>\n <span title="{{ experiment.created | prettydate }}">\n {{ experiment.created | moment }}\n </span>\n </td>\n <td class=link-td>\n {{experiment.userEmail}}\n </td>\n <td class=text-right>\n <a ng-click=ctrl.impersonate(experiment.userEmail) title=Impersonate class="btn btn-secondary btn-small">\n <i class="fa fa-address-card" aria-hidden=true></i>\n </a>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/admin/partials/new_user.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=navModel></page-header>\n\n<div class="page-container page-body">\n\t<div class=page-sub-heading>\n\t\t<h1>Add new user</h1>\n\t</div>\n\n\t<form name=userForm class=gf-form-group>\n\t\t<div class=gf-form>\n\t\t\t<span class="gf-form-label width-10">Name</span>\n\t\t\t<input type=text required ng-model=user.name class="gf-form-input max-width-20">\n\t\t</div>\n\t\t<div class=gf-form>\n\t\t\t<span class="gf-form-label width-10">Email</span>\n\t\t\t<input type=email ng-model=user.email class="gf-form-input max-width-20">\n\t\t</div>\n\t\t<div class=gf-form>\n\t\t\t<span class="gf-form-label width-10">Username</span>\n\t\t\t<input type=text ng-model=user.login class="gf-form-input max-width-20">\n\t\t</div>\n\t\t<div class=gf-form>\n\t\t\t<span class="gf-form-label width-10">Password</span>\n\t\t\t<input type=password required ng-model=user.password class="gf-form-input max-width-20">\n\t\t</div>\n\n\t\t<div class=gf-form-button-row>\n\t\t\t<button type=submit class="btn btn-success" ng-click=create()>Create</button>\n\t\t</div>\n\t</form>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/admin/partials/orgs.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=navModel></page-header>\n\n<div class="page-container page-body">\n <div class=page-action-bar>\n <div class=page-action-bar__spacer></div>\n <a class="page-header__cta btn btn-success" href=org/new>\n <i class="fa fa-plus"></i>\n New Org\n </a>\n </div>\n\n <table class="filter-table form-inline filter-table--hover">\n <thead>\n <tr>\n <th>Id</th>\n <th>Name</th>\n <th>Created</th>\n <th style=width:1%></th>\n </tr>\n </thead>\n <tbody>\n <tr ng-repeat="org in orgs">\n <td class=link-td>\n <a href=admin/orgs/edit/{{org.id}}>\n {{org.id}}\n </a>\n </td>\n <td class=link-td>\n <a href=admin/orgs/edit/{{org.id}}>\n {{org.name}}\n </a>\n </td>\n <td class=link-td>\n <a title="{{ org.created | prettydate }}" href=admin/orgs/edit/{{org.id}}>\n {{ org.created | moment }}\n </a>\n </td>\n <td class=text-right>\n <a ng-click=deleteOrg(org) class="btn btn-danger btn-small">\n <i class="fa fa-remove"></i>\n </a>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/admin/partials/settings.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=ctrl.navModel></page-header>\n\n<div class="page-container page-body">\n\n\t<div class="grafana-info-box span8" style="margin:20px 0 25px 0">\n\t\tThese system settings are defined in grafana.ini or custom.ini (or overridden in ENV variables).\n\t\tTo change these you currently need to restart grafana.\n\t</div>\n\n\t<table class=filter-table>\n\t\t<tr ng-repeat-start="(secName, secValue) in settings">\n\t\t\t<td class=admin-settings-section>{{secName}}</td>\n\t\t\t<td></td>\n\t\t</tr>\n\t\t<tr ng-repeat="(keyName, keyValue) in secValue" ng-repeat-end>\n\t\t\t<td style=padding-left:25px>{{keyName}}</td>\n\t\t\t<td>{{keyValue}}</td>\n\t\t</tr>\n\t</table>\n</div>\n\n\n\n')}]),e.exports=n},function(e,t){var n="public/app/features/admin/partials/stats.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=ctrl.navModel></page-header>\n\n<div class="page-container page-body">\n\t<table class="filter-table form-inline">\n\t\t<thead>\n\t\t\t<tr>\n\t\t\t\t<th>
8Name</th>\n\t\t\t\t<th>Value</th>\n\t\t\t</tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td>Total dashboards</td>\n\t\t\t\t<td>{{ctrl.stats.dashboards}}</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>Total users</td>\n\t\t\t\t<td>{{ctrl.stats.users}}</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>Active users (seen last 14 days)</td>\n\t\t\t\t<td>{{ctrl.stats.activeUsers}}</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>Total organizations</td>\n\t\t\t\t<td>{{ctrl.stats.orgs}}</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>Total datasources</td>\n\t\t\t\t<td>{{ctrl.stats.datasources}}</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>Total playlists</td>\n\t\t\t\t<td>{{ctrl.stats.playlists}}</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>Total snapshots</td>\n\t\t\t\t<td>{{ctrl.stats.snapshots}}</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>Total dashboard tags</td>\n\t\t\t\t<td>{{ctrl.stats.tags}}</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>Total starred dashboards</td>\n\t\t\t\t<td>{{ctrl.stats.stars}}</td>\n\t\t\t</tr>\n <tr>\n\t\t\t\t<td>Total alerts</td>\n\t\t\t\t<td>{{ctrl.stats.alerts}}</td>\n\t\t\t</tr>\n\t\t</tbody>\n\t</table>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/admin/partials/users.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=ctrl.navModel></page-header>\n\n<div class="page-container page-body">\n\t<div class=page-action-bar>\n <label class="gf-form gf-form--grow gf-form--has-input-icon">\n <input type=text class="gf-form-input max-width-30" placeholder="Find user by name/login/email" tabindex=1 give-focus=true ng-model=ctrl.query ng-model-options="{ debounce: 500 }" spellcheck=false ng-change=ctrl.getUsers() />\n <i class="gf-form-input-icon fa fa-search"></i>\n </label>\n <div class=page-action-bar__spacer></div>\n <a class="btn btn-success" href=admin/users/create>\n <i class="fa fa-plus"></i>\n Add new user\n </a>\n </div>\n\n <div class=admin-list-table>\n <table class="filter-table form-inline filter-table--hover">\n <thead>\n <tr>\n <th></th>\n <th>Email</th>\n <th>Exp #</th>\n <th>Upl #</th>\n <th>Incomplete #</th>\n <th>\n Seen\n <tip>Time since user was seen using Grafana</tip>\n </th>\n <th>Created</th>\n <th></th>\n <th style=width:1%></th>\n </tr>\n </thead>\n <tbody>\n <tr ng-repeat="user in ctrl.users">\n <td class="width-4 text-center link-td">\n <a href=admin/users/edit/{{user.id}}>\n <img class=filter-table__avatar ng-src={{user.avatarUrl}}>\n </a>\n </td>\n <td class=link-td>\n <a href=admin/users/edit/{{user.id}}>\n {{user.email}}\n </a>\n </td>\n <td class=link-td>\n <a href=admin/users/edit/{{user.id}}>\n {{user.orgExperimentCount}}\n </a>\n </td>\n <td class=link-td>\n <a href=admin/users/edit/{{user.id}}>\n {{user.uploadCount}}\n </a>\n </td>\n <td class=link-td>\n <a href=admin/users/edit/{{user.id}}>\n {{user.incompleteUploadCount}}\n </a>\n </td>\n <td class=link-td>\n <a href=admin/users/edit/{{user.id}}>\n {{user.lastSeenAtAge}}\n </a>\n </td>\n <td class=link-td>\n <a title="{{ user.created | prettydate }}" href=admin/users/edit/{{user.id}}>\n {{ user.created | moment }}\n </a>\n </td>\n <td class=link-td>\n <a href=admin/users/edit/{{user.id}}>\n <i class="fa fa-shield" ng-show=user.isAdmin bs-tooltip="\'Grafana Admin\'"></i>\n </a>\n </td>\n <td class=text-right>\n <a ng-click=ctrl.impersonate(user) title=Impersonate class="btn btn-secondary btn-small">\n <i class="fa fa-address-card" aria-hidden=true></i>\n </a>\n \n <a ng-click=ctrl.deleteUser(user) class="btn btn-danger btn-small">\n <i class="fa fa-remove"></i>\n </a>\n </td>\n </tr>\n </tbody>\n\n </table>\n </div>\n\n <div class=admin-list-paging ng-if=ctrl.showPaging>\n <ol>\n <li ng-repeat="page in ctrl.pages">\n <button class="btn btn-small" ng-class="{\'btn-secondary\': page.current, \'btn-inverse\': !page.current}" ng-click=ctrl.navigateToPage(page)>{{page.page}}</button>\n </li>\n </ol>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/alerting/partials/alert_howto.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=modal-body>\n\t<div class=modal-header>\n\t\t<h2 class=modal-header-title>\n\t\t\t<i class="fa fa-info-circle"></i>\n\t\t\t<span class=p-l-1>Adding an Alert</span>\n\t\t</h2>\n\n\t\t<a class=modal-header-close ng-click=dismiss();>\n\t\t\t<i class="fa fa-remove"></i>\n\t\t</a>\n\t</div>\n\n\n\t<div class=modal-content>\n\t\t<div class=text-center>\n\t\t\t<img src=public/img/alert_howto_new.png>\n\t\t</div>\n\t\t<p class="p-a-2 text-center offset-lg-1 col-lg-10">\n\t\t\tAlerts are added and configured in the <strong>Alert Tab</strong> of any dashboard\n\t\t\tgraph panel, letting you build and visualize an alert using existing queries.\n\t\t\t<br> <br>\n\t\t\tTo persist your alert rule changes remember to save the dashboard.\n\t\t\t<br>\n\t\t\t<br>\n\t\t</p>\n\t</div>\n\n</div>\n\n')}]),e.exports=n},function(e,t){var n="public/app/features/alerting/partials/alert_tab.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=edit-tab-with-sidemenu ng-if=ctrl.alert>\n\t<aside class=edit-sidemenu-aside>\n\t\t<ul class=edit-sidemenu>\n\t\t\t<li ng-class="{active: ctrl.subTabIndex === 0}">\n\t\t\t\t<a ng-click=ctrl.changeTabIndex(0)>
8Alert Config</a>\n\t\t\t</li>\n\t\t\t<li ng-class="{active: ctrl.subTabIndex === 1}">\n\t\t\t\t<a ng-click=ctrl.changeTabIndex(1)>\n\t\t\t\t\tNotifications <span class=muted>({{ctrl.alertNotifications.length}})</span>\n\t\t\t\t</a>\n\t\t\t</li>\n\t\t\t<li ng-class="{active: ctrl.subTabIndex === 2}">\n\t\t\t\t<a ng-click=ctrl.changeTabIndex(2)>State history</a>\n\t\t\t</li>\n <li>\n\t\t\t\t<a ng-click=ctrl.delete()>Delete</a>\n\t\t\t</li>\n\t\t</ul>\n\t</aside>\n\n\t<div class=edit-tab-content>\n\t\t<div ng-if="ctrl.subTabIndex === 0">\n\t\t\t<div class="alert alert-error m-b-2" ng-show=ctrl.error>\n\t\t\t\t<i class="fa fa-warning"></i> {{ctrl.error}}\n\t\t\t</div>\n\n\t\t\t<div class=gf-form-group>\n\t\t\t\t<h5 class=section-heading>Alert Config</h5>\n\t\t\t\t<div class=gf-form>\n\t\t\t\t\t<span class="gf-form-label width-6">Name</span>\n\t\t\t\t\t<input type=text class="gf-form-input width-20" ng-model=ctrl.alert.name>\n\t\t\t\t\t<span class=gf-form-label>Evaluate every</span>\n\t\t\t\t\t<input class="gf-form-input max-width-5" type=text ng-model=ctrl.alert.frequency>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class=gf-form-group>\n\t\t\t\t<h5 class=section-heading>Conditions</h5>\n\t\t\t\t<div class=gf-form-inline ng-repeat="conditionModel in ctrl.conditionModels">\n\t\t\t\t\t<div class=gf-form>\n\t\t\t\t\t\t<metric-segment-model css-class="query-keyword width-5" ng-if=$index property=conditionModel.operator.type options=ctrl.evalOperators custom=false></metric-segment-model>\n\t\t\t\t\t\t<span class="gf-form-label query-keyword width-5" ng-if="$index===0">WHEN</span>\n\t\t\t\t\t</div>\n \t\t\t<div class=gf-form>\n\t\t\t\t\t\t<query-part-editor class="gf-form-label query-part width-9" part=conditionModel.reducerPart handle-event="ctrl.handleReducerPartEvent(conditionModel, $event)">\n\t\t\t\t\t\t</query-part-editor>\n \t\t\t<span class="gf-form-label query-keyword">OF</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=gf-form>\n\t\t\t\t\t\t<query-part-editor class="gf-form-label query-part" part=conditionModel.queryPart handle-event="ctrl.handleQueryPartEvent(conditionModel, $event)">\n\t\t\t\t\t\t</query-part-editor>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=gf-form>\n\t\t\t\t\t\t<metric-segment-model property=conditionModel.evaluator.type options=ctrl.evalFunctions custom=false css-class=query-keyword on-change=ctrl.evaluatorTypeChanged(conditionModel.evaluator)></metric-segment-model>\n\t\t\t\t\t\t<input class="gf-form-input max-width-9" type=number step=any ng-hide="conditionModel.evaluator.params.length === 0" ng-model=conditionModel.evaluator.params[0] ng-change=ctrl.evaluatorParamsChanged()>\n \t\t\t<label class="gf-form-label query-keyword" ng-show="conditionModel.evaluator.params.length === 2">TO</label>\n \t\t\t<input class="gf-form-input max-width-9" type=number step=any ng-if="conditionModel.evaluator.params.length === 2" ng-model=conditionModel.evaluator.params[1] ng-change=ctrl.evaluatorParamsChanged()>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=gf-form>\n\t\t\t\t\t\t<label class=gf-form-label>\n\t\t\t\t\t\t\t<a class=pointer tabindex=1 ng-click=ctrl.removeCondition($index)>\n\t\t\t\t\t\t\t\t<i class="fa fa-trash"></i>\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class=gf-form>\n\t\t\t\t\t<label class="gf-form-label dropdown">\n\t\t\t\t\t\t<a class="pointer dropdown-toggle" data-toggle=dropdown>\n\t\t\t\t\t\t\t<i class="fa fa-plus"></i>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t\t<ul class=dropdown-menu role=menu>\n\t\t\t\t\t\t\t<li ng-repeat="ct in ctrl.conditionTypes" role=menuitem>\n\t\t\t\t\t\t\t\t<a ng-click=ctrl.addCondition(ct.value);>{{ct.text}}</a>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</label>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class=gf-form-group>\n\t\t\t\t<div class=gf-form>\n \t\t\t<span class="gf-form-label width-18">If no data or all values are null</span>\n \t\t\t<span class="gf-form-label query-keyword">SET STATE TO</span>\n\t\t\t\t\t<div class=gf-form-select-wrapper>\n\t\t\t\t\t\t<select class=gf-form-input ng-model=ctrl.alert.noDataState ng-options="f.value as f.text for f in ctrl.noDataModes">\n\t\t\t\t\t\t</select>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class=gf-form>\n \t\t\t<span class="gf-form-label width-18">If execution error or timeout</span>\n \t\t\t<span class="gf-form-label query-keyword">SET STATE TO</span>\n\t\t\t\t\t<div class=gf-form-select-wrapper>\n\t\t\t\t\t\t<select class=gf-form-input ng-model=ctrl.alert.executionErrorState ng-options="f.value as f.text for f in ctrl.executionErrorModes">\n\t\t\t\t\t\t</select>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class=gf-form-button-row>\n\t\t\t\t\t<button class="btn btn-inverse" ng-click=ctrl.test()>\n\t\t\t\t\t\tTest Rule\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class=gf-form-group ng-if=ctrl.testing>\n\t\t\t\tEvaluating rule <i class="fa fa-spinner fa-spin"></i>\n\t\t\t</div>\n\n\t\t\t<div class=gf-form-group ng-if=ctrl.testResult>\n\t\t\t\t<json-tree root-name=result object=ctrl.testResult start-expanded=true></json-tree>\n\t\t\t</div>\n\t\t</div>
8\n\n\t\t<div class=gf-form-group ng-if="ctrl.subTabIndex === 1">\n\t\t\t<h5 class=section-heading>Notifications</h5>\n\t\t\t<div class=gf-form-inline>\n\t\t\t\t<div class="gf-form max-width-30">\n\t\t\t\t\t<span class="gf-form-label width-8">Send to</span>\n\t\t\t\t\t<span class=gf-form-label ng-repeat="nc in ctrl.alertNotifications" ng-style="{\'background-color\': nc.bgColor }">\n\t\t\t\t\t\t<i class={{nc.iconClass}}></i> {{nc.name}} \n\t\t\t\t\t\t<i class="fa fa-remove pointer muted" ng-click=ctrl.removeNotification($index) ng-if="nc.isDefault === false"></i>\n\t\t\t\t\t</span>\n\t\t\t\t\t<metric-segment segment=ctrl.addNotificationSegment get-options=ctrl.getNotifications() on-change=ctrl.notificationAdded()></metric-segment>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class="gf-form gf-form--v-stretch">\n\t\t\t\t<span class="gf-form-label width-8">Message</span>\n\t\t\t\t<textarea class=gf-form-input rows=10 ng-model=ctrl.alert.message placeholder="Notification message details..."></textarea>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=gf-form-group style=max-width:720px ng-if="ctrl.subTabIndex === 2">\n\t\t\t<button class="btn btn-mini btn-danger pull-right" ng-click=ctrl.clearHistory()><i class="fa fa-trash"></i> Clear history</button>\n \t\t<h5 class=section-heading style=whitespace:nowrap>\n\t\t\t\tState history <span class="muted small">(last 50 state changes)</span>\n\t\t\t</h5>\n\n\t\t\t<div ng-show="ctrl.alertHistory.length === 0">\n\t\t\t\t<br>\n\t\t\t\t<i>No state changes recorded</i>\n\t\t\t</div>\n\n <ol class=alert-rule-list>\n <li class=alert-rule-item ng-repeat="al in ctrl.alertHistory">\n <div class="alert-rule-item__icon {{al.stateModel.stateClass}}">\n <i class={{al.stateModel.iconClass}}></i>\n </div>\n <div class=alert-rule-item__body>\n <div class=alert-rule-item__header>\n <div class=alert-rule-item__text>\n <span class={{al.stateModel.stateClass}}>{{al.stateModel.text}}</span>\n </div>\n </div>\n <span class=alert-list-info>{{al.info}}</span>\n </div>\n <div class=alert-rule-item__time>\n <span>{{al.time}}</span>\n </div>\n </li>\n </ol>\n </div>\n </div>\n</div>\n\n<div class=gf-form-group ng-if=!ctrl.alert>\n <div class=gf-form-button-row>\n <button class="btn btn-inverse" ng-click=ctrl.enable()>\n <i class="icon-gf icon-gf-alert"></i>\n Create Alert\n </button>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/alerting/partials/notification_edit.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=ctrl.navModel></page-header>\n\n<div class="page-container page-body">\n\n <h3 class=page-sub-heading ng-hide=ctrl.isNew>Edit Notification Channel</h3>\n <h3 class=page-sub-heading ng-show=ctrl.isNew>New Notification Channel</h3>\n\n <form name=ctrl.theForm ng-if=ctrl.notifiers>\n <div class=gf-form-group>\n <div class=gf-form>\n <span class="gf-form-label width-12">Name</span>\n <input type=text required class="gf-form-input max-width-15" ng-model=ctrl.model.name required>\n </div>\n <div class=gf-form>\n <span class="gf-form-label width-12">Type</span>\n <div class="gf-form-select-wrapper width-15">\n <select class=gf-form-input ng-model=ctrl.model.type ng-options="t.type as t.name for t in ctrl.notifiers" ng-change="ctrl.typeChanged(notification, $index)">\n </select>\n </div>\n </div>\n <gf-form-switch class=gf-form label="Send on all alerts" label-class=width-12 checked=ctrl.model.isDefault tooltip="Use this notification for all alerts">\n </gf-form-switch>\n <gf-form-switch class=gf-form label="Include image" label-class=width-12 checked=ctrl.model.settings.uploadImage tooltip="Captures an image and include it in the notification">\n </gf-form-switch>\n </div>\n\n <div class=gf-form-group ng-include src=ctrl.notifierTemplateId>\n </div>\n\n <div class="gf-form-group gf-form-button-row">\n\t\t\t<button type=submit ng-click=ctrl.save() class="btn btn-success width-7">Save</button>\n\t\t\t<button type=submit ng-click=ctrl.testNotification() class="btn btn-secondary width-7">Send Test</button>\n\t\t\t<a href=alerting/notifications class="btn btn-inverse">Back</a>\n </div>\n </form>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/alerting/partials/notifications_list.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=ctrl.navModel></page-header>\n\n<div class="page-container page-body">\n\n <div ng-if=ctrl.notifications.length>\n <div class=page-action-bar>\n <div class=page-action-bar__spacer>\n </div>
8\n\n <a href=alerting/notification/new class="btn btn-success">\n <i class="fa fa-plus"></i>\n New Channel\n </a>\n </div>\n\n <table class="filter-table filter-table--hover">\n <thead>\n <th style=min-width:200px>\n <strong>Name</strong>\n </th>\n <th style=min-width:100px>Type</th>\n <th style=width:1%></th>\n </thead>\n <tbody>\n <tr ng-repeat="notification in ctrl.notifications">\n <td class=link-td>\n <a href=alerting/notification/{{notification.id}}/edit>\n {{notification.name}}\n </a>\n </td>\n <td class=link-td>\n <a href=alerting/notification/{{notification.id}}/edit>\n {{notification.type}}\n </a>\n </td>\n <td class=text-right>\n <span class="btn btn-secondary btn-small" ng-show="notification.isDefault == true">\n default\n </span>\n <a ng-click=ctrl.deleteNotification(notification.id) class="btn btn-danger btn-small">\n <i class="fa fa-remove"></i>\n </a>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n <div ng-if="ctrl.notifications.length === 0">\n <empty-list-cta model="{\n title: \'There are no notification channels defined yet\',\n buttonIcon: \'gicon gicon-add-alert-notification-channel\',\n buttonLink: \'alerting/notification/new\',\n buttonTitle: \'Add channel\',\n proTip: \'You can include images in your alert notifications.\',\n proTipLink: \'http://docs.grafana.org/alerting/notifications/\',\n proTipLinkTitle: \'Learn more\',\n proTipTarget: \'_blank\'\n }"/>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/annotations/partials/editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'\n<div ng-controller=AnnotationsEditorCtrl>\n\t<h3 class=dashboard-settings__header>\n\t\t<a ng-click=ctrl.backToList()>Annotations</a>\n\t\t<span ng-show="ctrl.mode === \'new\'">> New</span>\n\t\t<span ng-show="ctrl.mode === \'edit\'">> Edit</span>\n\t</h3>\n\n\t<div ng-if="ctrl.mode === \'list\'">\n\t\t<div class=page-action-bar ng-if="ctrl.annotations.length > 1">\n\t\t\t<div class=page-action-bar__spacer></div>\n\t\t\t<a type=button class="btn btn-success" ng-click=ctrl.setupNew();><i class="fa fa-plus"></i> New</a>\n\t\t</div>\n\n\t\t<table class="filter-table filter-table--hover">\n\t\t\t<thead>\n\t\t\t\t<tr>\n\t\t\t\t\t<th>Query name</th>\n\t\t\t\t\t<th>Data source</th>\n\t\t\t\t\t<th colspan=3></th>\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t\t<tbody>\n\t\t\t\t<tr ng-repeat="annotation in ctrl.annotations track by annotation.name">\n\t\t\t\t\t<td style=width:90% ng-hide=annotation.builtIn class=pointer ng-click=ctrl.edit(annotation)>\n\t\t\t\t\t\t<i class="fa fa-comment" style=color:{};></i> \n\t\t\t\t\t\t{{annotation.name}}\n\t\t\t\t\t</td>\n\t\t\t\t\t<td style=width:90% ng-show=annotation.builtIn class=pointer ng-click=ctrl.edit(annotation)>\n\t\t\t\t\t\t<i class="gicon gicon-annotation"></i> \n\t\t\t\t\t\t<em class=muted>{{annotation.name}} (Built-in)</em>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td class=pointer ng-click=ctrl.edit(annotation)>\n\t\t\t\t\t\t{{annotation.datasource || \'Default\'}}\n\t\t\t\t\t</td>\n\t\t\t\t\t<td style=width:1%><i ng-click=ctrl.move($index,-1) ng-hide=$first class="pointer fa fa-arrow-up"></i></td>\n\t\t\t\t\t<td style=width:1%><i ng-click=ctrl.move($index,1) ng-hide=$last class="pointer fa fa-arrow-down"></i></td>\n\t\t\t\t\t<td style=width:1%>\n\t\t\t\t\t\t<a ng-click=ctrl.removeAnnotation(annotation) class="btn btn-danger btn-mini" ng-hide=annotation.builtIn>\n\t\t\t\t\t\t\t<i class="fa fa-remove"></i>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</tbody>\n\t\t</table>\n\n\t\t\x3c!-- empty list cta, there is always one built in query --\x3e\n\t\t<div ng-if="ctrl.annotations.length === 1" class=p-t-2>\n\t\t\t<div class=empty-list-cta>\n\t\t\t\t<div class=empty-list-cta__title>There are no custom annotation queries added yet</div>\n\t\t\t\t<a ng-click=ctrl.setupNew() class="empty-list-cta__button btn btn-xlarge btn-success">\n\t\t\t\t\t<i class="gicon gicon-add-annotation"></i>\n\t\t\t\t\tAdd Annotation Query\n\t\t\t\t</a>\n\t\t\t\t<div class=grafana-info-box>\n\t\t\t\t\t<h5>What are Annotations?</h5>\n\t\t\t\t\t<p>\n\t\t\t\t\tAnnotations provide a way to integrate event data into your graphs. They are visualized as vertical lines and icons\n\t\t\t\t\ton all graph panels. When you hover over an annotation icon y
8ou can get event text & tags for the event. You can add annotation events\n\t\t\t\t\tdirectly from grafana by holding CTRL or CMD + click on graph (or drag region). These will be stored in Grafana\'s annotation database.\n\t\t\t\t\t</p>\n\t\t\t\t\tCheckout the <a class=external-link target=_blank href=http://docs.grafana.org/reference/annotations/ >Annotations documentation</a> for more information.\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\n\t<div class=annotations-basic-settings ng-if="ctrl.mode === \'edit\' || ctrl.mode === \'new\'">\n\t\t<div class=gf-form-group>\n\t\t\t<h5 class=section-heading>General</h5>\n\t\t\t<div class=gf-form-inline>\n\t\t\t\t<div class=gf-form>\n\t\t\t\t\t<span class="gf-form-label width-7">Name</span>\n\t\t\t\t\t<input type=text class="gf-form-input width-20" ng-model=ctrl.currentAnnotation.name placeholder=name>\n\t\t\t\t</div>\n\t\t\t\t<div class=gf-form>\n\t\t\t\t\t<span class="gf-form-label width-7">Data source</span>\n\t\t\t\t\t<div class=gf-form-select-wrapper>\n\t\t\t\t\t\t<select class=gf-form-input ng-model=ctrl.currentAnnotation.datasource ng-options="f.name as f.name for f in ctrl.datasources" ng-change=ctrl.datasourceChanged()></select>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=gf-form-group>\n\t\t\t<div class=gf-form-inline>\n\t\t\t\t<gf-form-switch class=gf-form label=Enabled checked=ctrl.currentAnnotation.enable label-class=width-7>\n\t\t\t\t</gf-form-switch>\n\t\t\t\t<gf-form-switch class=gf-form label=Hidden tooltip="Hides the annotation query toggle from showing at the top of the dashboard" checked=ctrl.currentAnnotation.hide label-class=width-7>\n\t\t\t\t</gf-form-switch>\n\t\t\t\t<div class=gf-form>\n\t\t\t\t\t<label class="gf-form-label width-9">Color</label>\n\t\t\t\t\t<span class=gf-form-label>\n\t\t\t\t\t\t<color-picker color=ctrl.currentAnnotation.iconColor onchange=ctrl.onColorChange></color-picker>\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<h5 class=section-heading>Query</h5>\n\t\t<rebuild-on-change property=ctrl.currentDatasource>\n\t\t\t<plugin-component type=annotations-query-ctrl>\n\t\t\t</plugin-component>\n\t\t</rebuild-on-change>\n\n\t\t<div class=gf-form>\n\t\t\t<div class="gf-form-button-row p-y-0">\n\t\t\t\t<button ng-show="ctrl.mode === \'new\'" type=button class="btn gf-form-button btn-success" ng-click=ctrl.add()>Add</button>\n\t\t\t\t<button ng-show="ctrl.mode === \'edit\'" type=button class="btn btn-success pull-left" ng-click=ctrl.update()>Update</button>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/annotations/partials/event_editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'\n<div class=graph-annotation>\n\t<div class=graph-annotation__header>\n\t\t<div class=graph-annotation__user bs-tooltip="\'Created by {{ctrl.login}}\'">\n\t\t</div>\n\n\t\t<div class=graph-annotation__title>\n\t\t\t<span ng-if=!ctrl.event.id>Add Annotation</span>\n\t\t\t<span ng-if=ctrl.event.id>Edit Annotation</span>\n\t\t</div>\n\n <div class=graph-annotation__time>{{ctrl.timeFormated}}</div>\n\t</div>\n\n\t<form name=ctrl.form class="graph-annotation__body text-center">\n\t\t<div style=display:inline-block>\n\t\t\t<div class="gf-form gf-form--v-stretch">\n\t\t\t\t<span class="gf-form-label width-7">Description</span>\n\t\t\t\t<textarea class="gf-form-input width-20" rows=2 ng-model=ctrl.event.text placeholder=Description></textarea>\n\t\t\t</div>\n\n\t\t\t<div class=gf-form>\n\t\t\t\t<span class="gf-form-label width-7">Tags</span>\n\t\t\t\t<bootstrap-tagsinput ng-model=ctrl.event.tags tagclass="label label-tag" placeholder="add tags">\n\t\t\t\t</bootstrap-tagsinput>\n\t\t\t</div>\n\n\t\t\t<div class=gf-form-button-row>\n\t\t\t\t<button type=submit class="btn btn-success" ng-click=ctrl.save()>Save</button>\n\t\t\t\t<button ng-if=ctrl.event.id type=submit class="btn btn-danger" ng-click=ctrl.delete()>Delete</button>\n\t\t\t\t<a class=btn-text ng-click=ctrl.close();>Cancel</a>\n\t\t\t</div>\n\t\t</div>\n\t</form>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/dashboard/dashnav/dashnav.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=navbar>\n\n\t<div ng-if=ctrl.experiment>\n\t\t<div class=navbar-page-btn>\n\t\t\t<i class="experiment-icon fa fa-flask"></i>\n\t\t\t{{ctrl.experiment.title}}\n\t\t</div>\n\t</div>\n\n\t<div>\n\t\t<a ng-if=ctrl.isSignedIn class=navbar-page-btn ng-click=ctrl.showSearch()>\n\t\t\t<i class="gicon gicon-dashboard"></i>\n\t\t\t{{ctrl.dashboard.title}}\n\t\t\t<i class="fa fa-caret-down"></i>\n\t\t</a>\n\n\t\t<div class=navbar-page-btn ng-if=!ctrl.isSignedIn>\n\t\t\t<i class="gicon gicon-dashboard"></i>\n\t\t\t{{ctrl.dashboard.title}}\n\t\t</div>\n\t</div>\n\n\t<div class="navbar-buttons navbar-buttons--playlist" ng-if=ctrl.playlistSrv.isPlaying>\n\t\t<a class="navbar-button navbar-button--tight" ng-click=ctrl.playlistSrv.prev()><i class="fa fa-step-backward"></i></a>\n\t\t<a class="navbar-button navbar-button--tight" ng-click=ctrl.playlistSrv.stop()><i class="fa fa-stop"></i></a>\n\t\t<a class="navbar-button navbar-button--tight" ng-click=ctrl.playlistSrv.next()><i class="fa fa-step-forward"></i></a>\n\t</div>\n\n\t<div class=navbar__spacer></div>\n\n\t<div class="navbar-buttons navbar-buttons--actions">\n\x3c!-- \n\t\t<button class="btn navbar-button navbar-button--add-panel" ng-show="::ctrl.dashboard.meta.canSave" bs-tooltip="\'Add panel\'" data-placement="bottom" ng-click="ctrl.addPanel
8()">\n\t\t\t<i class="gicon gicon-add-panel"></i>\n\t\t</button>\n --\x3e\n\t\t<button class="btn navbar-button navbar-button--star" ng-show=::ctrl.dashboard.meta.canStar ng-click=ctrl.starDashboard() bs-tooltip="\'Mark as favorite\'" data-placement=bottom>\n\t\t\t<i class=fa ng-class="{\'fa-star-o\': !ctrl.dashboard.meta.isStarred, \'fa-star\': ctrl.dashboard.meta.isStarred}"></i>\n\t\t</button>\n\n\t\t<button class="btn navbar-button navbar-button--share" ng-show=::ctrl.dashboard.meta.canShare ng-click=ctrl.shareDashboard(0) bs-tooltip="\'Share dashboard\'" data-placement=bottom>\n\t\t\t<i class="fa fa-share-square-o"></i>\n\t\t</button>\n\n\t\t<button class="btn navbar-button navbar-button--save" ng-show=ctrl.dashboard.meta.canSave ng-click=ctrl.saveDashboard() bs-tooltip="\'Save dashboard <br> CTRL+S\'" data-placement=bottom>\n\t\t\t<i class="fa fa-save"></i>\n\t\t</button>\n\n\t\t<a class="btn navbar-button navbar-button--snapshot-origin" ng-if="ctrl.isSignedIn && ctrl.dashboard.snapshot.originalUrl" href={{ctrl.dashboard.snapshot.originalUrl}} bs-tooltip="\'Open original dashboard\'" data-placement=bottom>\n\t\t\t<i class="fa fa-link"></i>\n\t\t</a>\n\n\t\t<button class="btn navbar-button navbar-button--settings" ng-click=ctrl.toggleSettings() bs-tooltip="\'Settings\'" data-placement=bottom ng-show=ctrl.dashboard.meta.showSettings>\n\t\t\t<i class="fa fa-cog"></i>\n\t\t</button>\n\t</div>\n\n\t<gf-time-picker class=gf-timepicker-nav dashboard=ctrl.dashboard ng-if=!ctrl.dashboard.timepicker.hidden></gf-time-picker>\n\n\t<div class="navbar-buttons navbar-buttons--close">\n\t\t<button class="btn navbar-button navbar-button--primary" ng-click=ctrl.close() bs-tooltip="\'Back to dashboard\'" data-placement=bottom>\n\t\t\t<i class="fa fa-reply"></i>\n\t\t</button>\n\t</div>\n\n</div>\n\n<dashboard-search></dashboard-search>\n')}]),e.exports=n},function(e,t){var n="public/app/features/dashboard/export/export_modal.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'\n\x3c!-- <p> --\x3e\n\x3c!-- \tExporting will export a cleaned sharable dashboard that can be imported --\x3e\n\x3c!-- \tinto another Grafana instance. --\x3e\n\x3c!-- </p> --\x3e\n\n<div class=share-modal-header>\n\t<div class=share-modal-big-icon>\n\t\t<i class="fa fa-cloud-upload"></i>\n\t</div>\n\t<div>\n\t\t<p class=share-modal-info-text>\n\t\t\tExport the dashboard to a JSON file. The exporter will templatize the\n\t\t\tdashboard\'s data sources to make it easy for others to import and reuse.\n\t\t</p>\n\n\t\t<div class=gf-form-button-row>\n\t\t\t<button type=button class="btn gf-form-btn width-10 btn-success" ng-click=ctrl.save()>\n\t\t\t\t<i class="fa fa-save"></i> Save to file\n\t\t\t</button>\n\t\t\t<button type=button class="btn gf-form-btn width-10 btn-secondary" ng-click=ctrl.saveJson()>\n\t\t\t\t<i class="fa fa-file-text-o"></i> View JSON\n\t\t\t</button>\n\t\t\t<a class="btn btn-link" ng-click=ctrl.dismiss()>Cancel</a>\n\t\t</div>\n\n\t</div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/dashboard/export_data/export_data_modal.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=modal-body>\n <div class=modal-header>\n <h2 class=modal-header-title>\n Export CSV\n </h2>\n\n <a class=modal-header-close ng-click=ctrl.dismiss();>\n <i class="fa fa-remove"></i>\n </a>\n </div>\n\n <div class=modal-content>\n <div class=p-t-2>\n <div class=gf-form ng-hide="ctrl.panel === \'table\'">\n <label class="gf-form-label width-11">Mode</label>\n <div class=gf-form-select-wrapper>\n <select class=gf-form-input ng-model=ctrl.asRows ng-options="f.value as f.text for f in [{text: \'Series as rows\', value: true}, {text: \'Series as columns\', value: false}]">\n </select>\n </div>\n </div>\n <div class=gf-form ng-hide="ctrl.panel === \'table\'">\n <label class="gf-form-label width-11">Date Time Format<info-popover>See <a href=https://momentjs.com/docs/#/displaying/format/ >Moment.js docs</a>.</info-popover></label>\n <input type=text class=gf-form-input ng-model=ctrl.dateTimeFormat>\n </div>\n <gf-form-switch class=gf-form label="Excel CSV Dialect" label-class=width-11 switch-class=max-width-6 checked=ctrl.excel>\n </gf-form-switch>\n </div>\n\n <div class="gf-form-button-row text-center">\n <a class="btn btn-success" ng-click=ctrl.export();>Export</a>\n <a class=btn-text ng-click=ctrl.dismiss();>Cancel</a>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/dashboard/export_experiment/export_experiment_modal.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'\n\x3c!-- <p> --\x3e\n\x3c!-- \tExporting will export a cleaned sharable dashboard that can be imported --\x3e\n\x3c!-- \tinto another Grafana instance. --\x3e\n\x3c!-- </p> --\x3e\n\n<div class=share-modal-header>\n\t<div class=share-modal-big-icon>\n\t\t<i class="fa fa-cloud-upload"></i>\n\t</div>\n\t<div>\n\n\t\t<div ng-if=ctrl.experimentId>\n\n\t\t\t<p class=share-modal-info-text>\n\t\t\t\tExport the entire experiment to a CSV File (Matlab compatible).\n\t\t\t</p>\n\t\t\t<p>\n\t\t\t\tSelecting "original" below will download the full data as it was uploaded to Curve. \n\t\t\t\tAll other settings will downsample the data. \n\t\t\t\tIf the original data is of a lower sample rate than the selected option, \n\t\t\t\tsome fields will appear as blank in the CSV output.\n\t\t\t</p>\n\n\t\t\t<p>\n\t\t\t\tInterval between samples: \n\t\t\t\t<select ng-model=sampleInterval ng-change=ctrl.intervalChanged(sampleInterval)>\n\t\t\t\t\t<option value=orig>Original (full sample rate)</option>\n\t\t\t\t\t<option value=1ms>1ms</option>\n\t\t\t\t\t<option value=5ms>5ms</option>\n\t\t\t\t\t<option value=10ms>10ms</option>\n\t\t\t\t\t<option value=50ms>50ms</option>\n\t\t\t\t\t<option value=100ms>100ms</option>\n\t\t\t\t\t<option value=250ms>250ms</option>\n\t\t\t\t\t<option value=500ms>500ms</option>\n\t\t\t\t\t<option value=1s>1s</option>\n\t\t\t\t</select>\n\t\t\t</p>\n\n\t\t\t<p class=share-modal-info-text>\n\t\t\t\t<b><a target=_self href="{{ ctrl.link }}">Direct link (requires login)</a></b>\n\t\t\t</p><p>\n\n\t\t\t</p><div class=gf-form-button-row>\n\n\t\t\t\t<button type=button class="btn gf-form-btn width-10 btn-success" ng-click=ctrl.save(sampleInterval)>\n\t\t\t\t\t<i class="fa fa-save"></i> Save to file\n\t\t\t\t</button>\n\n \x3c!--\n\t\t\t\t<button type="button" \n\t\t\t\t\tclass="btn gf-form-btn width-10 btn-secondary" \n\t\t\t\t\tng-disabled="ctrl.isEmailLoa
8ding"\n\t\t\t\t\tng-click="ctrl.email(sampleInterval)">\n\t\t\t\t\t<div ng-if="ctrl.isEmailLoading">\n\t\t\t\t\t\t<i class="fa fa-spinner fa-spin"></i> Sending...\n\t\t\t\t\t</div>\n\t\t\t\t\t<div ng-if="!ctrl.isEmailLoading">\n\t\t\t\t\t\t<i class="fa fa-envelope"></i> Send email\n\t\t\t\t\t</div>\n </button>\n --\x3e\n\n\t\t\t\t<a class="btn btn-link" ng-click=ctrl.dismiss()>Cancel</a>\n\n\t\t\t</div>\n\n\t\t</div>\n\n\t\t<div ng-if=!ctrl.experimentId>\n\t\t\tCouldn\'t find an experiment id. \n\t\t\t<br><br>\n\t\t\tPlease open an experiment dashboard.\n\t\t</div>\n\n\n\t</div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/dashboard/folder_picker/folder_picker.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=gf-form-inline>\n <div class=gf-form>\n <label class="gf-form-label {{ctrl.labelClass}}">Folder</label>\n <div class=dropdown ng-hide=ctrl.createNewFolder>\n <gf-form-dropdown model=ctrl.folder get-options=ctrl.getOptions($query) on-change=ctrl.onFolderChange($option)>\n </gf-form-dropdown>\n </div>\n <input type=text class="gf-form-input max-width-10" ng-if=ctrl.createNewFolder give-focus=ctrl.createNewFolder ng-model=ctrl.newFolderName ng-model-options="{ debounce: 400 }" ng-change=ctrl.newFolderNameChanged() />\n </div>\n <div class=gf-form ng-if=ctrl.createNewFolder>\n <button class="btn btn-inverse" ng-click=ctrl.createFolder($event) ng-disabled="!ctrl.newFolderNameTouched || ctrl.hasValidationError">\n <i class="fa fa-fw fa-save"></i> Create\n </button>\n </div>\n <div class=gf-form ng-if=ctrl.createNewFolder>\n <button class="btn btn-inverse" ng-click=ctrl.cancelCreateFolder($event)>\n Cancel\n </button>\n </div>\n</div>\n<div class=gf-form-inline ng-if="ctrl.newFolderNameTouched && ctrl.hasValidationError">\n <div class="gf-form gf-form--grow">\n <label class="gf-form-label text-warning gf-form-label--grow">\n <i class="fa fa-warning"></i>\n {{ctrl.validationError}}\n </label>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/dashboard/history/history.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<h3 class=dashboard-settings__header>\n <a ng-click="ctrl.switchMode(\'list\')">Versions</a>\n <span ng-show="ctrl.mode === \'compare\'">\n > Comparing {{ctrl.baseInfo.version}}\n <i class="fa fa-arrows-h"></i>\n {{ctrl.newInfo.version}}\n <cite class=muted ng-if=ctrl.isNewLatest>(Latest)</cite>\n </span>\n</h3>\n\n<div ng-if="ctrl.mode === \'list\'">\n <div ng-if=ctrl.loading>\n <i class="fa fa-spinner fa-spin"></i>\n <em>Fetching history list…</em>\n </div>\n\n <div ng-if=!ctrl.loading>\n <div class=gf-form-group>\n <table class=filter-table>\n <thead>\n <tr>\n <th class=width-4></th>\n <th class=width-4>Version</th>\n <th class=width-14>Date</th>\n <th class=width-10>Updated By</th>\n <th>Notes</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr ng-repeat="revision in ctrl.revisions">\n <td class=filter-table__switch-cell bs-tooltip="!revision.checked && ctrl.canCompare ? \'You can only compare 2 versions at a time\' : \'\'" data-placement=right>\n <gf-form-switch switch-class=gf-form-switch--table-cell checked=revision.checked on-change=ctrl.revisionSelectionChanged() ng-disabled="!revision.checked && ctrl.canCompare">\n </gf-form-switch>\n </td>\n <td class=text-center>{{revision.version}}</td>\n <td>{{revision.createdDateString}}</td>\n <td>{{revision.createdBy}}</td>\n <td>{{revision.message}}</td>\n <td class=text-right>\n <a class="btn btn-inverse btn-small" ng-show="revision.version !== ctrl.dashboard.version" ng-click=ctrl.restore(revision.version)>\n <i class="fa fa-history"></i> Restore\n </a>\n <a class="btn btn-outline-disabled btn-small" ng-show="revision.version === ctrl.dashboard.version">\n <i class="fa fa-check"></i> Latest\n </a>\n </td>\n </tr>\n </tbody>\n </table>\n\n <div ng-if=ctrl.appending>\n <i class="fa fa-spinner fa-spin"></i>\n <em>Fetching more entries…</em>\n </div>\n\n <div class=gf-form-group>\n <div class=gf-form-button-row>\n <button type=button class="btn gf-form-button btn-inverse" ng-if="ctrl.revisions.length >= ctrl.limit" ng-click=ctrl.addToLog() ng-disabled=ctrl.isLastPage()>\n Show more versions\n </button>\n <button type=button class="btn btn-success" ng-if="ctrl.revisions.length > 1" ng-disabled=!ctrl.canCompare ng-click=ctrl.getDiff(ctrl.diff) bs-tooltip="ctrl.canCompare ? \'\' : \'Select 2 versions to start comparing\'" data-placement=bottom>\n <i class="fa fa-code-fork"></i> Compare versions\n </button>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<div ng-if="ctrl.mode === \'compare\'">\n <div ng-if=ctrl.loading>\n <i class="fa fa-spinner fa-spin"></i>\n <em>Fetching changes…</em>\n </div>\n\n <div ng-if=!ctrl.loading>\n <button type=button class="btn btn-danger pull-right" ng-click=ctrl.restore(ctrl.baseInfo.version) ng-if=ctrl.isNewLatest>\n <i class="fa fa-history"></i> Restore to version {{ctrl.baseInfo.version}}\n </button>\n <section>\n <p class="small muted">\n <strong>Version {{ctrl.newInfo.version}}</strong>
8 updated by\n <span>{{ctrl.newInfo.createdBy}} </span>\n <span>{{ctrl.newInfo.ageString}}</span>\n <span> - {{ctrl.newInfo.message}}</span>\n </p>\n <p class="small muted">\n <strong>Version {{ctrl.baseInfo.version}}</strong> updated by\n <span>{{ctrl.baseInfo.createdBy}} </span>\n <span>{{ctrl.baseInfo.ageString}}</span>\n <span> - {{ctrl.baseInfo.message}}</span>\n </p>\n </section>\n\n <div id=delta diff-delta>\n <div class=delta-basic compile=ctrl.delta.basic></div>\n </div>\n\n <div class=gf-form-button-row>\n <button class="btn btn-secondary" ng-click="ctrl.getDiff(\'json\')">View JSON Diff</button>\n </div>\n\n <div class=delta-html ng-show="ctrl.diff === \'json\'" compile=ctrl.delta.json></div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/dashboard/move_to_folder_modal/move_to_folder.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=modal-body>\n <div class=modal-header>\n <h2 class=modal-header-title>\n\t\t\t<i class="gicon gicon-folder-new"></i>\n <span class=p-l-1>Choose Dashboard Folder</span>\n </h2>\n\n <a class=modal-header-close ng-click=ctrl.dismiss();>\n <i class="fa fa-remove"></i>\n </a>\n </div>\n\n <form name=ctrl.saveForm ng-submit=ctrl.save() class="modal-content folder-modal" novalidate>\n <p>Move the {{ctrl.dashboards.length}} selected dashboards to the following folder:</p>\n\n <div class=p-t-2>\n <div class=gf-form>\n <folder-picker on-load=ctrl.onFolderChange($folder) on-change=ctrl.onFolderChange($folder) enter-folder-creation=ctrl.onEnterFolderCreation() exit-folder-creation=ctrl.onExitFolderCreation() enable-create-new=true label-class=width-7>\n </folder-picker>\n </div>\n </div>\n <div class="gf-form-button-row text-center">\n <button type=submit class="btn btn-success" ng-disabled="ctrl.saveForm.$invalid || !ctrl.isValidFolderSelection">Move</button>\n <a class=btn-text ng-click=ctrl.dismiss();>Cancel</a>\n </div>\n </form>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/dashboard/partials/create_folder.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=ctrl.navModel></page-header>\n\n<div class="page-container page-body" ng-cloak>\n\n\t<h3 class=page-sub-heading>New Dashboard Folder</h3>\n\n <form name=ctrl.saveForm ng-submit=ctrl.create() novalidate>\n\t\t<div class=gf-form-inline>\n\t\t\t<div class="gf-form gf-form--grow">\n\t\t\t\t<label class="gf-form-label width-10">Name</label>\n\t\t\t\t<input type=text class=gf-form-input ng-model=ctrl.title give-focus=true ng-change=ctrl.titleChanged() ng-model-options="{ debounce: 400 }" ng-class="{\'validation-error\': ctrl.nameExists || !ctrl.dash.title}">\n\t\t\t\t<label class="gf-form-label text-success" ng-if="ctrl.titleTouched && !ctrl.hasValidationError">\n\t\t\t\t\t<i class="fa fa-check"></i>\n\t\t\t\t</label>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=gf-form-inline ng-if=ctrl.hasValidationError>\n\t\t\t<div class="gf-form offset-width-10 gf-form--grow">\n\t\t\t\t<label class="gf-form-label text-warning gf-form-label--grow">\n\t\t\t\t\t<i class="fa fa-warning"></i>\n\t\t\t\t\t{{ctrl.validationError}}\n\t\t\t\t</label>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=gf-form-button-row>\n\t\t\t<button type=submit class="btn btn-success width-12" ng-disabled="!ctrl.titleTouched || ctrl.hasValidationError">\n\t\t\t\t<i class="fa fa-save"></i> Create\n\t\t\t</button>\n\t\t</div>\n\t</form>\n\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/dashboard/partials/dashboard_import.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=ctrl.navModel></page-header>\n\n<div class="page-container page-body" ng-cloak>\n <div ng-if="ctrl.step === 1">\n\n <form class=page-action-bar>\n <div class=page-action-bar__spacer></div>\n <dash-upload on-upload=ctrl.onUpload(dash)></dash-upload>\n </form>\n\n <h5 class=section-heading>Grafana.com Dashboard</h5>\n\n <div class=gf-form-group>\n <div class="gf-form gf-form--grow">\n <input type=text class="gf-form-input max-width-30" ng-model=ctrl.gnetUrl placeholder="Paste Grafana.com dashboard url or id" ng-blur=ctrl.checkGnetDashboard()>\n </div>\n <div class=gf-form ng-if=ctrl.gnetError>\n <label class="gf-form-label text-warning">\n <i class="fa fa-warning"></i>\n {{ctrl.gnetError}}\n </label>\n </div>\n </div>\n\n <h5 class=section-heading>Or paste JSON</h5>\n\n <div class=gf-form-group>\n <div class=gf-form>\n <textarea rows=10 data-share-panel-url="" class=gf-form-input ng-model=ctrl.jsonText></textarea>\n </div>\n <button type=button class="btn btn-secondary" ng-click=ctrl.loadJsonText()>\n <i class="fa fa-paste"></i>\n Load\n </button>
8\n <span ng-if=ctrl.parseError class="text-error p-l-1">\n <i class="fa fa-warning"></i>\n {{ctrl.parseError}}\n </span>\n </div>\n </div>\n\n <div ng-if="ctrl.step === 2">\n <div class=gf-form-group ng-if=ctrl.dash.gnetId>\n <h3 class=section-heading>\n Importing Dashboard from\n <a href=https://grafana.com/dashboards/{{ctrl.dash.gnetId}} class=external-link target=_blank>Grafana.com</a>\n </h3>\n\n <div class=gf-form>\n <label class="gf-form-label width-15">Published by</label>\n <label class="gf-form-label width-15">{{ctrl.gnetInfo.orgName}}</label>\n </div>\n <div class=gf-form>\n <label class="gf-form-label width-15">Updated on</label>\n <label class="gf-form-label width-15">{{ctrl.gnetInfo.updatedAt | date : \'yyyy-MM-dd HH:mm:ss\'}}</label>\n </div>\n </div>\n\n <h3 class=section-heading>\n Options\n </h3>\n\n <div class=gf-form-group>\n <div class=gf-form-inline>\n <div class="gf-form gf-form--grow">\n <label class="gf-form-label width-15">Name</label>\n <input type=text class=gf-form-input ng-model=ctrl.dash.title give-focus=true ng-change=ctrl.titleChanged() ng-class="{\'validation-error\': ctrl.nameExists || !ctrl.dash.title}">\n <label class="gf-form-label text-success" ng-if="ctrl.titleTouched && !ctrl.hasNameValidationError">\n <i class="fa fa-check"></i>\n </label>\n </div>\n </div>\n\n <div class=gf-form-inline ng-if=ctrl.hasNameValidationError>\n <div class="gf-form offset-width-15 gf-form--grow">\n <label class="gf-form-label text-warning gf-form-label--grow">\n <i class="fa fa-warning"></i>\n {{ctrl.nameValidationError}}\n </label>\n </div>\n </div>\n\n <div class=gf-form-inline>\n <div class="gf-form gf-form--grow">\n <folder-picker label-class=width-15 initial-folder-id=ctrl.folderId initial-title=ctrl.initialFolderTitle on-change=ctrl.onFolderChange($folder) on-load=ctrl.onFolderChange($folder) enter-folder-creation=ctrl.onEnterFolderCreation() exit-folder-creation=ctrl.onExitFolderCreation() enable-create-new=true>\n </folder-picker>\n </div>\n </div>\n\n <div class=gf-form-inline>\n <div class="gf-form gf-form--grow">\n <span class="gf-form-label width-15">\n Unique identifier (uid)\n <info-popover mode=right-normal>\n The unique identifier (uid) of a dashboard can be used for uniquely identify a dashboard between multiple Grafana installs.\n The uid allows having consistent URLâs for accessing dashboards so changing the title of a dashboard will not break any\n bookmarked links to that dashboard.\n </info-popover>\n </span>\n <input type=text class=gf-form-input disabled=disabled ng-model=ctrl.autoGenerateUidValue ng-if=ctrl.autoGenerateUid>\n <a class="btn btn-secondary gf-form-btn" href=# ng-click="ctrl.autoGenerateUid = false" ng-if=ctrl.autoGenerateUid>change</a>\n <input type=text class=gf-form-input maxlength=40 placeholder="optional, will be auto-generated if empty" ng-model=ctrl.dash.uid ng-change=ctrl.uidChanged() ng-if=!ctrl.autoGenerateUid>\n <label class="gf-form-label text-success" ng-if="!ctrl.autoGenerateUid && !ctrl.hasUidValidationError">\n <i class="fa fa-check"></i>\n </label>\n </div>\n </div>\n\n <div class=gf-form-inline ng-if=ctrl.hasUidValidationError>\n <div class="gf-form offset-width-15 gf-form--grow">\n <label class="gf-form-label text-warning gf-form-label--grow">\n <i class="fa fa-warning"></i>\n {{ctrl.uidValidationError}}\n </label>\n </div>\n </div>\n\n <div ng-repeat="input in ctrl.inputs">\n <div class=gf-form>\n <label class="gf-form-label width-15">\n {{input.label}}\n <info-popover mode=right-normal>\n {{input.info}}\n </info-popover>\n </label>\n \x3c!-- Data source input --\x3e\n <div class=gf-form-select-wrapper style=width:100% ng-if="input.type === \'datasource\'">\n <select class=gf-form-input ng-model=input.value ng-options="v.value as v.text for v in input.options" ng-change=ctrl.inputValueChanged()>\n <option value="" ng-hide=input.value>{{input.info}}</option>\n </select>\n </div>\n \x3c!-- Constant input --\x3e\n <input ng-if="input.type === \'constant\'" type=text class=gf-form-input ng-model=input.value placeholder={{input.default}} ng-change=ctrl.inputValueChanged()>\n <label class="gf-form-label text-success" ng-show=input.value>\n <i class="fa fa-check"></i>\n </label>\n </div>\n </div>\n </div>\n\n <div class=gf-form-button-row>\n <button type=button class="btn btn-success width-12" ng-click=ctrl.saveDashboard() ng-hide="ctrl.nameExists || ctrl.uidExists" ng-disabled=!ctrl.isValid()>\n <i class="fa fa-save"></i> Import\n </button>\n <button type=button class="btn btn-danger width-12" ng-click=ctrl.saveDashboard() ng-sh
8ow="ctrl.nameExists || ctrl.uidExists" ng-disabled=!ctrl.isValid()>\n <i class="fa fa-save"></i> Import (Overwrite)\n </button>\n <a class="btn btn-link" ng-click=ctrl.back()>Cancel</a>\n </div>\n\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/dashboard/partials/dashboard_list.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=ctrl.navModel></page-header>\n\n<div class="page-container page-body">\n <manage-dashboards/>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/dashboard/partials/folder_dashboards.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header ng-if=ctrl.navModel model=ctrl.navModel></page-header>\n\n<div class="page-container page-body">\n <manage-dashboards ng-if="ctrl.folderId && ctrl.uid" folder-id=ctrl.folderId folder-uid=ctrl.uid />\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/dashboard/partials/folder_permissions.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=ctrl.navModel></page-header>\n\n<div class="page-container page-body">\n <dashboard-permissions ng-if="ctrl.dashboard && ctrl.meta" dashboardid=ctrl.dashboard.id />\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/dashboard/partials/folder_settings.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=ctrl.navModel></page-header>\n\n<div class="page-container page-body">\n\t<h2 class=page-sub-heading>Folder Settings</h2>\n\n\t<div class="section gf-form-group">\n\t\t<form name=folderSettingsForm ng-submit=ctrl.save()>\n\t\t\t<div class=gf-form>\n\t\t\t\t<label class="gf-form-label width-7">Name</label>\n\t\t\t\t<input type=text class="gf-form-input width-30" ng-model=ctrl.title ng-change=ctrl.titleChanged()>\n\t\t\t</div>\n\t\t\t<div class=gf-form-button-row>\n\t\t\t\t<button type=submit class="btn btn-success" ng-disabled="!ctrl.canSave || !ctrl.hasChanged">\n\t\t\t\t\t<i class="fa fa-save"></i>Save\n\t\t\t\t</button>\n\t\t\t\t<button class="btn btn-danger" ng-click=ctrl.delete($event) ng-disabled=!ctrl.canSave>\n\t\t\t\t\t<i class="fa fa-trash"></i>\n\t\t\t\t\tDelete\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</form>\n\t</div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/dashboard/partials/inspector.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=modal-body ng-controller=InspectCtrl ng-init=init()>\n\t<div class=modal-header>\n\t\t<h2 class=modal-header-title>\n\t\t\t<i class="fa fa-info-circle"></i>\n\t\t\t<span class=p-l-1>Inspector</span>\n\t\t</h2>\n\n\t\t<ul class=gf-tabs>\n\t\t\t<li class=gf-tabs-item ng-repeat="tab in [\'Panel Description\', \'Request\', \'Response\', \'JS Error\']">\n\t\t\t\t<a class=gf-tabs-link ng-click="editor.index = $index" ng-class="{active: editor.index === $index}">\n\t\t\t\t\t{{::tab}}\n\t\t\t\t</a>\n\t\t\t</li>\n\t\t</ul>\n\n\t\t<a class=modal-header-close ng-click=dismiss();>\n\t\t\t<i class="fa fa-remove"></i>\n\t\t</a>\n\t</div>\n\n\t<div class=modal-content>\n\t\t<div ng-if="editor.index == 0" ng-bind-html=panelInfoHtml>\n\t\t</div>\n\n\t\t<div ng-if="editor.index == 1">\n\t\t\t<h5 class=section-heading>Request details</h5>\n\t\t\t<table class="filter-table gf-form-group">\n\t\t\t\t<tr>\n\t\t\t\t\t<td>Url</td>\n\t\t\t\t\t<td>{{inspector.error.config.url}}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>Method</td>\n\t\t\t\t\t<td>{{inspector.error.config.method}}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr ng-repeat="(key, value) in inspector.error.config.headers">\n\t\t\t\t\t<td>\n\t\t\t\t\t\t{{key}}\n\t\t\t\t\t</td>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t{{value}}\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\n\t\t\t<h5 class=section-heading>Request parameters</h5>\n\t\t\t<table class=filter-table>\n\t\t\t\t<tr ng-repeat="param in request_parameters">\n\t\t\t\t\t<td>\n\t\t\t\t\t\t{{param.key}}\n\t\t\t\t\t</td>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t{{param.value}}\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t</div>\n\n\t\t<div ng-if="editor.index == 2">
8\n\t\t\t<h5 ng-show=message>{{message}}</h5>\n \t\t\t<pre class=small>\n{{response}}\n\t\t\t</pre>\n\t\t</div>\n\n\t\t<div ng-if="editor.index == 3">\n\n\t\t\t<label>Message:</label>\n<pre>\n{{message}}\n</pre>\n\n\t\t\t<label>Stack trace:</label>\n<pre>\n{{stack_trace}}\n</pre>\n\n\t\t</div>\n\n\t</div>\n</div>\n\n')}]),e.exports=n},function(e,t){var n="public/app/features/dashboard/partials/row_options.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=modal-body>\n\t<div class=modal-header>\n\t\t<h2 class=modal-header-title>\n\t\t\t<i class="fa fa-copy"></i>\n\t\t\t<span class=p-l-1>Row Options</span>\n\t\t</h2>\n\n\t\t<a class=modal-header-close ng-click=ctrl.dismiss();>\n\t\t\t<i class="fa fa-remove"></i>\n\t\t</a>\n\t</div>\n\n\t<form name=ctrl.saveForm ng-submit=ctrl.save() class="modal-content text-center" novalidate>\n\t\t<div class=section>\n\t\t\t<div class=gf-form>\n\t\t\t\t<span class="gf-form-label width-7">Title</span>\n\t\t\t\t<input type=text class="gf-form-input max-width-13" ng-model=ctrl.row.title>\n\t\t\t</div>\n\t\t\t<div class=gf-form>\n\t\t\t\t<span class="gf-form-label width-7">Repeat for</span>\n\t\t\t\t<dash-repeat-option panel=ctrl.row></dash-repeat-option>\n\t\t\t</div>\n\n\t\t\t<div class=gf-form-button-row>\n\t\t\t\t<button type=submit class="btn btn-success" ng-click=ctrl.update()>Update</button>\n\t\t\t\t<button type=button class="btn btn-inverse" ng-click=ctrl.dismiss()>Cancel</button>\n\t\t\t</div>\n\t\t</div>\n\t</form>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/dashboard/partials/shareModal.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=modal-body ng-controller=ShareModalCtrl ng-init=init()>\n\n\t<div class=modal-header>\n\t\t<h2 class=modal-header-title>\n\t\t\t<i class="fa fa-share-square-o"></i>\n\t\t\t<span class=p-l-1>{{modalTitle}}</span>\n\t\t</h2>\n\n\t\t<ul class=gf-tabs>\n\t\t\t<li class=gf-tabs-item ng-repeat="tab in tabs">\n\t\t\t\t<a class=gf-tabs-link ng-click="editor.index = $index" ng-class="{active: editor.index === $index}">\n\t\t\t\t\t{{::tab.title}}\n\t\t\t\t</a>\n\t\t\t</li>\n\t\t</ul>\n\n\t\t<a class=modal-header-close ng-click=dismiss();>\n\t\t\t<i class="fa fa-remove"></i>\n\t\t</a>\n\t</div>\n\n\t<div class=modal-content ng-repeat="tab in tabs" ng-if="editor.index == $index">\n\t\t<div ng-include src=tab.src class=share-modal-body></div>\n\t</div>\n\n</div>\n\n<script type=text/ng-template id=shareEmbed.html>\n\t<div class="share-modal-header">\n\t\t<div class="share-modal-big-icon">\n\t\t\t<i class="fa fa-code"></i>\n\t\t</div>\n\t\t<div class="share-modal-content">\n\t\t\t<p class="share-modal-info-text">\n\t\t\t\tThe html code below can be pasted and included in another web page. Unless anonymous access\n\t\t\t\tis enabled the user viewing that page need to be signed into grafana for the graph to load.\n\t\t\t</p>\n\n\t\t\t<div ng-include src="\'shareLinkOptions.html\'"></div>\n\n\t\t\t<div class="gf-form-group gf-form--grow">\n\t\t\t\t<div class="gf-form">\n\t\t\t\t\t<textarea rows="5" data-share-panel-url class="gf-form-input" ng-model=\'iframeHtml\'></textarea>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n<\/script>\n\n<script type=text/ng-template id=shareExport.html>\n\t<dash-export-modal dismiss="dismiss()"></dash-export-modal>\n<\/script>\n\n<script type=text/ng-template id=shareExperiment.html>\n\t<dash-export-experiment-modal dismiss="dismiss()"></dash-export-experiment-modal>\n<\/script>\n\n<script type=text/ng-template id=shareLinkOptions.html>\n\t<div class="gf-form-group">\n\t\t<gf-form-switch class="gf-form"\n\t\t\tlabel="Current time range" label-class="width-12" switch-class="max-width-6"\n\t\t\tchecked="options.forCurrent" on-change="buildUrl()">\n\t\t</gf-form-switch>\n\t\t<gf-form-switch class="gf-form"\n\t\t\tlabel="Template variables" label-class="width-12" switch-class="max-width-6"\n\t\t\tchecked="options.includeTemplateVars" on-change="buildUrl()">\n\t\t</gf-form-switch>\n\t\t<div class="gf-form">\n\t\t\t<span class="gf-form-label width-12">Theme</span>\n\t\t\t<div class="gf-form-select-wrapper width-10">\n\t\t\t\t<select class="gf-form-input" ng-model="options.theme" ng-options="f as f for f in [\'current\', \'dar
8k\', \'light\']" ng-change="buildUrl()"></select>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n<\/script>\n\n<script type=text/ng-template id=shareLink.html>\n\t<div class="share-modal-header">\n\t\t<div class="share-modal-big-icon">\n\t\t\t<i class="fa fa-link"></i>\n\t\t</div>\n\t\t<div class="share-modal-content">\n\t\t\t<p class="share-modal-info-text">\n\t\t\t\tCreate a direct link to this dashboard or panel, customized with the options below.\n\t\t\t</p>\n\t\t\t<div ng-include src="\'shareLinkOptions.html\'"></div>\n\t\t\t<div>\n\t\t\t\t<div class="gf-form-group">\n\t\t\t\t\t<div class="gf-form-inline">\n\t\t\t\t\t\t<div class="gf-form gf-form--grow">\n\t\t\t\t\t\t\t<input type="text" data-share-panel-url class="gf-form-input" ng-model="shareUrl"></input>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="gf-form">\n\t\t\t\t\t\t\t<button class="btn btn-inverse" clipboard-button="getShareUrl()"><i class="fa fa-clipboard"></i> Copy</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class="gf-form" ng-show="modeSharePanel">\n\t\t\t\t<a href="{{imageUrl}}" target="_blank"><i class="fa fa-camera"></i> Direct link rendered image</a>\n\t\t\t</div>\n\t\t</div>\n<\/script>\n\n<script type=text/ng-template id=shareSnapshot.html>\n\t<div class="ng-cloak" ng-cloak ng-controller="ShareSnapshotCtrl" ng-init="init()">\n\t\t<div class="share-modal-header">\n\t\t\t<div class="share-modal-big-icon">\n\t\t\t\t<i ng-if="loading" class="fa fa-spinner fa-spin"></i>\n\t\t\t\t<i ng-if="!loading" class="icon-gf icon-gf-snapshot"></i>\n\t\t\t</div>\n <div class="share-modal-content">\n <div ng-if="step === 1">\n <p class="share-modal-info-text">\n A snapshot is an instant way to share an interactive dashboard publicly.\n When created, we <strong>strip sensitive data</strong> like queries (metric, template and annotation) and panel links,\n leaving only the visible metric data and series names embedded into your dashboard.\n </p>\n <p class="share-modal-info-text">\n Keep in mind, your <strong>snapshot can be viewed by anyone</strong> that has the link and can reach the URL.\n Share wisely.\n </p>\n </div>\n\n\t\t\t\t<div class="share-modal-header" ng-if="step === 3">\n\t\t\t\t\t<p class="share-modal-info-text">\n\t\t\t\t\t\tThe snapshot has now been deleted. If it you have already accessed it once, It might take up to an hour before it is removed from\n\t\t\t\t\t\tbrowser caches or CDN caches.\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\n\t\t\t\t<div class="gf-form-group share-modal-options">\n\t\t\t\t\t<div class="gf-form" ng-if="step === 1">\n\t\t\t\t\t\t<span class="gf-form-label width-12">Snapshot name</span>\n\t\t\t\t\t\t<input type="text" ng-model="snapshot.name" class="gf-form-input max-width-15" >\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="gf-form" ng-if="step === 1">\n\t\t\t\t\t\t<span class="gf-form-label width-12">Expire</span>\n\t\t\t\t\t\t<div class="gf-form-select-wrapper max-width-15">\n\t\t\t\t\t\t\t<select class="gf-form-input" ng-model="snapshot.expires" ng-options="f.value as f.text for f in expireOptions"></select>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class="gf-form" ng-if="step === 2" style="margin-top: 40px">\n\t\t\t\t\t\t<div class="gf-form-row">\n\t\t\t\t\t\t\t<a href="{{snapshotUrl}}" class="large share-modal-link" target="_blank">\n\t\t\t\t\t\t\t\t<i class="fa fa-external-link-square"></i>\n\t\t\t\t\t\t\t\t{{snapshotUrl}}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t<br>\n\t\t\t\t\t\t\t<button class="btn btn-inverse" clipboard-button="getSnapshotUrl()"><i class="fa fa-clipboard"></i> Copy Link</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div ng-if="step === 1">\n\t\t\t\t\t<p class="share-modal-info-text">\n\t\t\t\t\t\tYou may need to configure the timeout value if it takes a long time to collect your dashboard\'s metrics.\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\n\t\t\t\t<div class="gf-form-group share-modal-options">\n\t\t\t\t\t<div class="gf-form" ng-if="step === 1">\n\t\t\t\t\t\t<span class="gf-form-label width-12">Timeout (seconds)</span>\n\t\t\t\t\t\t<input type="number" ng-model="snapshot.timeoutSeconds" class="gf-form-input max-width-15" >\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div ng-if="step === 1" class="gf-form-button-row">\n\t\t\t\t\t<button class="btn gf-form-btn width-10 btn-success" ng-click="createSnapshot()" ng-disabled="loading">\n\t\t\t\t\t\t<i class="fa fa-save"></i>\n\t\t\t\t\t\tCreate Snapshot\n\t\t\t\t\t</button>\n\t\t\t\t\t\x3c!--\n\t\t\t\t\t<button class="btn gf-form-btn width-16 btn-secondary" ng-if="externalEnabled" ng-click="createSnapshot(true)" ng-disabled="loading">\n\t\t\t\t\t\t<i class="fa fa-cloud-upload"></i>\n\t\t\t\t\t\t{{sharingButtonText}}\n\t\t\t\t\t</button>\n\t\t\t\t\t--\x3e\n\t\t\t\t\t<a class="btn btn-link" ng-click="dismiss()">Cancel</a>\n\t\t\t\t</div>\n\n\t\t\t\t<div class="pull-right" ng-if="step === 2" style="padding: 5px">\n\t\t\t\t\tDid you make a mistake? <a class="pointer" ng-click="deleteSnapshot()" target="_blank">delete snapshot.</a>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\n</div>\n<\/script>\n')}]),e.exports=n},function(e,t){var n="public/app/features/dashboard/settings/sett
8ings.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<aside class=dashboard-settings__aside>\n\t<h2 class=dashboard-settings__aside-header>\n\t\t<i class="fa fa-cog"></i>\n\t\tSettings\n\t</h2>\n\n\t<a href={{::section.url}} class=dashboard-settings__nav-item ng-class="{active: ctrl.viewId === section.id}" ng-repeat="section in ctrl.sections">\n <i class={{::section.icon}}></i>\n\t\t{{::section.title}}\n\t</a>\n\n\t<div class=dashboard-settings__aside-actions>\n <button class="btn btn-success" ng-click=ctrl.saveDashboard() ng-show=ctrl.canSave>\n\t\t\t<i class="fa fa-save"></i> Save\n\t\t</button>\n\t\t<button class="btn btn-inverse" ng-click=ctrl.openSaveAsModal() ng-show=ctrl.canSaveAs>\n\t\t\t<i class="fa fa-copy"></i>\n\t\t\tSave As...\n\t\t</button>\n\t\t<button class="btn btn-danger" ng-click=ctrl.deleteDashboard() ng-show=ctrl.canDelete>\n\t\t\t<i class="fa fa-trash"></i>\n\t\t\tDelete\n\t\t</button>\n\t</div>\n</aside>\n\n<div class=dashboard-settings__content ng-if="ctrl.viewId === \'settings\'">\n\t<h3 class=dashboard-settings__header>\n\t\tGeneral\n\t</h3>\n\n\t<div class=gf-form-group>\n\t\t<div class=gf-form>\n\t\t\t<label class="gf-form-label width-7">Name</label>\n\t\t\t<input type=text class="gf-form-input width-30" ng-model=ctrl.dashboard.title>\n\t\t</div>\n\t\t<div class=gf-form>\n\t\t\t<label class="gf-form-label width-7">Description</label>\n\t\t\t<input type=text class="gf-form-input width-30" ng-model=ctrl.dashboard.description>\n\t\t</div>\n\t\t<div class=gf-form>\n\t\t\t<label class="gf-form-label width-7">\n\t\t\t\tTags\n\t\t\t\t<info-popover mode=right-normal>Press enter to add a tag</info-popover>\n\t\t\t</label>\n\t\t\t<bootstrap-tagsinput ng-model=ctrl.dashboard.tags tagclass="label label-tag" placeholder="add tags">\n\t\t\t</bootstrap-tagsinput>\n\t\t</div>\n\t\t<folder-picker initial-title=ctrl.dashboard.meta.folderTitle initial-folder-id=ctrl.dashboard.meta.folderId on-change=ctrl.onFolderChange($folder) enable-create-new=true is-valid-selection=true label-class=width-7>\n\t\t</folder-picker>\n\t\t<gf-form-switch class=gf-form label=Editable tooltip="Uncheck, then save and reload to disable all dashboard editing" checked=ctrl.dashboard.editable label-class=width-7>\n\t\t</gf-form-switch>\n\t</div>\n\n\t<h5 class=section-heading>Panel Options</h5>\n\t<div class=gf-form>\n\t\t<label class="gf-form-label width-11">\n\t\t\tGraph Tooltip\n\t\t\t<info-popover mode=right-normal>\n\t\t\t\tCycle between options using Shortcut: CTRL+O or CMD+O\n\t\t\t</info-popover>\n\t\t</label>\n\t\t<div class=gf-form-select-wrapper>\n\t\t\t<select ng-model=ctrl.dashboard.graphTooltip class=gf-form-input ng-options="f.value as f.text for f in [{value: 0, text: \'Default\'}, {value: 1, text: \'Shared crosshair\'},{value: 2, text: \'Shared Tooltip\'}]"></select>\n\t\t</div>\n\t</div>\n</div>\n\n<div class=dashboard-settings__content ng-if="ctrl.viewId === \'annotations\'" ng-include="\'public/app/features/annotations/partials/editor.html\'">\n</div>\n\n<div class=dashboard-settings__content ng-if="ctrl.viewId === \'templating\'" ng-include="\'public/app/features/templating/partials/editor.html\'">\n</div>\n\n<div class=dashboard-settings__content ng-if="ctrl.viewId === \'links\'">\n\t<dash-links-editor dashboard=ctrl.dashboard></dash-links-editor>\n</div>\n\n<div class=dashboard-settings__content ng-if="ctrl.viewId === \'versions\'">\n\t<gf-dashboard-history dashboard=dashboard></gf-dashboard-history>\n</div>\n\n<div class=dashboard-settings__content ng-if="ctrl.viewId === \'dashboard_json\'">\n\t<h3 class=dashboard-settings__header>JSON Model</h3>\n <div class=dashboard-settings__subheader>\n The JSON Model below is data structure that defines the dashboard. Including settings, panel settings & layout,\n queries etc.\n </div>\n\n\t<div class=gf-form>\n\t\t<code-editor content=ctrl.json data-mode=json data-max-lines=30></code-editor>\n\t</div>\n\n <div class=gf-form-button-row>\n <button class="btn btn-success" ng-click=ctrl.saveDashboardJson() ng-show=ctrl.canSave>\n <i class="fa fa-save"></i> Save Changes\n </button>\n </div>\n</div>\n\n<div class=dashboard-settings__content ng-if="ctrl.viewId === \'permissions\'">\n <dashboard-permissions ng-if="ctrl.dashboard && !ctrl.hasUnsavedFolderChange" dashboardid=ctrl.dashboard.id backendsrv=ctrl.backendSrv folder=ctrl.getFolder() />\n <div ng-if=ctrl.hasUnsavedFolderChange>\n <h5>You have changed folder, please save to view permissions.</h5>\n </div>\n</div>\n\n<div class=dashboard-settings__content ng-if="ctrl.viewId === \'404\'">\n <h3 class=dashboard-settings__header>Settings view not found</h3>\n\n <div>\n <h5>The settings page could not be found or you do not have permission to access it<
8/h5>\n </div>\n</div>\n\n<div class=dashboard-settings__content ng-if="ctrl.viewId === \'make_editable\'">\n <h3 class=dashboard-settings__header>Make Editable</h3>\n\n <button class="btn btn-success" ng-click=ctrl.makeEditable()>\n Make Editable\n </button>\n</div>\n\n')}]),e.exports=n},function(e,t){var n="public/app/features/dashboard/submenu/submenu.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=submenu-controls>\n\n\n\n <div ng-repeat="variable in ctrl.variables" ng-hide="variable.hide === 2" class="submenu-item gf-form-inline">\n <div class=gf-form>\n <label class="gf-form-label template-variable" ng-hide="variable.hide === 1">\n {{variable.label || variable.name}}\n\n <info-popover ng-if="variable.name == \'resolution\'" mode=right-normal>\n Pick a custom setting to force a higher graph resolution. \n The graphs will be more accurate but might load slower. \n </info-popover>\n\n </label>\n\n <value-select-dropdown ng-if="variable.type !== \'adhoc\'" variable=variable on-updated=ctrl.variableUpdated(variable)></value-select-dropdown>\n </div>\n <ad-hoc-filters ng-if="variable.type === \'adhoc\'" variable=variable></ad-hoc-filters>\n </div>\n\n <div ng-if="ctrl.dashboard.annotations.list.length > 0">\n <div ng-repeat="annotation in ctrl.dashboard.annotations.list" ng-hide=annotation.hide class=submenu-item ng-class="{\'annotation-disabled\': !annotation.enable}">\n\t\t\t<gf-form-switch class=gf-form label={{annotation.name}} checked=annotation.enable on-change=ctrl.annotationStateChanged()></gf-form-switch>\n </div>\n </div>\n\n <div class="gf-form gf-form--grow">\n </div>\n\n <div ng-if="ctrl.dashboard.links.length > 0">\n <dash-links-container links=ctrl.dashboard.links class=gf-form-inline></dash-links-container>\n </div>\n\n <div class=clearfix></div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/dashboard/timepicker/settings.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=editor-row>\n\t<h5 class=section-heading>Time Options</h5>\n\n <div class=gf-form-group>\n\t\t<div class=gf-form>\n\t\t\t<label class="gf-form-label width-10">Timezone</label>\n\t\t\t<div class=gf-form-select-wrapper>\n\t\t\t\t<select ng-model=ctrl.dashboard.timezone class=gf-form-input ng-options="f.value as f.text for f in [{value: \'\', text: \'Default\'}, {value: \'browser\', text: \'Local browser time\'},{value: \'utc\', text: \'UTC\'}]" ng-change=timezoneChanged()></select>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=gf-form>\n\t\t\t<span class="gf-form-label width-10">Auto-refresh</span>\n\t\t\t<input type=text class="gf-form-input max-width-25" ng-model=ctrl.panel.refresh_intervals array-join>\n\t\t</div>\n\t\t<div class=gf-form>\n\t\t\t<span class="gf-form-label width-10">Now delay now-</span>\n\t\t\t<input type=text class="gf-form-input max-width-25" ng-model=ctrl.panel.nowDelay placeholder=0m valid-time-span bs-tooltip="\'Enter 1m to ignore the last minute (because it can contain incomplete metrics)\'" data-placement=right>\n\t\t</div>\n\n\t\t<gf-form-switch class=gf-form label="Hide time picker" checked=ctrl.panel.hidden label-class=width-10></gf-form-switch>\n\t</div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/dashboard/timepicker/timepicker.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class="navbar-buttons navbar-buttons--zoom">\n\t<button class="btn navbar-button navbar-button--tight" ng-click=ctrl.move(-1)>\n\t\t<i class="fa fa-chevron-left"></i>\n\t</button>\n\n\t<button class="btn navbar-button" bs-tooltip="\'Time range zoom out <br> CTRL+Z\'" data-placement=bottom ng-click=ctrl.zoom(2)>\n\t\t<i class="fa fa-search-minus"></i>\n\t</button>\n\n\t<button class="btn navbar-button navbar-button--tight" ng-click=ctrl.move(1)>\n\t\t<i class="fa fa-chevron-right"></i>\n\t</button>\n</div>\n\n<div class=navbar-buttons>\n\n <button style=cursor:default;color:#e3e3e3;background-image:none;background-color:#262628 data-placement=bottom class="btn navbar-button gf-timepicker-nav-btn">\n\t\t<i class="fa fa-clock-o"></i>\n\t\t<span ng-bind=ctrl.rangeString></span>\n\t\t<span ng-show=ctrl.isUtc class=gf-timepicker-utc>UTC</span>\n\t\t<span ng-show=ctrl.dashboard.refresh class=text-warning> Refresh every {{ctrl.dashboard.refresh}}</span>\n\t</button>\n\n \x3c!--\n\t<button class="btn navbar-button navbar-button--refresh" ng-click="ctrl.timeSrv.refreshDashboard()">\n\t\t<i class="fa fa-refresh"></i>\n </button>\n --\x3e\n</div>\n\n<div ng-if=ctrl.isOpen class=gf-timepicker-dropdown>\n <form name=timeForm class=gf-timepicker-absolute-section>\n <h3 class=section-heading>Custom range</h3>\n\n <label class=small>From:</label>\n <div class=gf-form-inline>\n <div class="gf-form max-width-28">\n <input type=text class="gf-form-input input-large" ng-model=ctrl.editTimeRaw.from input-datetime>\n </div>\n <div class=gf-form>\n <button class="btn gf-form-btn btn-primary" type=button ng-click="openFromPicker=!openFromPicker">\n <i class="fa fa-calendar"></i>\n </button>\n </div>\n </div>\n\n <div ng-if=openFromPicker>\n <datepicker ng-model=ctrl.absolute.fromJs class=gf-timepicker-component show-weeks=false starting-day=ctrl.firstDayOfWeek ng-change=ctrl.absoluteFromChanged()></datepicker>\n </div>\n\n\n <label class=small>To:</label>\n <div class=gf-form-inline>\n <div class="gf-form max-width-28">\n <input type=text class="gf-form-input input-large" ng-model=ctrl.editTimeRaw.to input-datetime>\n </div>\n <div class=gf-form>\n <button class="btn gf-form-btn btn-primary" type=button ng-click="openToPicker=!openToPicker">\n <i class="fa fa-calendar"></i>\n </button>\n </div>\n </div>\n\n <div ng-if=openToPicker>\n <datepicker ng-model=ctrl.absolute.toJs class=gf-timepicker-component show-weeks=false starting-day=ctrl.firstDayOfWeek ng-change=ctrl.absoluteToChanged()></datepicker>\n </div>\n\n <label class=small>Refreshing every:</label>\n <div class=gf-form-inline>\n <div class="gf-form max-width-28">\n <select ng-model=ctrl.refresh.value class="gf-form-input input-medium" ng-options="f.value as f.text for f in ctrl.refresh.options"></select>\n </div>\n <div class=gf-form>\n <button type=submit class="btn gf-form-btn btn-secondary" ng-click=ctrl.applyCustom(); ng-disabled=!timeForm.$valid>Apply</button>\n </div>\n </div>\n </form>\n\n <div class=gf-timepicker-relative-section>\n <h3 class=section-heading>Quick ranges</h3>\n <ul ng-repeat="group in ctrl.timeOptions">\n <li bindonce ng-repeat="option in group" ng-class="{active: option.active}">\n <a ng-click=ctrl.setRelativeFilter(option) bo-text=option.display></a>\n </li>\n </ul>\n </div>\n</div>\n\n')}]),e.exports=n},function(e,t){var n="public/app/features/dashlinks/editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<h3 class=dashboard-settings__header>\n <a ng-click=ctrl.backToList()>Dashboard Links</a>\n <span ng-show="ctrl.mode === \'new\'">> New</span>\n <span ng-show="ctrl.mode === \'edit\'">> Edit</span>\n</h3>\n\n<div ng-if="ctrl.mode == \'list\'">\n <div ng-if="ctrl.dashboard.links.length === 0">\n <div class=empty-list-cta>\n <div class=empty-list-cta__title>\n There are no dashboard links added yet\n </div>\n <a ng-click=ctrl.setupNew() class="empty-list-cta__button btn btn-xlarge btn-success">\n <i class="gicon gicon-add-link"></i>\n Add Dashboard Link\n </a>\n <div class=grafana-info-box>\n <h5>What are Dashboard Links?</h5>\n <p>\n\t\t\t\t\tDashboard Links allow you to place links to other dashboards and web sites directly in below the dashboard header.\n </p>\n </div>\n </div>\n </div>\n\n <div ng-if="ctrl.dashboard.links.length > 0">\n <div class=page-action-bar>\n <div class=page-action-bar__spacer></div>\n <a type=button class="btn btn-success" ng-click=ctrl.setupNew()>\n <i class="fa fa-plus"></i>
8 New</a>\n </div>\n <table class="filter-table filter-table--hover">\n <thead>\n <tr>\n <th>Type</th>\n <th>Info</th>\n <th colspan=3></th>\n </tr>\n </thead>\n <tbody>\n <tr ng-repeat="link in ctrl.dashboard.links">\n <td class=pointer ng-click=ctrl.editLink(link)>\n <i class="fa fa-fw fa-external-link"></i>\n {{link.type}}\n </td>\n <td>\n <div ng-if=link.title>\n {{link.title}}\n </div>\n <div ng-if="!link.title && link.url">\n {{link.url}}\n </div>\n <span ng-if="!link.title && link.tags" ng-repeat="tag in link.tags" tag-color-from-name=tag class="label label-tag" style=margin-right:6px>\n {{tag}}\n </span>\n </td>\n <td style=width:1%>\n <i ng-click="ctrl.moveLink($index, -1)" ng-hide=$first class="pointer fa fa-arrow-up"></i>\n </td>\n <td style=width:1%>\n <i ng-click="ctrl.moveLink($index, 1)" ng-hide=$last class="pointer fa fa-arrow-down"></i>\n </td>\n <td style=width:1%>\n <a ng-click=ctrl.deleteLink($index) class="btn btn-danger btn-mini" ng-hide=annotation.builtIn>\n <i class="fa fa-remove"></i>\n </a>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</div>\n\n<div ng-if="ctrl.mode == \'edit\' || ctrl.mode == \'new\'">\n <div class=gf-form-group>\n <div class=gf-form-group>\n <div class=gf-form>\n <span class="gf-form-label width-8">Type</span>\n <div class="gf-form-select-wrapper width-10">\n <select class=gf-form-input ng-model=ctrl.link.type ng-options="f for f in [\'dashboards\',\'link\']"></select>\n </div>\n </div>\n\n <div class=gf-form ng-show="ctrl.link.type === \'dashboards\'">\n <span class="gf-form-label width-8">With tags</span>\n <bootstrap-tagsinput ng-model=ctrl.link.tags tagclass="label label-tag" placeholder="add tags" style=margin-right:.25rem></bootstrap-tagsinput>\n </div>\n\n <gf-form-switch ng-show="ctrl.link.type === \'dashboards\'" class=gf-form label="As dropdown" checked=ctrl.link.asDropdown switch-class=max-width-4 label-class=width-8></gf-form-switch>\n <div class=gf-form ng-show="ctrl.link.type === \'dashboards\' && ctrl.link.asDropdown">\n <span class="gf-form-label width-8">Title</span>\n <input type=text ng-model=ctrl.link.title class="gf-form-input max-width-10" ng-model-onblur>\n </div>\n <div ng-show="ctrl.link.type === \'link\'">\n <div class=gf-form>\n <li class="gf-form-label width-8">Url</li>\n <input type=text ng-model=ctrl.link.url class="gf-form-input width-20" ng-model-onblur>\n </div>\n\n <div class=gf-form>\n <span class="gf-form-label width-8">Title</span>\n <input type=text ng-model=ctrl.link.title class="gf-form-input width-20" ng-model-onblur>\n </div>\n\n <div class=gf-form>\n <span class="gf-form-label width-8">Tooltip</span>\n <input type=text ng-model=ctrl.link.tooltip class="gf-form-input width-20" placeholder="Open dashboard" ng-model-onblur>\n </div>\n\n <div class=gf-form>\n <span class="gf-form-label width-8">Icon</span>\n <div class="gf-form-select-wrapper width-20">\n <select class=gf-form-input ng-model=ctrl.link.icon ng-options="k as k for (k, v) in ctrl.iconMap"></select>\n </div>\n </div>\n </div>\n </div>\n\n <div class=gf-form-group>\n <h5 class=section-heading>Include</h5>\n <div>\n <gf-form-switch class=gf-form label="Time range" checked=ctrl.link.keepTime switch-class=max-width-6 label-class=width-9></gf-form-switch>\n <gf-form-switch class=gf-form label="Variable values" checked=ctrl.link.includeVars switch-class=max-width-6 label-class=width-9></gf-form-switch>\n <gf-form-switch class=gf-form label="Open in new tab" checked=ctrl.link.targetBlank switch-class=max-width-6 label-class=width-9></gf-form-switch>\n </div>\n </div>\n </div>\n <button class="btn btn-success" ng-if="ctrl.mode == \'new\'" ng-click=ctrl.addLink()>\n Add\n </button>\n <button class="btn btn-success" ng-if="ctrl.mode == \'edit\'" ng-click=ctrl.saveLink()>\n Update\n </button>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/experiments/partials/edit_experiment.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=ctrl.navModel></page-header>\n\n<div class="page-container page-body">\n\n <h3 class=page-sub-heading>{{ ctrl.navModel.main.subTitle }}</h3>\n\n <form name=ctrl.saveForm ng-submit=ctrl.submit() novalidate>\n\t\t<div class=gf-form>\n\t\t\t<div class="gf-form gf-form--grow">\n\t\t\t\t<label class="gf-form-label width-7">
8Title</label>\n\t\t\t\t<input ng-disabled=ctrl.inputDisabled type=text class=gf-form-input ng-model=ctrl.title give-focus=true ng-change=ctrl.titleChanged()>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=gf-form>\n\t\t\t<div class="gf-form gf-form--grow">\n\t\t\t\t<label class="gf-form-label width-7">Start time (s)</label>\n\t\t\t\t<input ng-disabled=ctrl.inputDisabled type=text class=gf-form-input ng-model=ctrl.startTimeSeconds give-focus=true ng-change=ctrl.timesChanged()>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=gf-form>\n\t\t\t<div class="gf-form gf-form--grow">\n\t\t\t\t<label class="gf-form-label width-7">End time (s)</label>\n\t\t\t\t<input ng-disabled=ctrl.inputDisabled type=text class=gf-form-input ng-model=ctrl.endTimeSeconds give-focus=true ng-change=ctrl.timesChanged()>\n\t\t\t</div>\n </div>\n\n\t\t<div class=gf-form>\n\t\t\t<div class="gf-form gf-form--grow">\n\t\t\t\t<label class="gf-form-label width-7">Notes</label>\n\t\t\t\t<textarea ng-disabled=ctrl.inputDisabled rows=5 class=gf-form-input ng-model=ctrl.notes>\n\t\t\t</textarea></div>\n\t\t</div>\n\n\t\t<div class=gf-form>\n\t\t\t<label class="gf-form-label width-7">\n\t\t\t\tTags\n\t\t\t\t<info-popover mode=right-normal>Press enter to add a tag</info-popover>\n\t\t\t</label>\n\t\t\t<bootstrap-tagsinput ng-model=ctrl.tags tagclass="label label-tag" placeholder="add tags">\n\t\t\t</bootstrap-tagsinput>\n\t\t</div>\n\n\t\t<br>\n\n\t\t<div class=gf-form-inline ng-if=ctrl.hasValidationError>\n\t\t\t<div class="gf-form gf-form--grow">\n\t\t\t\t<label class="gf-form-label text-warning gf-form-label--grow">\n\t\t\t\t\t<i class="fa fa-warning"></i>\n\t\t\t\t\t{{ctrl.validationError}}\n\t\t\t\t</label>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=gf-form-button-row>\n\t\t\t<button type=submit class="btn btn-success width-12" ng-disabled=ctrl.hasValidationError>\n\t\t\t\t<i class="fa fa-save"></i> {{ ctrl.submitLabel }}\n\t\t\t</button>\n\t\t\t<button type=button class="btn btn-danger width-12" ng-click=ctrl.delete() ng-if=ctrl.showDelete>\n\t\t\t\t<i class="fa fa-trash"></i>\n\t\t\t\tDelete\n\t\t\t</button>\n\t\t\t<button class="btn btn-inverse width-12" ng-click=ctrl.cancel($event)>\n\t\t\t\t<i class="fa fa-cancel"></i>\n\t\t\t\tCancel\n\t\t\t</button>\n\t\t</div>\n\t</form>\n\n\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/experiments/partials/edit_folder.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=ctrl.navModel></page-header>\n\n<div class="page-container page-body" ng-cloak>\n\n\t<h3 class=page-sub-heading>New Experiment Folder</h3>\n\n <form name=ctrl.saveForm ng-submit=ctrl.create() novalidate>\n\t\t<div class=gf-form-inline>\n\t\t\t<div class="gf-form gf-form--grow">\n\t\t\t\t<label class="gf-form-label width-10">Name</label>\n\t\t\t\t<input ng-disabled=ctrl.inputDisabled type=text class=gf-form-input ng-model=ctrl.title give-focus=true ng-change=ctrl.titleChanged()>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=gf-form-inline ng-if=ctrl.hasValidationError>\n\t\t\t<div class="gf-form offset-width-10 gf-form--grow">\n\t\t\t\t<label class="gf-form-label text-warning gf-form-label--grow">\n\t\t\t\t\t<i class="fa fa-warning"></i>\n\t\t\t\t\t{{ctrl.validationError}}\n\t\t\t\t</label>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=gf-form-button-row>\n\t\t\t<button type=submit class="btn btn-success width-12" ng-disabled=ctrl.hasValidationError>\n\t\t\t\t<i class="fa fa-save"></i> {{ ctrl.submitLabel }}\n\t\t\t</button>\n\t\t\t<button type=button class="btn btn-danger width-12" ng-click=ctrl.delete() ng-if=ctrl.showDelete>\n\t\t\t\t<i class="fa fa-trash"></i>\n\t\t\t\tDelete\n\t\t\t</button>\n\t\t</div>\n\t</form>\n\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/org/partials/apikeyModal.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=modal-body>\n\t<div class=modal-header>\n\t\t<h2 class=modal-header-title>\n\t\t\t<i class="fa fa-key"></i>\n\t\t\t<span class=p-l-1>API Key Created</span>\n\t\t</h2>\n\n\t\t<a class=modal-header-close ng-click=dismiss();>\n\t\t\t<i class="fa fa-remove"></i>\n\t\t</a>\n\t</div>\n\n\t<div class=modal-content>\n\n\t\t<div class=gf-form-group>\n\t\t\t<div class=gf-form>\n\t\t\t\t<span class=gf-form-label>Key</span>\n\t\t\t\t<span class=gf-form-label>{{key}}</span>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=grafana-info-box style=border:0>\n\t\t\tYou will only be able to view this key here once! It is not stored in this form. So be sure to copy it now.\n\t\t\t<br>\n\t\t\t<br>\n\t\t\tYou can authenticate request using the Authorization HTTP header, example:\n\t\t\t<br>\n\t\t\t<br>\n\t\t\t<pre class=small>\ncurl -H "Authorization: Bearer {{key}}" {{rootPath}}/api/dashboards/home\n\t\t\t</pre>\n\t\t</div>\n\n\t</div>\n\n</div>\n\n')}]),e.exports=n},function(e,t){var n="public/app/features/org/partials/change_password.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=navModel></page-header>\n\n<div class="page-container page-body">
8\n\t<h2 class=page-sub-heading>\n\t\tChange your password\n\t</h2>\n\n\t<div ng-if="ldapEnabled || authProxyEnabled">\n\t\tYou cannot change password when ldap or auth proxy authentication is enabled.\n\t</div>\n\n\t<form name=userForm class=gf-form-group ng-hide="ldapEnabled || authProxyEnabled">\n\t\t<div class=gf-form>\n\t\t\t<span class="gf-form-label width-10">Old Password</span>\n\t\t\t<input class="gf-form-input max-width-21" type=password required ng-model=command.oldPassword>\n\t\t</div>\n\n\t\t<div class=gf-form>\n\t\t\t<span class="gf-form-label width-10">New Password</span>\n\t\t\t<input class="gf-form-input max-width-21" type=password required ng-minlength=4 ng-model=command.newPassword>\n\t\t</div>\n\n\t\t<div class=gf-form>\n\t\t\t<span class="gf-form-label width-10">Confirm Password</span>\n\t\t\t<input class="gf-form-input max-width-21" type=password required ng-minlength=4 ng-model=command.confirmNew>\n\t\t</div>\n\n\t\t<div class=gf-form-button-row>\n\t\t\t<button type=submit class="btn btn-success" ng-click=changePassword()>Change Password</button>\n\t\t\t<a class=btn-text href=profile>Cancel</a>\n\t\t</div>\n\t</form>\n\n</div>\n\n')}]),e.exports=n},function(e,t){var n="public/app/features/org/partials/create_team.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=ctrl.navModel></page-header>\n\n<div class="page-container page-body" ng-cloak>\n\t<h3 class=page-sub-heading>New Team</h3>\n\n\t<form name=ctrl.saveForm class=gf-form-group ng-submit=ctrl.create()>\n\t\t<div class="gf-form max-width-30">\n\t\t\t<span class="gf-form-label width-10">Name</span>\n\t\t\t<input type=text required ng-model=ctrl.name class="gf-form-input max-width-22" give-focus=true>\n\t\t</div>\n\t\t<div class="gf-form max-width-30">\n\t\t\t<span class="gf-form-label width-10">\n\t\t\t\tEmail\n\t\t\t\t<info-popover mode=right-normal>\n\t\t\t\t\tThis is optional and is primarily used for allowing custom team avatars.\n\t\t\t\t</info-popover>\n\t\t\t</span>\n\t\t\t<input class="gf-form-input max-width-22" type=email ng-model=ctrl.email [email protected]>\n\t\t</div>\n\t\t<div class=gf-form-button-row>\n\t\t\t<button type=submit class="btn btn-success width-12">\n\t\t\t\t<i class="fa fa-save"></i> Create\n\t\t\t</button>\n\t\t</div>\n\t</form>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/org/partials/invite.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=ctrl.navModel></page-header>\n\n<div class="page-container page-body" ng-cloak>\n\n\t<h2 class=page-sub-heading>Invite User</h2>\n\n\t<div class=p-b-2>\n\t\tSend invite or add existing Grafana user to the organization\n\t\t<span class=highlight-word>{{contextSrv.user.orgName}}</span>\n\t</div>\n\n\t<form name=ctrl.inviteForm>\n\t\t<div class=gf-form-group>\n\t\t\t<div class="gf-form max-width-30">\n\t\t\t\t<span class="gf-form-label width-10">Email or Username</span>\n\t\t\t\t<input type=text ng-model=ctrl.invite.loginOrEmail required class=gf-form-input [email protected]>\n\t\t\t</div>\n\t\t\t<div class="gf-form max-width-30">\n\t\t\t\t<span class="gf-form-label width-10">Name</span>\n\t\t\t\t<input type=text ng-model=ctrl.invite.name class=gf-form-input placeholder="name (optional)">\n\t\t\t</div>\n\t\t\t<div class="gf-form max-width-30">\n <span class="gf-form-label width-10">Role</span>\n\t\t\t\t<select ng-model=ctrl.invite.role class=gf-form-input ng-options="f for f in [\'Editor\', \'Admin\']">\n\t\t\t\t</select>\n\t\t\t</div>\n\n\t\t\t<gf-form-switch class=gf-form label="Send invite email" checked=ctrl.invite.sendEmail label-class=width-10></gf-form-switch>\n\n\t\t\t<div class=gf-form-button-row>\n\t\t\t\t<button type=submit class="btn btn-success" ng-click=ctrl.sendInvite();>Invite</button>\n\t\t\t\t<a class="btn btn-inverse" href=org/users>Back</a>\n\t\t\t</div>\n\t</div></form>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/org/partials/newOrg.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=navModel></page-header>\n\n<div class="page-container page-body" ng-form=playlistEditForm>
8\n\t<h2 class=page-sub-heading>\n\t\tNew Organization\n\t</h2>\n\n\t<p class=playlist-description>Each organization contains their own dashboards, data sources and configuration, and cannot be shared between orgs. While users may belong to more than one, multiple organization are most frequently used in multi-tenant deployments. </p>\n\n\t<form>\n\t\t<div class=gf-form-group>\n\t\t\t<div class=gf-form>\n\t\t\t\t<span class="gf-form-label width-10">Org. name</span>\n\t\t\t\t<input type=text ng-model=newOrg.name required class="gf-form-input max-width-21" placeholder="organization name">\n\t\t\t</div>\n\t\t\t<br>\n\t\t\t<div class=gf-form-buttons-row>\n\t\t\t\t<button type=submit class="btn btn-success" ng-click=createOrg()>Create</button>\n\t\t\t</div>\n\t\t</div>\n\t</form>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/org/partials/orgApiKeys.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=navModel></page-header>\n\n<div class="page-container page-body">\n\n\t<h3 class=page-heading>Add new</h3>\n\n\t<form name=addTokenForm class=gf-form-group>\n\t\t<div class=gf-form-inline>\n\t\t\t<div class="gf-form max-width-21">\n\t\t\t\t<span class=gf-form-label>Key name</span>\n\t\t\t\t<input type=text class=gf-form-input ng-model=token.name placeholder=Name>\n\t\t\t</div>\n\t\t\t<div class=gf-form>\n\t\t\t\t<span class=gf-form-label>Role</span>\n <span class=gf-form-select-wrapper>\n <select class="gf-form-input gf-size-auto" ng-model=token.role ng-options="r for r in roleTypes"></select>\n </span>\n\t\t\t</div>\n\t\t\t<div class=gf-form>\n\t\t\t\t<button class="btn gf-form-btn btn-success" ng-click=addToken()>Add</button>\n\t\t\t</div>\n\t\t</div>\n\t</form>\n\n\t<h3 class=page-heading>Existing Keys</h3>\n\t<table class=filter-table>\n\t\t<thead>\n\t\t\t<tr>\n\t\t\t\t<th>Name</th>\n\t\t\t\t<th>Key</th>\n\t\t\t\t<th>Role</th>\n\t\t\t\t<th style=width:34px></th>\n\t\t\t</tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr ng-repeat="t in tokens">\n\t\t\t\t<td>{{t.name}}</td>\n\t\t\t\t<td>\n\t\t\t\t\t<a title="Copy to clipboard" ng-click=copy(t.key) class="btn btn-mini">\n\t\t\t\t\t\t<i class="fa fa-clipboard"></i>\n\t\t\t\t\t</a>\n\t\t\t\t\t{{t.key}}\n\t\t\t\t</td>\n\t\t\t\t<td>{{t.role}}</td>\n\t\t\t\t<td>\n\t\t\t\t\t<a title="Delete key" ng-click=removeToken(t.id) class="btn btn-danger btn-mini">\n\t\t\t\t\t\t<i class="fa fa-remove"></i>\n\t\t\t\t\t</a>\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t</tbody>\n\t</table>\n</div>\n\n\n\n')}]),e.exports=n},function(e,t){var n="public/app/features/org/partials/orgDetails.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=navModel></page-header>\n\n<div class="page-container page-body">\n <h3 class=page-sub-heading>Organization profile</h3>\n\n <form name=orgForm class=gf-form-group>\n <div class=gf-form-inline>\n <div class="gf-form max-width-28">\n <span class=gf-form-label>Organization name</span>\n <input class=gf-form-input type=text required ng-model=org.name>\n </div>\n </div>\n\n <div class=gf-form-button-row>\n <button type=submit class="btn btn-success" ng-click=update()>Save</button>\n </div>\n </form>\n <prefs-control mode=org></prefs-control>\n</div>\n\n\n')}]),e.exports=n},function(e,t){var n="public/app/features/org/partials/orgUsers.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=ctrl.navModel></page-header>\n\n<div class="page-container page-body">\n <div class=page-action-bar>\n <label class="gf-form gf-form--grow gf-form--has-input-icon">\n <input type=text class="gf-form-input width-20" ng-model=ctrl.searchQuery ng-change=ctrl.onQueryUpdated() placeholder="Filter by username or email"/>\n <i class="gf-form-input-icon fa fa-search"></i>\n </label>\n\n <div class=page-action-bar__spacer></div>\n\n <button class="btn btn-inverse" ng-show=ctrl.pendingInvites.length ng-click="ctrl.showInvites = true">\n Pending Invites ({{ctrl.pendingInvites.length}})\n </button>\n\n <a class="btn btn-success" href=org/users/invite ng-show=ctrl.canInvite>\n <i class="fa fa-plus"></i>
8\n <span>Invite</span>\n </a>\n\n <a class="btn btn-success" ng-href={{ctrl.externalUserMngLinkUrl}} target=_blank ng-if=ctrl.externalUserMngLinkUrl>\n <i class="fa fa-external-link-square"></i>\n {{ctrl.externalUserMngLinkName}}\n </a>\n </div>\n\n <div class=grafana-info-box ng-if=ctrl.externalUserMngInfo>\n <span ng-bind-html=ctrl.externalUserMngInfo></span>\n </div>\n\n <div ng-hide=ctrl.showInvites>\n <table class="filter-table form-inline">\n <thead>\n <tr>\n <th></th>\n <th>Login</th>\n <th>Email</th>\n <th>\n Seen\n <tip>Time since user was seen using Grafana</tip>\n </th>\n <th>Role</th>\n <th style=width:34px></th>\n </tr>\n </thead>\n <tr ng-repeat="user in ctrl.users">\n <td class="width-4 text-center">\n <img class=filter-table__avatar ng-src={{user.avatarUrl}}>\n </td>\n <td>{{user.login}}</td>\n <td><span class=ellipsis>{{user.email}}</span></td>\n <td>{{user.lastSeenAtAge}}</td>\n <td>\n <div class="gf-form-select-wrapper width-12">\n <select type=text ng-model=user.role class=gf-form-input ng-options="f for f in [\'Editor\', \'Admin\']" ng-change=ctrl.updateOrgUser(user)>\n </select>\n </div>\n </td>\n <td>\n <a ng-click=ctrl.removeUser(user) class="btn btn-danger btn-mini">\n <i class="fa fa-remove"></i>\n </a>\n </td>\n </tr>\n </table>\n </div>\n\n <div ng-if=ctrl.showInvites>\n <table class="filter-table form-inline">\n <thead>\n <tr>\n <th>Email</th>\n <th>Name</th>\n <th></th>\n <th style=width:34px></th>\n </tr>\n </thead>\n <tr ng-repeat="invite in ctrl.pendingInvites">\n <td>{{invite.email}}</td>\n <td>{{invite.name}}</td>\n <td class=text-right>\n <button class="btn btn-inverse btn-mini" clipboard-button=ctrl.getInviteUrl(invite) ng-click=ctrl.copyInviteToClipboard($event)>\n <i class="fa fa-clipboard"></i> Copy Invite\n </button>\n \n </td>\n <td>\n <button class="btn btn-danger btn-mini" ng-click="ctrl.revokeInvite(invite, $event)">\n <i class="fa fa-remove"></i>\n </button>\n </td>\n </tr>\n </table>\n </div>\n</div>\n\n')}]),e.exports=n},function(e,t){var n="public/app/features/org/partials/profile.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=ctrl.navModel></page-header>\n\n<div class="page-container page-body">\n <h3 class=page-sub-heading>User Profile</h3>\n\n\t<form name=ctrl.userForm class=gf-form-group>\n\n\t\t<div class="gf-form max-width-30">\n\t\t\t<span class="gf-form-label width-8">Name</span>\n\t\t\t<input class="gf-form-input max-width-22" type=text required ng-model=ctrl.user.name>\n\t\t</div>\n\t\t<div class="gf-form max-width-30">\n\t\t\t<span class="gf-form-label width-8">Email</span>\n\t\t\t<input class="gf-form-input max-width-22" type=email ng-readonly=ctrl.readonlyLoginFields required ng-model=ctrl.user.email>\n <i ng-if=ctrl.readonlyLoginFields class="fa fa-lock gf-form-icon--right-absolute" bs-tooltip="\'Login Details Locked - managed in another system.\'"></i>\n </div>\n\t\t<div class="gf-form max-width-30">\n\t\t\t<span class="gf-form-label width-8">Username</span>\n <input class="gf-form-input max-width-22" type=text ng-readonly=ctrl.readonlyLoginFields required ng-model=ctrl.user.login>\n <i ng-if=ctrl.readonlyLoginFields class="fa fa-lock gf-form-icon--right-absolute" bs-tooltip="\'Login Details Locked - managed in another system.\'"></i>\n </div>\n\t\t<div class=gf-form-button-row>\n\t\t\t<button type=submit class="btn btn-success" ng-click=ctrl.update()>Save</button>\n\t\t</div>\n\t</form>\n\n\t<prefs-control mode=user></prefs-control>\n\n\t<h3 class=page-heading ng-show=ctrl.showOrgsList>Organizations</h3>\n <div class=gf-form-group ng-show=ctrl.showOrgsList>\n\t\t<table class="filter-table form-inline">\n\t\t\t<thead>\n\t\t\t\t<tr>\n\t\t\t\t\t<th>
8Name</th>\n\t\t\t\t\t<th>Role</th>\n\t\t\t\t\t<th></th>\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t\t<tbody>\n\t\t\t\t<tr ng-repeat="org in ctrl.orgs">\n\t\t\t\t\t<td>{{org.name}}</td>\n\t\t\t\t\t<td>{{org.role}}</td>\n\t\t\t\t\t<td class=text-right>\n\t\t\t\t\t\t<span class="btn btn-primary btn-mini" ng-show="org.orgId === contextSrv.user.orgId">\n\t\t\t\t\t\t\tCurrent\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<a ng-click=ctrl.setUsingOrg(org) class="btn btn-inverse btn-mini" ng-show="org.orgId !== contextSrv.user.orgId">\n\t\t\t\t\t\t\tSelect\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</tbody>\n\t\t</table>\n\t</div>\n\n</div>')}]),e.exports=n},function(e,t){var n="public/app/features/org/partials/select_org.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=navModel></page-header>\n\n<div class="page-container page-body">\n\n\t<div class=signup>\n\t\t<div class=login-form>\n\n\t\t\t<div class=modal-tagline>\n\t\t\t\tYou have been added to another Organization due to an open invitation!\n\n\t\t\t\tPlease select which organization you want to <br>\n\t\t\t\tuse right now (you can change this later at any time).\n\t\t\t</div>\n\n\t\t\t<div style="display:inline-block;width:400px;margin:30px 0">\n\t\t\t\t<div ng-repeat="org in orgs">\n\t\t\t\t\t<a ng-click=setUsingOrg(org) class="btn btn-success">\n\t\t\t\t\t\t{{org.name}} ({{org.role}})\n\t\t\t\t\t</a>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n\n\n')}]),e.exports=n},function(e,t){var n="public/app/features/org/partials/team_details.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=ctrl.navModel></page-header>\n\n<div class="page-container page-body">\n\t<h3 class=page-sub-heading>Team Details</h3>\n\n <form name=teamDetailsForm class=gf-form-group>\n <div class="gf-form max-width-30">
8\n <span class="gf-form-label width-10">Name</span>\n <input type=text required ng-model=ctrl.team.name class="gf-form-input max-width-22">\n\t\t</div>\n\t\t<div class="gf-form max-width-30">\n\t\t\t<span class="gf-form-label width-10">\n\t\t\t\tEmail\n\t\t\t\t<info-popover mode=right-normal>\n\t\t\t\t\t\tThis is optional and is primarily used for allowing custom team avatars.\n\t\t\t\t</info-popover>\n\t\t\t</span>\n\t\t\t<input class="gf-form-input max-width-22" type=email ng-model=ctrl.team.email [email protected]>\n\t\t</div>\n\n <div class=gf-form-button-row>\n <button type=submit class="btn btn-success" ng-click=ctrl.update()>Update</button>\n </div>\n </form>\n\n <div class=gf-form-group>\n\n <h3 class=page-heading>Team Members</h3>\n\t\t<form name=ctrl.addMemberForm class=gf-form-group>\n <div class=gf-form>\n <span class="gf-form-label width-10">Add member</span>\n\t\t\t\t\x3c!--\n\t\t\t\tOld picker\n\t\t\t\t<user-picker user-picked="ctrl.userPicked($user)"></user-picker>\n\t\t\t\t--\x3e\n\t\t\t\t<select-user-picker class=width-7 handlepicked=ctrl.userPicked backendsrv=ctrl.backendSrv></select-user-picker>\n </div>\n </form>\n\n <table class=filter-table ng-show="ctrl.teamMembers.length > 0">\n\t\t\t<thead>\n\t\t\t\t<tr>\n\t\t\t\t\t<th></th>\n\t\t\t\t\t<th>Username</th>\n\t\t\t\t\t<th>Email</th>\n\t\t\t\t\t<th></th>\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t\t<tr ng-repeat="member in ctrl.teamMembers">\n\t\t\t\t<td class="width-4 text-center link-td">\n\t\t\t\t\t<img class=filter-table__avatar ng-src={{member.avatarUrl}}>\n\t\t\t\t</td>\n\t\t\t\t<td>{{member.login}}</td>\n\t\t\t\t<td>{{member.email}}</td>\n\t\t\t\t<td style=width:1%>\n\t\t\t\t\t<a ng-click=ctrl.removeTeamMember(member) class="btn btn-danger btn-mini">\n\t\t\t\t\t\t<i class="fa fa-remove"></i>\n\t\t\t\t\t</a>\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t</table>\n\t\t<div>\n\t\t\t<em class=muted ng-hide="ctrl.teamMembers.length > 0">\n\t\t\t\tThis team has no members yet.\n\t\t\t</em>\n\t\t</div>\n\n</div></div>')}]),e.exports=n},function(e,t){var n="public/app/features/org/partials/teams.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=ctrl.navModel></page-header>\n\n<div class="page-container page-body">\n\t<div class=page-action-bar>\n <label class="gf-form gf-form--grow gf-form--has-input-icon">\n <input type=text class="gf-form-input max-width-20" placeholder="Find Team by name" tabindex=1 ng-model=ctrl.query ng-model-options="{ debounce: 500 }" spellcheck=false ng-change=ctrl.get() />\n <i class="gf-form-input-icon fa fa-search"></i>\n </label>\n <div class=page-action-bar__spacer></div>\n\n <a class="btn btn-success" href=org/teams/new>\n <i class="fa fa-plus"></i>\n\t\t\tAdd Team\n </a>\n </div>\n\n <div class=admin-list-table>\n <table class="filter-table filter-table--hover form-inline" ng-show="ctrl.teams.length > 0">\n <thead>\n <tr>\n <th></th>\n <th>Name</th>\n <th>Email</th>\n <th>Members</th>\n <th style=width:1%></th>\n </tr>\n </thead>\n <tbody>\n <tr ng-repeat="team in ctrl.teams">\n <td class="width-4 text-center link-td">\n <a href=org/teams/edit/{{team.id}}>\n <img class=filter-table__avatar ng-src={{team.avatarUrl}}>\n </a>\n </td>\n <td class=link-td>\n <a href=org/teams/edit/{{team.id}}>{{team.name}}</a>\n </td>\n <td class=link-td>\n <a href=org/teams/edit/{{team.id}}>{{team.email}}</a>\n </td>\n <td class=link-td>\n <a href=org/teams/edit/{{team.id}}>{{team.memberCount}}</a>\n </td>\n <td class=text-right>\n <a ng-click=ctrl.deleteTeam(team) class="btn btn-danger btn-small">\n <i class="fa fa-remove"></i>\n </a>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <div class=admin-list-paging ng-if=ctrl.showPaging>\n <ol>\n <li ng-repeat="page in ctrl.pages">\n <button class="btn btn-small" ng-class="{\'btn-secondary\': page.current, \'btn-inverse\': !page.current}" ng-click=ctrl.navigateToPage(page)>{{page.page}}</button>\n </li>\n </ol>\n </div>\n\n <em class=muted ng-hide="ctrl.teams.length > 0">
8\n No Teams found.\n </em>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/panel/partials/metrics_tab.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=gf-form-group>\n <div class=gf-form-inline>\n <div class=gf-form>\n\t\t\t<label class="gf-form-label gf-query-ds-label">\n\t\t\t\t<i class="icon-gf icon-gf-datasources"></i>\n\t\t\t</label>\n <label class=gf-form-label>Data Source</label>\n\n <gf-form-dropdown model=ctrl.panelDsValue css-class=gf-size-auto lookup-text=true get-options=ctrl.getOptions(true) on-change=ctrl.datasourceChanged($option)>\n </gf-form-dropdown>\n\t\t</div>\n\n\t\t<div class="gf-form gf-form--grow">\n\t\t\t<label class="gf-form-label gf-form-label--grow"></label>\n\t\t</div>\n\t\t<div class=gf-form ng-if=ctrl.queryOptions>\n\t\t\t<a class=gf-form-label ng-click=ctrl.toggleOptions()>\n\t\t\t\t<i class="fa fa-fw fa-caret-right" ng-hide=ctrl.optionsOpen></i><i class="fa fa-fw fa-caret-down" ng-show=ctrl.optionsOpen></i>Options\n\t\t\t</a>\n\t\t</div>\n\t\t<div class=gf-form ng-if=ctrl.hasQueryHelp>\n\t\t\t<button class=gf-form-label ng-click=ctrl.toggleHelp()>\n\t\t\t\t<i class="fa fa-fw fa-caret-right" ng-hide=ctrl.helpOpen></i><i class="fa fa-fw fa-caret-down" ng-show=ctrl.helpOpen></i>Help\n\t\t\t</button>\n\t\t</div>\n\t\t<div class=gf-form>\n\t\t\t<button class=gf-form-label ng-click=ctrl.toggleQueryTroubleshooter() bs-tooltip="\'Display query request & response\'">\n\t\t\t\t<i class="fa fa-fw fa-caret-right" ng-hide=ctrl.queryTroubleshooterOpen></i><i class="fa fa-fw fa-caret-down" ng-show=ctrl.queryTroubleshooterOpen></i>Query Inspector\n\t\t\t</button>\n\t\t</div>\n\t</div>\n\n\t<div>\n\t\t<div ng-if=ctrl.optionsOpen>\n\t\t\t<div class="gf-form gf-form--flex-end" ng-if=ctrl.queryOptions.minInterval>\n\t\t\t\t<label class=gf-form-label>Min time interval</label>\n\t\t\t\t<input type=text class="gf-form-input width-6" placeholder={{ctrl.panelCtrl.interval}} ng-model=ctrl.panel.interval spellcheck=false ng-model-onblur ng-change=ctrl.panelCtrl.refresh() />\n\t\t\t\t<info-popover mode=right-absolute>\n\t\t\t\t\tA lower limit for the auto group by time interval. Recommended to be set to write frequency,\n\t\t\t\t\tfor example <code>1m</code> if your data is written every minute. Access auto interval via variable <code>$__interval</code> for time range\n\t\t\t\t\tstring and <code>$__interval_ms</code> for numeric variable that can be used in math expressions.\n\t\t\t\t</info-popover>\n\t\t\t</div>\n\t\t\t<div class="gf-form gf-form--flex-end" ng-if=ctrl.queryOptions.cacheTimeout>\n\t\t\t\t<label class="gf-form-label width-9">Cache timeout</label>\n\t\t\t\t<input type=text class="gf-form-input width-6" placeholder=60 ng-model=ctrl.panel.cacheTimeout ng-model-onblur ng-change=ctrl.panelCtrl.refresh() spellcheck=false />\n\t\t\t\t<info-popover mode=right-absolute>\n\t\t\t\t\tIf your time series store has a query cache this option can override the default\n\t\t\t\t\tcache timeout. Specify a numeric value in seconds.\n\t\t\t\t</info-popover>\n\t\t\t</div>\n\t\t\t<div class="gf-form gf-form--flex-end" ng-if=ctrl.queryOptions.maxDataPoints>\n\t\t\t\t<label class="gf-form-label width-9">Max data points</label>\n\t\t\t\t<input type=text class="gf-form-input width-6" placeholder=auto ng-model-onblur ng-change=ctrl.panelCtrl.refresh() ng-model=ctrl.panel.maxDataPoints spellcheck=false />\n\t\t\t\t<info-popover mode=right-absolute>\n\t\t\t\t\tThe maximum data points the query should return. For graphs this\n\t\t\t\t\tis automatically set to one data point per pixel.\n\t\t\t\t</info-popover>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=grafana-info-box ng-if=ctrl.helpOpen>\n\t\t\t<div class=markdown-html ng-bind-html=ctrl.helpHtml></div>\n\t\t\t<a class=grafana-info-box__close ng-click=ctrl.toggleHelp()>\n\t\t\t\t<i class="fa fa-chevron-up"></i>\n\t\t\t</a>\n\t\t</div>\n\n\t\t<query-troubleshooter panel-ctrl=ctrl.panelCtrl is-open=ctrl.queryTroubleshooterOpen></query-troubleshooter>\n\t</div>\n</div>\n\n<div class="query-editor-rows gf-form-group" ng-if=ctrl.datasourceInstance>\n\t<div ng-repeat="target in ctrl.panel.targets" ng-class="{\'gf-form-disabled\': target.hide}">\n\t\t<rebuild-on-change property="ctrl.panel.datasource || target.datasource" show-null=true>\n\t\t\t<plugin-component type=query-ctrl>\n\t\t\t</plugin-component>\n\t\t</rebuild-on-change>\n\t</div>\n\n\t<div class=gf-form-query>\n\t\t<div class="gf-form gf-form-query-letter-cell">\n\t\t\t<label class=gf-form-label>\n\t\t\t\t<span class=gf-form-query-letter-cell-carret>\n\t\t\t\t\t<i class="fa fa-caret-down"></i>\n\t\t\t\t</span>\n\t\t\t\t<span class=gf-form-query-letter-cell-letter>{{ctrl.panelCtrl.nextRefId}}</span>\n\t\t\t</label>\n\t\t\t<button class="btn btn-secondary gf-form-btn" ng-click=ctrl.addQuery() ng-hide=ctrl.datasourceInstance.meta.mixed>\n\t\t\t\tAdd Query\n\t\t\t</button>\n\t\t\t<div class=dropdown ng-if=ctrl.datasourceInstance.meta.mixed>\n\t\t\t\t<gf-form-dropdown model=ctrl.addQueryDropdown get-options=ctrl.getOptions(false) on-change=ctrl.addMixedQuery($option)>\n\t\t\t\t</gf-form-dropdown>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/panel/partials/panelTime.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=gf-form-group>\n\t<div class=gf-form>\n\t\t<span class=gf-form-label>\n\t\t\t<i class="fa fa-clock-o"></i>\n\t\t</span>\n\n\t\t<span class="gf-form-label width-12">Override relative time</span>\n\t\t<span class="gf-form-label width-6">Last</span>\n\n\t\t<input type=text class="gf-form-input max-width-8" placeholder=1h empty-to-null ng-model=ctrl.panel.timeFrom valid-time-span ng-change=ctrl.refresh() ng-model-onblur>\n\t</div>\n\n\t<div class=gf-form>\n\t\t<span class=gf-form-label>\n\t\t\t<i class="fa fa-clock-o"></i>\n\t\t</span>\n\t\t<span class="gf-form-label width-12">Add time shift</span>\n\t\t<span class="gf-form-label width-6">Amount</span>\n\t\t<input type=text class="gf-form-input max-width-8" placeholder=1h empty-to-null ng-model=ctrl.panel.timeShift valid-time-span ng-change=ctrl.refresh() ng-model-onblur>\n\t</div>\n\n\t<div class=gf-form-inline>\n\t\t<div class=gf-form>\n\t\t\t<span class=gf-form-label>\n\t\t\t\t<i class="fa fa-clock-o"></i>\n\t\t\t</span>\n\t\t</div>
8\n\t\t<gf-form-switch class="gf-form max-width-30" label="Hide time override info" label-class=width-12 checked=ctrl.panel.hideTimeOverride switch-class=max-width-6 on-change=ctrl.refresh()>\n\t\t</gf-form-switch>\n\t</div>\n</div>\n\n\n')}]),e.exports=n},function(e,t){var n="public/app/features/panel/partials/query_editor_row.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'\n<div class=gf-form-query>\n\t<div class="gf-form gf-form-query-letter-cell">\n <label class=gf-form-label>\n <a class=pointer tabindex=1 ng-click=ctrl.toggleCollapse()>\n <span ng-class="{muted: !ctrl.canCollapse}" class=gf-form-query-letter-cell-carret>\n <i class="fa fa-caret-down" ng-hide=ctrl.collapsed></i>\n <i class="fa fa-caret-right" ng-show=ctrl.collapsed></i>\n </span>\n <span class=gf-form-query-letter-cell-letter>{{ctrl.target.refId}}</span>\n <em class=gf-form-query-letter-cell-ds ng-show=ctrl.target.datasource>({{ctrl.target.datasource}})</em>\n </a>\n\t\t</label>\n </div>\n\n\t<div class="gf-form-query-content gf-form-query-content--collapsed" ng-if=ctrl.collapsed>\n\t\t<div class=gf-form>\n\t\t\t<label class="gf-form-label pointer gf-form-label--grow" ng-click=ctrl.toggleCollapse()>\n\t\t\t\t{{ctrl.collapsedText}}\n\t\t\t</label>\n\t\t</div>\n\t</div>\n\n\t<div ng-transclude class=gf-form-query-content ng-if=!ctrl.collapsed>\n\t</div>\n\n\t<div class=gf-form>\n\t\t<label class="gf-form-label dropdown">\n\t\t\t<a class="pointer dropdown-toggle" data-toggle=dropdown tabindex=1>\n\t\t\t\t<i class="fa fa-bars"></i>\n\t\t\t</a>\n\t\t\t<ul class="dropdown-menu pull-right" role=menu>\n\t\t\t\t<li role=menuitem ng-if=ctrl.hasTextEditMode>\n\t\t\t\t\t<a tabindex=1 ng-click=ctrl.toggleEditorMode()>Toggle Edit Mode</a>\n\t\t\t\t</li>\n\t\t\t\t<li role=menuitem>\n\t\t\t\t\t<a tabindex=1 ng-click=ctrl.duplicateQuery()>Duplicate</a>\n\t\t\t\t</li>\n\t\t\t\t<li role=menuitem>\n\t\t\t\t\t<a tabindex=1 ng-click=ctrl.moveQuery(-1)>Move up</a>\n\t\t\t\t</li>\n\t\t\t\t<li role=menuitem>\n\t\t\t\t\t<a tabindex=1 ng-click=ctrl.moveQuery(1)>Move down</a>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</label>\n <label class=gf-form-label>\n\t\t\t<a ng-click=ctrl.toggleHideQuery() role=menuitem>\n\t\t\t\t<i class="fa fa-eye"></i>\n\t\t\t</a>\n\t\t</label>\n\t\t<label class=gf-form-label>\n\t\t\t<a class=pointer tabindex=1 ng-click=ctrl.removeQuery(ctrl.target)>\n\t\t\t\t<i class="fa fa-trash"></i>\n\t\t\t</a>\n\t\t</label>\n\t</div>\n</div>\n\n')}]),e.exports=n},function(e,t){var n="public/app/features/panel/partials/soloPanel.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class="panel panel--solo" ng-if=panel style=width:100%>\n\t<plugin-component type=panel>\n\t</plugin-component>\n</div>\n<div class=clearfix></div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/panellinks/module.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=editor-row>\n\t<h5 class=section-heading>\n\t\tDrilldown / detail link<tip>These links appear in the dropdown menu in the panel menu. </tip></h5>\n\t\n\n\t<div class=gf-form-group ng-repeat="link in panel.links">\n\t\t<div class=section>\n\t\t\t<div class="gf-form max-width-25">\n\t\t\t\t<span class="gf-form-label width-7">Type</span>\n\t\t\t\t<div class="gf-form-select-wrapper gf-form--grow">\n\t\t\t\t\t<select class=gf-form-input ng-model=link.type ng-options="f for f in [\'dashboard\',\'absolute\']"></select>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class="gf-form max-width-25">\n\t\t\t\t<span class="gf-form-label width-7" ng-show="link.type === \'dashboard\'">Dashboard</span>\n\t\t\t\t<input ng-show="link.type === \'dashboard\'" type=text ng-model=link.dashboard bs-typeahead=searchDashboards class=gf-form-input ng-blur=dashboardChanged(link)>\n\n\t\t\t\t<span class="gf-form-label width-7" ng-show="link.type === \'absolute\'">Url</span>\n\t\t\t\t<input ng-show="link.type === \'absolute\'" type=text ng-model=link.url class="gf-form-input max-width-14">\n\t\t\t</div>\n\n\t\t\t<div class="gf-form max-width-25">\n\t\t\t\t<div class="gf-form-label width-7">
8Title</div>\n\t\t\t\t<input type=text ng-model=link.title class=gf-form-input>\n\t\t\t</div>\n\n\t\t</div>\n\n\t\t<div class=section>\n\t\t\t<div class=gf-form>\n\t\t\t\t<span class="gf-form-label width-10">Url params</span>\n\t\t\t\t<input type=text ng-model=link.params class="gf-form-input width-10">\n\t\t\t</div>\n\n\t\t\t<gf-form-switch class=gf-form label-class=width-10 label="Include time range" checked=link.keepTime></gf-form-switch>\n\t\t\t<gf-form-switch class=gf-form label-class=width-10 label="Include variables" checked=link.includeVars></gf-form-switch>\n\t\t\t<gf-form-switch class=gf-form label-class=width-10 label="Open in new tab " checked=link.targetBlank></gf-form-switch>\n\t\t</div>\n\n\t\t<div class=section>\n\t\t\t<div class=gf-form>\n\t\t\t\t<button class="btn btn-inverse gf-form-btn" ng-click=deleteLink(link)><i class="fa fa-trash"></i> Remove Link</button>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n\n<div class=editor-row>\n\t<button class="btn btn-inverse" ng-click=addLink()><i class="fa fa-plus"></i> Add link</button>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/playlist/partials/playlist.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=ctrl.navModel></page-header>\n\n<div class="page-container page-body" ng-form=playlistEditForm>\n\n <h3 class=page-sub-heading ng-hide=ctrl.isNew>Edit Playlist</h3>\n <h3 class=page-sub-heading ng-show=ctrl.isNew>New Playlist</h3>\n\n\t<p class=playlist-description>A playlist rotates through a pre-selected list of Dashboards. A Playlist can be a great way to build situational awareness, or just show off your metrics to your team or visitors.</p>\n\n\t<div class=gf-form-group>\n\t\t<div class=gf-form>\n\t\t\t<span class="gf-form-label width-7">Name</span>\n\t\t\t<input type=text required ng-model=ctrl.playlist.name class="gf-form-input max-width-21">\n\t\t</div>\n\t\t<div class=gf-form>\n\t\t\t<span class="gf-form-label width-7">Interval</span>\n\t\t\t<input type=text required ng-model=ctrl.playlist.interval placeholder=5m class="gf-form-input max-width-21">\n\t\t</div>\n\t</div>\n\n\t<div class=gf-form-group>\n\t\t<h3 class=page-headering>Dashboards</h3>\n\t</div>\n\n\t<div class=row>\n\t\t<div class=col-lg-6>\n\t\t\t<div class=playlist-search-containerwrapper>\n\t\t\t\t<div class=max-width-32>\n\t\t\t\t\t<h5 class="page-headering playlist-column-header">Available</h5>\n\t\t\t\t\t<div style="">\n\t\t\t\t\t\t<playlist-search class=playlist-search-container search-started=ctrl.searchStarted(promise)></playlist-search>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div ng-if="ctrl.filteredDashboards.length > 0">\n\t\t\t\t<table class="filter-table playlist-available-list">\n\t\t\t\t\t<tr ng-repeat="playlistItem in ctrl.filteredDashboards">\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<i class="icon-gf icon-gf-dashboard"></i>\n\t\t\t\t\t\t\t {{playlistItem.title}}\n\t\t\t\t\t\t\t<i class="fa fa-star" ng-show=playlistItem.isStarred></i>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td class=add-dashboard>\n\t\t\t\t\t\t\t<button class="btn btn-inverse btn-mini pull-right" ng-click=ctrl.addPlaylistItem(playlistItem)>\n\t\t\t\t\t\t\t\t<i class="fa fa-plus"></i>\n\t\t\t\t\t\t\t\tAdd to playlist\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</table>\n\t\t\t</div>\n\t\t\t<div class=playlist-search-results-container ng-if="ctrl.filteredTags.length > 0;">\n\t\t\t\t<table class="filter-table playlist-available-list">\n\t\t\t\t\t<tr ng-repeat="tag in ctrl.filteredTags">\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<a class="search-result-tag label label-tag" tag-color-from-name=tag.term>\n\t\t\t\t\t\t\t\t<i class="fa fa-tag"></i>\n\t\t\t\t\t\t\t\t<span>{{tag.term}} ({{tag.count}})</span>\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td class=add-dashboard>\n\t\t\t\t\t\t\t<button class="btn btn-inverse btn-mini pull-right" ng-click=ctrl.addTagPlaylistItem(tag)>\n\t\t\t\t\t\t\t\t<i class="fa fa-plus"></i>\n\t\t\t\t\t\t\t\tAdd to playlist\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</table>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=col-lg-6>\n\t\t\t<h5 class="page headering playlist-column-header">Selected</h5>\n\t\t\t<table class="filter-table playlist-available-list">\n\t\t\t\t<tr ng-repeat="playlistItem in ctrl.playlistItems">\n\t\t\t\t\t<td ng-if="playlistItem.type === \'dashboard_by_id\'">\n\t\t\t\t\t\t<i class="icon-gf icon-gf-dashboard"></i> {{playlistItem.title}}\n\t\t\t\t\t</td>\n\t\t\t\t\t<td ng-if="playlistItem.type === \'dashboard_by_tag\'">\n\t\t\t\t\t\t<a class="search-result-tag label label-tag" tag-color-from-name=playlistItem.title>\n\t\t\t\t\t\t\t<i class="fa fa-tag"></i>\n\t\t\t\t\t\t\t<span>{{playlistItem.title}}</span>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</td>\n\n\t\t\t\t\t<td class=selected-playlistitem-settings>\n\t\t\t\t\t\t<button class="btn btn-inverse btn-mini" ng-hide=$first ng-click=ctrl.movePlaylistItemUp(playlistItem)>\n\t\t\t\t\t\t\t<i class="fa fa-arrow-up"></i>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t\t<button class="btn btn-inverse btn-mini" ng-hide=$last ng-click=ctrl.movePlaylistItemDown(playlistItem)>\n\t\t\t\t\t\t\t<i class="fa fa-arrow-down"></i>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t\t<button class="btn btn-inverse btn-mini" ng-click=ctrl.removePlaylistItem(playlistItem)>\n\t\t\t\t\t\t\t<i class="fa fa-remove"></i>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t</div>\n\t</div>\n\n\t<div class=clearfix></div>\n\n\t<div class=gf-form-button-row>\n\t\t<a class="btn btn-success" ng-show=ctrl.isNew ng-disabled="ctrl.playlistEditForm.$invali
8d || ctrl.isPlaylistEmpty()" ng-click="ctrl.savePlaylist(ctrl.playlist, ctrl.playlistItems)">Create new playlist</a>\n\t\t<a class="btn btn-success" ng-show=!ctrl.isNew() ng-disabled="ctrl.playlistEditForm.$invalid || ctrl.isPlaylistEmpty()" ng-click="ctrl.savePlaylist(ctrl.playlist, ctrl.playlistItems)">Save</a>\n\t\t<a class=btn-text ng-click=ctrl.backToList()>Cancel</a>\n\t</div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/playlist/partials/playlist_search.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=playlist-search-field-wrapper>\n <span style=position:relative>\n <input type=text placeholder="Find dashboards by name" tabindex=1 ng-keydown=ctrl.keyDown($event) ng-model=ctrl.query.query ng-model-options="{ debounce: 500 }" spellcheck=false ng-change=ctrl.searchDashboards() />\n\t\t<div class=playlist-search-switches>\n\t\t\t<i class="fa fa-filter"></i>\n\t\t\t<a class=pointer href="javascript:void 0;" ng-click=ctrl.showStarred() tabindex=2>\n\t\t\t\t<i class="fa fa-remove" ng-show=ctrl.query.starred></i>\n\t\t\t\tstarred\n\t\t\t</a> |\n\t\t\t<a class=pointer href="javascript:void 0;" ng-click=ctrl.getTags() tabindex=3>\n\t\t\t\t<i class="fa fa-remove" ng-show=ctrl.tagsMode></i>\n\t\t\t\ttags\n\t\t\t</a>\n\t\t\t<span ng-if=ctrl.query.tag.length>\n\t\t\t\t|\n\t\t\t\t<span ng-repeat="tagName in ctrl.query.tag">\n\t\t\t\t\t<a ng-click="ctrl.removeTag(tagName, $event)" tag-color-from-name=ctrl.tagName class="label label-tag">\n\t\t\t\t\t\t<i class="fa fa-remove"></i>\n\t\t\t\t\t\t{{tagName}}\n\t\t\t\t\t</a>\n\t\t\t\t</span>\n\t\t\t</span>\n\t\t</div>\n\t</span>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/playlist/partials/playlists.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=ctrl.navModel></page-header>\n\n<div class="page-container page-body">\n <div class=page-action-bar>\n <div class=page-action-bar__spacer></div>\n <a class="btn btn-success pull-right" href=playlists/create>\n <i class="fa fa-plus"></i>\n New Playlist\n </a>\n </div>\n\n <table class=filter-table>\n <thead>\n <th><strong>Name</strong></th>\n <th><strong>Start url</strong></th>\n <th style=width:78px></th>\n <th style=width:78px></th>\n <th style=width:25px></th>\n </thead>\n <tr ng-repeat="playlist in ctrl.playlists">\n <td>\n\t\t\t\t<a href=playlists/edit/{{playlist.id}}>{{playlist.name}}</a>\n </td>\n <td>\n\t\t\t\t<a href=playlists/play/{{playlist.id}}>playlists/play/{{playlist.id}}</a>\n </td>\n <td class=text-center>\n <a href=playlists/play/{{playlist.id}} class="btn btn-inverse btn-small">\n <i class="fa fa-play"></i>\n Play\n </a>\n </td>\n <td class=text-right>\n <a href=playlists/edit/{{playlist.id}} class="btn btn-inverse btn-small">\n <i class="fa fa-edit"></i>\n Edit\n </a>\n </td>\n <td class=text-right>\n <a ng-click=ctrl.removePlaylist(playlist) class="btn btn-danger btn-small">\n <i class="fa fa-remove"></i>\n </a>\n </td>\n </tr>\n </table>\n\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/plugins/import_list/import_list.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=gf-form-group ng-if=ctrl.dashboards.length>\n\t<table class=filter-table>\n\t\t<tbody>\n\t\t\t<tr ng-repeat="dash in ctrl.dashboards">\n\t\t\t\t<td class=width-1>\n\t\t\t\t\t<i class="icon-gf icon-gf-dashboard"></i>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<a href={{dash.importedUrl}} ng-show=dash.imported>\n\t\t\t\t\t\t{{dash.title}}\n\t\t\t\t\t</a>\n\t\t\t\t\t<span ng-show=!dash.imported>{{dash.title}}</span>\n\t\t\t\t</td>\n\t\t\t\t<td style=text-align:right>\n\t\t\t\t\t<button class="btn btn-secondary btn-small" ng-click="ctrl.import(dash, false)" ng-show=!dash.imported>\n\t\t\t\t\t\tImport\n\t\t\t\t\t</button>\n\t\t\t\t\t<button class="btn btn-secondary btn-small" ng-click="ctrl.import(dash, true)" ng-show=dash.imported>
8\n <span ng-if="dash.revision !== dash.importedRevision">Update</span>\n <span ng-if="dash.revision === dash.importedRevision">Re-import</span>\n\t\t\t\t\t</button>\n\t\t\t\t\t<button class="btn btn-danger btn-small" ng-click=ctrl.remove(dash) ng-show=dash.imported>\n\t\t\t\t\t\t<i class="fa fa-trash"></i>\n\t\t\t\t\t</button>\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t</tbody>\n\t</table>\n</div>\n\n')}]),e.exports=n},function(e,t){var n="public/app/features/plugins/partials/ds_dashboards.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=ctrl.navModel></page-header>\n\n<div class="page-container page-body" ng-if=ctrl.datasourceMeta>\n\n\t<dashboard-import-list plugin=ctrl.datasourceMeta datasource=ctrl.current></dashboard-import-list>\n\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/plugins/partials/ds_edit.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=ctrl.navModel></page-header>\n\n<div class="page-container page-body">\n\n <div ng-if=ctrl.current.readOnly class=page-action-bar>\n <div class="grafana-info-box span8">\n Disclaimer. This datasource was added by config and cannot be modified using the UI. Please contact your server admin to update this datasource.\n </div>\n </div>\n\n <form name=ctrl.editForm ng-if=ctrl.current>\n <div class=gf-form-group>\n <div class=gf-form-inline>\n <div class="gf-form max-width-30">\n <span class="gf-form-label width-7">Name</span>\n <input class="gf-form-input max-width-23" type=text ng-model=ctrl.current.name placeholder=name required>\n <info-popover offset="0px -135px" mode=right-absolute>\n The name is used when you select the data source in panels.\n The <em>Default</em> data source is preselected in new\n panels.\n </info-popover>\n </div>\n <gf-form-switch class=gf-form label=Default checked=ctrl.current.isDefault switch-class=max-width-6></gf-form-switch>\n </div>\n\n <div class=gf-form>\n <span class="gf-form-label width-7">Type</span>\n <div class="gf-form-select-wrapper max-width-23">\n <select class=gf-form-input ng-model=ctrl.current.type ng-options="v.id as v.name for v in ctrl.types" ng-change=ctrl.userChangedType()></select>\n </div>\n </div>\n </div>\n\n <div class="alert alert-info gf-form-group" ng-if="ctrl.datasourceMeta.state === \'alpha\'">\n This plugin is marked as being in alpha state, which means it is in early development phase and\n updates will include breaking changes.\n </div>\n\n <rebuild-on-change property=ctrl.datasourceMeta.id>\n <plugin-component type=datasource-config-ctrl>\n </plugin-component>\n </rebuild-on-change>\n\n <div ng-if=ctrl.hasDashboards>\n <h3 class=section-heading>Bundled Plugin Dashboards</h3>\n <div class=section>\n <dashboard-import-list plugin=ctrl.datasourceMeta datasource=ctrl.current></dashboard-import-list>\n </div>\n </div>\n\n <div ng-if=ctrl.testing class="gf-form-group section">\n <h5 ng-show=!ctrl.testing.done>Testing.... <i class="fa fa-spiner fa-spin"></i></h5>\n <div class="alert-{{ctrl.testing.status}} alert" ng-show=ctrl.testing.done>\n <div class=alert-icon>\n <i class="fa fa-exclamation-triangle" ng-show="ctrl.testing.status === \'error\'"></i>\n <i class="fa fa-check" ng-show="ctrl.testing.status !== \'error\'"></i>\n </div>\n <div class=alert-body>\n <div class=alert-title>{{ctrl.testing.message}}</div>\n </div>\n </div>\n </div>\n\n <div class=gf-form-button-row>\n <button type=submit class="btn btn-success" ng-disabled=ctrl.current.readOnly ng-click=ctrl.saveChanges()>Save & Test</button>\n <button type=submit class="btn btn-danger" ng-disabled=ctrl.current.readOnly ng-show=!ctrl.isNew ng-click=ctrl.delete()>\n Delete\n </button>\n <a class="btn btn-inverse" href=datasources>Back</a>\n </div>\n\n <br/>\n <br/>\n <br/>\n\n </form>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/plugins/partials/ds_http_settings.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=gf-form-group>\n <h3 class=page-heading>HTTP</h3>\n <div class=gf-form-group>\n <div class=gf-form-inline>\n <div class="gf-form max-width-30">
8\n <span class="gf-form-label width-7">URL</span>\n <input class=gf-form-input type=text ng-model=current.url placeholder={{suggestUrl}} bs-typeahead=getSuggestUrls min-length=0 ng-pattern="/^(ftp|http|https):\\/\\/(\\w+:{0,1}\\w*@)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%@!\\-\\/]))?$/" required>\n <info-popover mode=right-absolute>\n <p>Specify a complete HTTP URL (for example http://your_server:8080)</p>\n <span ng-show="current.access === \'direct\'">\n Your access method is <em>Browser</em>, this means the URL\n needs to be accessible from the browser.\n </span>\n <span ng-show="current.access === \'proxy\'">\n Your access method is <em>Server</em>, this means the URL\n needs to be accessible from the grafana backend/server.\n </span>\n </info-popover>\n </div>\n </div>\n\n <div class=gf-form-inline ng-if=showAccessOption>\n <div class="gf-form max-width-30">\n <span class="gf-form-label width-7">Access</span>\n <div class="gf-form-select-wrapper max-width-24">\n <select class=gf-form-input ng-model=current.access ng-options="f.key as f.value for f in [{key: \'proxy\', value: \'Server (Default)\'}, { key: \'direct\', value: \'Browser\'}]"></select>\n </div>\n </div>\n <div class=gf-form>\n <label class="gf-form-label query-keyword pointer" ng-click=toggleAccessHelp()>\n Help \n <i class="fa fa-caret-down" ng-show=ctrl.showAccessHelp></i>\n <i class="fa fa-caret-right" ng-hide=ctrl.showAccessHelp> </i>\n </label>\n </div>\n </div>\n\n <div class="alert alert-info" ng-show=showAccessHelp>\n <div class=alert-body>\n <p>\n Access mode controls how requests to the data source will be handled.\n <strong><i>Server</i></strong> should be the preferred way if nothing else stated.\n </p>\n <div class=alert-title>Server access mode (Default):</div>\n <p>\n All requests will be made from the browser to Grafana backend/server which in turn will forward the requests to the data source\n and by that circumvent possible Cross-Origin Resource Sharing (CORS) requirements.\n The URL needs to be accessible from the grafana backend/server if you select this access mode.\n </p>\n <div class=alert-title>Browser access mode:</div>\n <p>\n All requests will be made from the browser directly to the data source and may be subject to\n Cross-Origin Resource Sharing (CORS) requirements. The URL needs to be accessible from the browser if you select this\n access mode.\n </p>\n </div>\n </div>\n </div>\n\n <h3 class=page-heading>Auth</h3>\n <div class=gf-form-group>\n <div class=gf-form-inline>\n <gf-form-switch class=gf-form label="Basic Auth" checked=current.basicAuth label-class=width-8 switch-class=max-width-6></gf-form-switch>\n <gf-form-switch class=gf-form label="With Credentials" tooltip="Whether credentials such as cookies or auth headers should be sent with cross-site requests." checked=current.withCredentials label-class=width-11 switch-class=max-width-6></gf-form-switch>\n </div>\n <div class=gf-form-inline>\n <gf-form-switch class=gf-form ng-if="current.access==\'proxy\'" label="TLS Client Auth" label-class=width-8 checked=current.jsonData.tlsAuth switch-class=max-width-6></gf-form-switch>\n <gf-form-switch class=gf-form ng-if="current.access==\'proxy\'" label="With CA Cert" tooltip="Needed for verifing self-signed TLS Certs" checked=current.jsonData.tlsAuthWithCACert label-class=width-11 switch-class=max-width-6></gf-form-switch>\n </div>\n </div>\n\n <div class=gf-form-inline>\n <gf-form-switch class=gf-form ng-if="current.access==\'proxy\'" label="Skip TLS Verification (Insecure)" label-class=width-16 checked=current.jsonData.tlsSkipVerify switch-class=max-width-6></gf-form-switch>\n </div>\n</div>\n\n<div class=gf-form-group ng-if=current.basicAuth>\n <h6>Basic Auth Details</h6>\n <div class=gf-form ng-if=current.basicAuth>\n <span class="gf-form-label width-7">\n User\n </span>\n <input class="gf-form-input max-width-21" type=text ng-model=current.basicAuthUser placeholder=user required>\n </div>\n\n <div class=gf-form>\n <span class="gf-form-label width-7">\n Password\n </span>\n <input class="gf-form-input max-width-21" type=password ng-model=current.basicAuthPassword placeholder=password required>\n </div>\n</div>\n\n<div class=gf-form-group ng-if="(current.jsonData.tlsAuth || current.jsonData.tlsAuthWithCACert) && current.access==\'proxy\'">\n <div class=gf-form>\n <h6>TLS Auth Details</h6>\n <info-popover mode=header>TLS Certs are encrypted and stored in the Grafana database.</info-popover>\n </div>\n <div ng-if=current.jsonData.tlsAuthWithCACert>\n <div class=gf-form-inline>\n <div class="gf-form gf-form--v-stretch">\n <label class="gf-form-label width-7">CA Cert</label>\n </div>\n <div class="gf-form gf-form--grow" ng-if=!current.secureJsonFields.tlsCACert>\n <textarea rows=7 class="gf-form-input gf-form-textarea" ng-model=current.secureJsonData.tlsCACert placeholder="Begins with -----BEGIN CERTIFICATE-----"></textarea>\n </div>\n\n <div class=gf-form ng-if=current.secureJsonFields.tlsCACert>\n <input type=text class="gf-form-input max-width-12" disabled=disabled value=configured>\n <a class="btn btn-secondary gf-form-btn" href=# ng-click="current.secureJsonFields.tlsCACert = false">reset</a>\n </div>\n </div>\n </div>\n\n <div ng-if=current.jsonData.tlsAuth>\n <div class=gf-form-inline>\n <div class="gf-form gf-form--v-stretch">\n <label class="gf-form-label width-7">Client Cert</label>\n </div>\n <div class="gf-form gf-form--grow" ng-if=!current.secureJsonFields.tlsClientCert>\n <textarea rows=7 class="gf-form-input gf-form-textarea" ng-model=current.secureJsonData.tlsClientCert placeholder="Begins with -----BEGIN CERTIFICATE-----" required></textarea>\n </div>\n <div class=gf-form ng-if=current.secureJsonFields.tlsClientCert>\n <input type=text class="gf-form-input max-width-12" disabled=disabled value=configured>\n <a class="btn btn-secondary gf-form-btn" href=# ng-click="current.secureJsonFields.tlsClientCert = false">reset</a>\n </div>\n </div>\n\n <div class=gf-form-inline>\n <div class="gf-form gf-form--v-stretch">\n <label class="gf-form-label width-7">Client Key</label>\n </div>\n <div class="gf-form gf-form--grow" ng-if=!current.secureJsonFields.tlsClientKey>\n <textarea rows=7 class="gf-form-input gf-form-textarea" ng-model=current.secureJsonData.tlsClientKey placeholder="Begins with -----BEGIN RSA PRIVATE KEY-----" required></textarea>\n </div>\n <div class=gf-form ng-if=current.secureJsonFields.tlsClientKey>\n <input type=text class="gf-form-input max-width-12" disabled=disabled value=configured>\n <a class="btn btn-secondary gf-form-btn" href=# ng-click="current.secureJsonFields.tlsClientKey = false">reset</a>\n </div>\n </div>\n </div>\n</div>\n\n<h3 class=page-heading ng-if="current.access==\'proxy\'">Advanced HTTP Settings</h3>\n<div class=gf-form-group ng-if="current.access==\'proxy\'">\n <div class=gf-form-inline>\n <div class=gf-form>
8\n <span class="gf-form-label width-10">Whitelisted Cookies</span>\n <bootstrap-tagsinput ng-model=current.jsonData.keepCookies tagclass="label label-tag" placeholder="Add Name">\n </bootstrap-tagsinput>\n <info-popover mode=right-absolute>\n Grafana Proxy deletes forwarded cookies by default. Specify cookies by name that should be forwarded to the data source.\n </info-popover>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/plugins/partials/ds_list.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=ctrl.navModel></page-header>\n\n<div class="page-container page-body">\n\t<div ng-if=ctrl.unfiltered.length>\n\t\t<div class=page-action-bar>\n\t\t\t<div class="gf-form gf-form--grow">\n\t\t\t\t<label class=gf-form--has-input-icon>\n\t\t\t\t\t<input type=text class="gf-form-input width-20" ng-model=ctrl.searchQuery ng-change=ctrl.onQueryUpdated() placeholder="Filter by name or type"/>\n\t\t\t\t\t<i class="gf-form-input-icon fa fa-search"></i>\n\t\t\t\t</label>\n\t\t\t\t<layout-selector/>\n\t\t\t</div>\n\t\t\t<div class=page-action-bar__spacer></div>\n\t\t\t<a class="page-header__cta btn btn-success" href=datasources/new>\n\t\t\t\t<i class="fa fa-plus"></i>\n\t\t\t\tAdd data source\n\t\t\t</a>\n\t\t</div>\n\n\t\t<section class=card-section layout-mode>\n\t\t\t<ol class=card-list>\n\t\t\t\t<li class=card-item-wrapper ng-repeat="ds in ctrl.datasources">\n\t\t\t\t\t<a class=card-item href=datasources/edit/{{ds.id}}/ >\n\t\t\t\t\t\t<div class=card-item-header>\n\t\t\t\t\t\t\t<div class=card-item-type>\n\t\t\t\t\t\t\t\t{{ds.type}}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=card-item-body>\n\t\t\t\t\t\t\t<figure class=card-item-figure>\n\t\t\t\t\t\t\t\t<img ng-src={{ds.typeLogoUrl}}>\n\t\t\t\t\t\t\t</figure>\n\t\t\t\t\t\t\t<div class=card-item-details>\n\t\t\t\t\t\t\t\t<div class=card-item-name>\n\t\t\t\t\t\t\t\t\t{{ds.name}}\n\t\t\t\t\t\t\t\t\t<span ng-if=ds.isDefault>\n\t\t\t\t\t\t\t\t\t\t<span class="btn btn-secondary btn-mini">default</span>\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class=card-item-sub-name>\n\t\t\t\t\t\t\t\t\t{{ds.url}}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t</ol>\n\t\t</section>\n\t</div>\n\n\t<div ng-if="ctrl.unfiltered.length === 0">\n\t\t<empty-list-cta model="{\n\t\t\ttitle: \'There are no data sources defined yet\',\n\t\t\tbuttonIcon: \'gicon gicon-add-datasources\',\n\t\t\tbuttonLink: \'datasources/new\',\n\t\t\tbuttonTitle: \'Add data source\',\n\t\t\tproTip: \'You can also define data sources through configuration files.\',\n\t\t\tproTipLink: \'http://docs.grafana.org/administration/provisioning/#datasources?utm_source=grafana_ds_list\',\n\t\t\tproTipLinkTitle: \'Learn more\',\n\t\t\tproTipTarget: \'_blank\'\n\t\t}"/>\n\t</div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/plugins/partials/plugin_edit.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div ng-if=ctrl.navModel>\n <page-header model=ctrl.navModel></page-header>\n\n <div class="page-container page-body">\n <div class=sidebar-container>\n <div class="tab-content sidebar-content" ng-if="ctrl.tab === \'readme\'">\n <div ng-bind-html=ctrl.readmeHtml class=markdown-html>\n </div>\n </div>\n\n <div class="tab-content sidebar-content" ng-if="ctrl.tab === \'config\'">\n <div ng-if=ctrl.model.id>\n <plugin-component type=app-config-ctrl></plugin-component>\n\n <div class=gf-form-button-row>\n <button type=submit class="btn btn-success" ng-click=ctrl.enable() ng-show=!ctrl.model.enabled>Enable</button>\n <button type=submit class="btn btn-success" ng-click=ctrl.update() ng-show=ctrl.model.enabled>Update</button>\n <button type=submit class="btn btn-danger" ng-click=ctrl.disable() ng-show=ctrl.model.enabled>Disable</button>\n </div>\n </div>\n </div>\n\n <div class="tab-content sidebar-content" ng-if="ctrl.tab === \'dashboards\'">\n <dashboard-import-list plugin=ctrl.model></dashboard-import-list>\n </div>\n\n <aside class=page-sidebar>\n <section class=page-sidebar-section>\n <h4>Version</h4>
8\n <span>{{ctrl.model.info.version}}</span>\n <div ng-show=ctrl.model.hasUpdate>\n <a ng-click=ctrl.updateAvailable() bs-tooltip=ctrl.model.latestVersion>Update Available!</a>\n </div>\n </section>\n <section class=page-sidebar-section ng-show="ctrl.model.type === \'app\'">\n <h5>Includes\n <ul class="ui-list plugin-info-list">\n <li ng-repeat="plug in ctrl.includes" class=plugin-info-list-item>\n <i class={{plug.icon}}></i>\n {{plug.name}}\n </li>\n </ul>\n </h5></section>\n <section class=page-sidebar-section>\n <h5>Dependencies\n <ul class="ui-list plugin-info-list">\n <li class=plugin-info-list-item>\n <img src=public/img/grafana_icon.svg>\n Grafana {{ctrl.model.dependencies.grafanaVersion}}\n </li>\n <li ng-repeat="plugDep in ctrl.model.dependencies.plugins" class=plugin-info-list-item>\n <i class={{plugDep.icon}}></i>\n {{plugDep.name}} {{plugDep.version}}\n </li>\n </ul>\n </h5></section>\n <section class=page-sidebar-section>\n <h5>Links\n <ul class=ui-list>\n <li ng-repeat="link in ctrl.model.info.links">\n <a href={{link.url}} class=external-link target=_blank>{{link.name}}</a>\n </li>\n </ul>\n </h5></section>\n </aside>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/plugins/partials/plugin_list.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=ctrl.navModel></page-header>\n\n<div class="page-container page-body">\n <div class=page-action-bar>\n\t\t<div class="gf-form gf-form--grow">\n\t\t\t<label class=gf-form--has-input-icon>\n\t\t\t\t<input type=text class="gf-form-input width-20" ng-model=ctrl.searchQuery ng-change=ctrl.onQueryUpdated() placeholder="Filter by name or type"/>\n\t\t\t\t<i class="gf-form-input-icon fa fa-search"></i>\n\t\t\t</label>\n\t\t\t<layout-selector/>\n\t\t</div>\n\t\t<div class=page-action-bar__spacer></div>\n\t\t<a class="btn btn-success" href="https://grafana.com/plugins?utm_source=grafana_plugin_list" target=_blank>\n\t\t\tFind more plugins on Grafana.com\n\t\t</a>\n\t</div>\n\n\t<section class=card-section layout-mode>\n\n\t\t<ol class=card-list>\n\t\t\t<li class=card-item-wrapper ng-repeat="plugin in ctrl.plugins">\n\t\t\t\t<a class=card-item href=plugins/{{plugin.id}}/edit>\n\t\t\t\t\t<div class=card-item-header>\n\t\t\t\t\t\t<div class=card-item-type>\n\t\t\t\t\t\t\t<i class="icon-gf icon-gf-{{plugin.type}}"></i>\n\t\t\t\t\t\t\t{{plugin.type}}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=card-item-notice ng-show=plugin.hasUpdate>\n\t\t\t\t\t\t\t<span bs-tooltip=plugin.latestVersion>Update available!</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=card-item-body>\n\t\t\t\t\t\t<figure class=card-item-figure>\n\t\t\t\t\t\t\t<img ng-src={{plugin.info.logos.small}}>\n\t\t\t\t\t\t</figure>\n\t\t\t\t\t\t<div class=card-item-details>\n\t\t\t\t\t\t\t<div class=card-item-name>{{plugin.name}}</div>\n\t\t\t\t\t\t\t<div class=card-item-sub-name>By {{plugin.info.author.name}}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</a>\n\t\t\t</li>\n\t\t</ol>\n\t</section>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/plugins/partials/plugin_page.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,"<div ng-if=ctrl.navModel>\n <page-header model=ctrl.navModel></page-header>\n\n <div class=page-container>\n <div ng-if=ctrl.page>\n <plugin-component type=app-page>\n </plugin-component>\n </div>\n </div>\n</div>\n")}]),e.exports=n},function(e,t){var n="public/app/features/plugins/partials/update_instructions.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=modal-body>\n\t<div class=modal-header>\n\t\t<h2 class=modal-header-title>\n\t\t\t<i class="fa fa-cloud-download"></i>\n\t\t\t<span class=p-l-1>Update Plugin</span>\n\t\t</h2>\n\n\t\t<a class=modal-header-close ng-click=dismiss();>\n\t\t\t<i class="fa fa-remove"></i>\n\t\t</a>\n\t</div>\n\n\t<div class=modal-content>\n\t\t<div class=gf-form-group>\n\t\t\t<p>Type the following on the command line to update {{plugin.name}}.</p>\n\t\t\t<pre><code>grafana-cli plugins update {{plugin.id}}</code></pre>\n\t\t\t<span class=small>Check out {{plugin.name}} on <a href=https://grafana.com/plugins/{{plugin.id}}>Grafana.com</a> for README and changelog. If you do not have access to the command line, ask your Grafana administator.</span>\n\t\t</div>\n\t\t<p class=pluginlist-none-installed><img class=pluginlist-inline-logo src=public/img/grafana_icon.svg><strong>Pro tip</strong>: To update all plugins at once, type <code class=code--small>grafana-cli plugins update-all</code> on the command line.</p></div>\n\t</div>\n\n')}]),e.exports=n},function(e,t){var n="public/app/features/sensors/partials/bind_sensor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=ctrl.navModel></page-header>\n\n<div ng-if=ctrl.experiment class="page-container page-body sensor-search">\n\n\t<div class="page-action-bar page-action-bar--narrow">\n\t\t<label class="gf-form gf-form--grow gf-form--has-input-icon">\n\t\t\t<input type=text class="gf-form-input max-width-30" placeholder="Find
8Sensor" tabindex=1 give-focus=true ng-model=ctrl.query ng-model-options="{ debounce: 500 }" spellcheck=false ng-change=ctrl.onQueryChange() />\n\t\t\t<i class="gf-form-input-icon fa fa-search"></i>\n\t\t</label>\n\t\t<div class=page-action-bar__spacer></div>\n \t<a class="btn btn-success" href="/sensors/new?bind_to={{::ctrl.experiment.id}}">\n\t\t\t<i class="fa fa-plus"></i>\n\t\t\tCreate Sensor\n\t\t</a>\n\t</div>\n\n <div class=search-results ng-show="ctrl.results.length === 0">\n\t\t<div class="search-section no-results">\n\n\t\t\t<em ng-if=ctrl.query class=muted>\n\t\t\t\tNo sensors matching the query « {{ ctrl.query }} » were found.\n\t\t\t</em>\n\n\t\t\t<em ng-if=!ctrl.query class=muted>\n\t\t\t\tNo sensors matching your query were found.\n\t\t\t</em>\n\n\t\t</div>\n </div>\n\n\t<div class=search-results ng-show="ctrl.results.length > 0">\n\t\t<div class=search-section>\n\t\t\t<span ng-repeat="item in ctrl.results" class="search-item search-item--indent" ng-class="{\'selected\': item.selected}" ng-click="ctrl.toggleSelection(item, $event)">\n\t\t\t\t<div>\n\t\t\t\t\t<gf-form-switch on-change=ctrl.selectionChanged() checked=item.checked switch-class="gf-form-switch--transparent gf-form-switch--search-result__item">\n\t\t\t\t\t</gf-form-switch>\n\t\t\t\t</div>\n\t\t\t\t<span class=search-item__icon>\n\t\t\t\t\t<i class="gicon mini fa fa-thermometer-empty"></i>\n\t\t\t\t</span>\n\t\t\t\t<span class=search-item__body>\n\t\t\t\t\t<div class=search-item__body-title>{{::item.title}}</div>\n\t\t\t\t</span>\n\t\t\t</span>\n\t\t</div>\n\t</div>\n\n\t<div class=gf-form-button-row>\n\t\t<button class="btn btn-success" ng-class="{\'disabled\': ctrl.results.length === 0 || !ctrl.canAdd}" ng-click=ctrl.addSensors()>\n\t\t\t<i class="fa fa-plus"></i>\n\t\t\tAdd Selected Sensors\n\t\t</button>\n\t\t<button class="btn btn-inverse width-12" ng-click=ctrl.cancel($event)>\n\t\t\t<i class="fa fa-cancel"></i>\n\t\t\tCancel\n\t\t</button>\n\t</div>\n\t\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/sensors/partials/edit_sensor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=ctrl.navModel></page-header>\n\n<div class="page-container page-body">\n\n <h3 class=page-sub-heading>{{ ctrl.navModel.main.subTitle }}</h3>\n\n <form name=ctrl.saveForm ng-submit=ctrl.create() novalidate>\n\t\t<div class=gf-form-inline>\n\t\t\t<div class="gf-form gf-form--grow">\n\t\t\t\t<label class="gf-form-label width-10">Short Name</label>\n\t\t\t\t<input ng-disabled=ctrl.inputDisabled type=text class=gf-form-input ng-model=ctrl.sensor.shortName give-focus=true ng-change=ctrl.titleChanged()>\n\t\t\t</div>\n </div>\n\n\t\t<div class=gf-form-inline>\n\t\t\t<div class="gf-form gf-form--grow">\n\t\t\t\t<label class="gf-form-label width-10">Description</label>\n\t\t\t\t<input ng-disabled=ctrl.inputDisabled type=text class=gf-form-input ng-model=ctrl.sensor.description>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=gf-form-inline ng-if=ctrl.hasValidationError>\n\t\t\t<div class="gf-form offset-width-10 gf-form--grow">\n\t\t\t\t<label class="gf-form-label text-warning gf-form-label--grow">\n\t\t\t\t\t<i class="fa fa-warning"></i>\n\t\t\t\t\t{{ctrl.validationError}}\n\t\t\t\t</label>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=gf-form-button-row>\n\t\t\t<button type=submit class="btn btn-success width-12" ng-disabled=ctrl.hasValidationError>\n\t\t\t\t<i class="fa fa-save"></i> {{ ctrl.submitLabel }}\n\t\t\t</button>\n\t\t\t<button type=button class="btn btn-danger width-12" ng-click=ctrl.delete() ng-if=ctrl.showDelete>\n\t\t\t\t<i class="fa fa-trash"></i>\n\t\t\t\tDelete\n\t\t\t</button>\n\t\t\t<button class="btn btn-inverse width-12" ng-click=ctrl.cancel($event)>\n\t\t\t\t<i class="fa fa-cancel"></i>\n\t\t\t\tCancel\n\t\t\t</button>\n\t\t</div>\n\t</form>\n\n\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/snapshot/partials/snapshots.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=ctrl.navModel></page-header>\n\n<div class="page-container page-body">\n <table class=filter-table>\n <thead>\n <th><strong>Name</strong></th>\n <th><strong>Snapshot url</strong></th>\n <th style=width:70px></th>\n <th style=width:25px></th>\n\t\t</thead>\n\t\t<tr ng-repeat="snapshot in ctrl.snapshots">\n <td>
8\n\t\t\t\t<a href=dashboard/snapshot/{{snapshot.key}}>{{snapshot.name}}</a>\n </td>\n <td>\n <a href=dashboard/snapshot/{{snapshot.key}}>dashboard/snapshot/{{snapshot.key}}</a>\n </td>\n <td class=text-center>\n <a href=dashboard/snapshot/{{snapshot.key}} class="btn btn-inverse btn-mini">\n <i class="fa fa-eye"></i>\n View\n </a>\n </td>\n <td class=text-right>\n <a ng-click=ctrl.removeSnapshot(snapshot) class="btn btn-danger btn-mini">\n <i class="fa fa-remove"></i>\n </a>\n </td>\n </tr>\n </table>\n\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/features/styleguide/styleguide.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=ctrl.navModel></page-header>\n\n<div class="page-container page-body">\n\n\t<h3 class=page-heading>Buttons</h3>\n\n\t<div class=tab-pane>\n\t\t<div ng-repeat="variant in ctrl.buttonVariants" class=row>\n\t\t\t<div ng-repeat="btnSize in ctrl.buttonSizes" class="style-guide-button-list p-a-2 col-md-4">\n\t\t\t\t<button ng-repeat="buttonName in ctrl.buttonNames" class="btn btn{{variant}}{{buttonName}} {{btnSize}}">\n\t\t\t\t\tbtn{{variant}}{{buttonName}}\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\n\t<h3 class=page-heading>Forms</h3>\n\n\t<div class=gf-form-inline>\n\t\t<div class=gf-form>\n\t\t\t<label class=gf-form-label>Label</label>\n\t\t\t<input type=text class=gf-form-input />\n\t\t</div>\n\t</div>\n\n</div>\n\n')}]),e.exports=n},function(e,t){var n="public/app/features/templating/partials/editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div ng-controller=VariableEditorCtrl ng-init=init()>\n\n\t<h3 class=dashboard-settings__header>\n\t\t<a ng-click="setMode(\'list\')">Variables</a>\n\t\t<span ng-show="mode === \'new\'">> New</span>\n\t\t<span ng-show="mode === \'edit\'">> Edit</span>\n\t</h3>\n\n\t<div ng-if="mode === \'list\'">\n\n\t\t<div ng-if="variables.length === 0">\n\t\t\t<div class=empty-list-cta>\n\t\t\t\t<div class=empty-list-cta__title>There are no variables added yet</div>\n\t\t\t\t<a ng-click="setMode(\'new\')" class="empty-list-cta__button btn btn-xlarge btn-success">\n\t\t\t\t\t<i class="gicon gicon-add-variable"></i>\n\t\t\t\t\tAdd variable\n\t\t\t\t</a>\n\t\t\t\t<div class=grafana-info-box>\n\t\t\t\t\t<h5>What do variables do?</h5>\n\t\t\t\t\t<p>Variables enable more interactive and dynamic dashboards. Instead of hard-coding things like server or sensor names\n\t\t\t\t\tin your metric queries you can use variables in their place. Variables are shown as dropdown select boxes at the top of\n\t\t\t\t\tthe dashboard. These dropdowns make it easy to change the data being displayed in your dashboard.\n\n\t\t\t\t\tCheck out the\n\t\t\t\t\t<a class=external-link href=http://docs.grafana.org/reference/templating/ target=_blank>\n\t\t\t\t\t\tTemplating documentation\n\t\t\t\t\t</a> for more information.\n\t\t\t\t</p></div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div ng-if=variables.length>\n\t\t\t<div class=page-action-bar>\n\t\t\t\t<div class=page-action-bar__spacer></div>\n\t\t\t\t<a type=button class="btn btn-success" ng-click="setMode(\'new\');"><i class="fa fa-plus"></i> New</a>\n\t\t\t</div>\n\n\t\t\t<table class="filter-table filter-table--hover">\n\t\t\t\t<thead>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th>Variable</th>\n\t\t\t\t\t\t<th>Definition</th>\n\t\t\t\t\t\t<th colspan=5></th>\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t\t<tbody>\n\t\t\t\t\t<tr ng-repeat="variable in variables">\n\t\t\t\t\t\t<td style=width:1%>\n\t\t\t\t\t\t\t<span ng-click=edit(variable) class="pointer template-variable">\n\t\t\t\t\t\t\t\t${{variable.name}}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td style=max-width:200px ng-click=edit(variable) class="pointer max-width">\n\t\t\t\t\t\t\t{{variable.query}}\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td style=width:1%><i ng-click=_.move(variables,$index,$index-1) ng-hide=$first class="pointer fa fa-arrow-up"></i></td>\n\t\t\t\t\t\t<td style=width:1%><i ng-click=_.move(variables,$index,$index+1) ng-hide=$last class="pointer fa fa-arrow-down"></i></td>\n\t\t\t\t\t\t<td style=width:1%>\n\t\t\t\t\t\t\t<a ng-click=duplicate(variable) class="btn btn-inverse btn-mini">\n\t\t\t\t\t\t\t\tDuplicate\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td style=width:1%>\n\t\t\t\t\t\t\t<a ng-click=removeVariable(variable) class="btn btn-danger btn-mini">\n\t\t\t\t\t\t\t\t<i class="fa fa-remove"></i>\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody>\n\t\t\t</table>\n\t\t</div>\n\t</div>\n\n\t<form ng-if="mode === \'edit\' || mode === \'new\'" name=ctrl.form>\n\t\t<h5 class=section-heading>General</h5>\n\t\t<div class=gf-form-group>\n\t\t\t<div class=gf-form-inline>\n\t\t\t\t<div class="gf-form max-width-19">\n\t\t\t\t\t<span class="gf-form-label width-6">Name</span>\n\t\t\t\t\t<input type=text class=gf-form-input name=name placeholder=name ng-model=current.name required ng-pattern=namePattern>\n\t\t\t\t</div>\n\t\t\t\t<div class="gf-form max-width-19">\n\t\t\t\t\t<span class="gf-form-label width-6">\n\t\t\t\t\t\tType\n\t\t\t\t\t\t<info-popover mode=right-normal>\n\t\t\t\t\t\t\t{{variableTypes[current.type].description}}\n\t\t\t\t\t\t</info-popover>\n\t\t\t\t\t</span>\n\t\t\t\t\t<div class="gf-form-select-wrapper max-width-17">\n\t\t\t\t\t\t<select class=gf-form-input ng-model=current.type ng-options="k as v.name for (k, v) in variableTypes" ng-change=typeChanged()></select>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class=gf-form ng-show=ctrl.form.name.$error.pattern>\n\t\t\t\t<span class="gf-form-label gf-form-label--error">Template names cannot begin with \'__\', that\'s reserved for Grafana\'s global variables</span>\n\t\t\t</div>\n\n\t\t\t<div class=gf-form-inline>\n\t\t\t\t<div class="gf-form max-width-19">\n\t\t\t\t\t<span class="gf-form-label width-6">Label</span>\n\t\t\t\t\t<input type=text class=gf-form-input ng-model=current.label placeholder="optional display name">\n\t\t\t\t</div>\n\t\t\t\t<div class="gf-form max-width-19">\n\t\t\t\t\t<span class="gf-form-label width-6">Hide</span>\n\t\t\t\t\t<div class="gf-form-select-wrapper max-width-15">\n\t\t\t\t\t\t<select class=gf-form-input ng-model=current.hide ng-options="f.value as f.text for f in hideOptions"></select>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div ng-if="current.type === \'interval\'" class=gf-form-group>\n\t\t\t<h5 class=section-heading>Interval Options</h5>\n\n\t\t\t<div class=gf-form>\n\t\t\t\t<span class="gf-form-label width-9">Values</span>\n\t\t\t\t<input type=text class=gf-form-input placeholder=name ng-model=current.query placeholder=1m,10m,1h,6h,1d,7d ng-model-onblur ng-change=runQuery() required>\n\t\t\t</div>\n\n\t\t\t<div class=gf-form-inline>\n\t\t\t\t<gf-form-switch class=gf-form label="Auto Option" label-class=width-9 checked=current.auto on-change=runQuery()>\n\t\t\t\t</gf-form-switch>\n\n\t\t\t\t<div class=gf-form>\n\t\t\t\t\t<span class="gf-form-label width-9" ng-show=current.auto>\n\t\t\t\t\t\tStep count <tip>How many times should the current time range be divided to calculate the value</tip>\n\t\t\t\t\t</span>\n\t\t\t\t\t<div class="gf-form-select-wrapper max-width-10" ng-show=current.auto>\n\t\t\t\t\t\t<select class=gf-form-input ng-model=current.auto_count ng-options="f for f in [1,2,3,4,5,10,20,30,40,50,100,200,300,400,500]" ng-change=runQuery()></select>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=gf-form>\n\t\t\t\t\t<span class=gf-form-label ng-show=current.auto>\n\t\t\t\t\t\tMin interval <tip>The calculated value will not go below this threshold</tip>\n\t\t\t\t\t</span>\n\t\t\t\t\t<input type=text class="gf-form-input max-width-10" ng-show=current.auto ng-model=current.auto_min ng-change=runQuery() placeholder=10s>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div ng-if="current.type === \'custom\'" class=gf-form-group>\n\t\t\t<h5 class=section-heading>Custom Options</h5>\n\t\t\t<div class=gf-form>\n\t\t\t\t<span class="gf-form-label width-14">Values separated by comma</span>\n\t\t\t\t<input type=text class=gf-form-input ng-model=current.query ng-blur=runQuery() placeholder="1, 10, 20, myvalue" required>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div ng-if="current.type === \'constant\'" class=gf-form-group>\n\t\t\t<h5 class=section-heading>Constant options</h5>\n\t\t\t<div class=gf-form>\n\t\t\t\t<span class=gf-form-label>Value</span>\n\t\t\t\t<input type=text class=gf-form-input ng-model=current.query ng-blur=runQuery() placeholder="your metric prefix">\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div ng-if="current.type === \'query\'" class=gf-form-group>\n\t\t\t<h5 class=section-heading>Query Options</h5>\n\n\t\t\t<div class=gf-form-inline>\n\t\t\t\t<div class="gf-form max-width-21">\n\t\t\t\t\t<span class="gf-form-label width-7">Data source</span>\n\t\t\t\t\t<div class="gf-form-select-wrapper max-width-14">\n\t\t\t\t\t\t<select class=gf-form-input ng-model=current.datasource ng-options="f.value as f.name for f in datasources" required>\n\t\t\t\t\t\t\t<option value="" ng-if=false></option>\n\t\t\t\t\t\t</select>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class="gf-form max-width-22">\n\t\t\t\t\t<span class="gf-form-label width-7">\n\t\t\t\t\t\tRefresh\n\t\t\t\t\t\t<info-popover mode=right-normal>\n\t\t\t\t\t\t\tWhen to update the values of this variable.\n\t\t\t\t\t\t</info-popover>\n\t\t\t\t\t</span>\n\t\t\t\t\t<div class="gf-form-select-wrapper width-15">\n\t\t\t\t\t\t<select class=gf-form-input ng-model=current.refresh ng-options="f.value as f.text for f in refreshOptions"></select>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=gf-form>\n\t\t\t\t<span class="gf-form-label width-7">Query</span>\n\t\t\t\t<input type=text class=gf-form-input ng-model=current.query placeholder="metric name or tags query" ng-model-onblur ng-change=runQuery() required>\n\t\t\t</div>\n\t\t\t<div class=gf-form>\n\t\t\t\t<span class="gf-form-label width-7">\n\t\t\t\t\tRegex\n\t\t\t\t\t<info-popover mode=right-normal>\n\t\t\t\t\t\tOptional, if you want to extract part of a series n
8ame or metric node segment.\n\t\t\t\t\t</info-popover>\n\t\t\t\t</span>\n\t\t\t\t<input type=text class=gf-form-input ng-model=current.regex placeholder=/.*-(.*)-.*/ ng-model-onblur ng-change=runQuery()>\n\t\t\t</div>\n\t\t\t<div class="gf-form max-width-21">\n\t\t\t\t<span class="gf-form-label width-7">\n\t\t\t\t\tSort\n\t\t\t\t\t<info-popover mode=right-normal>\n\t\t\t\t\t\tHow to sort the values of this variable.\n\t\t\t\t\t</info-popover>\n\t\t\t\t</span>\n\t\t\t\t<div class="gf-form-select-wrapper max-width-14">\n\t\t\t\t\t<select class=gf-form-input ng-model=current.sort ng-options="f.value as f.text for f in sortOptions" ng-change=runQuery()></select>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div ng-show="current.type === \'datasource\'" class=gf-form-group>\n\t\t\t<h5 class=section-heading>Data source options</h5>\n\n\t\t\t<div class=gf-form>\n\t\t\t\t<label class="gf-form-label width-12">Type</label>\n\t\t\t\t<div class="gf-form-select-wrapper max-width-18">\n\t\t\t\t\t<select class=gf-form-input ng-model=current.query ng-options="f.value as f.text for f in datasourceTypes" ng-change=runQuery()></select>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class=gf-form>\n\t\t\t\t<label class="gf-form-label width-12">\n\t\t\t\t\tInstance name filter\n\t\t\t\t\t<info-popover mode=right-normal>\n\t\t\t\t\t\tRegex filter for which data source instances to choose from in\n\t\t\t\t\t\tthe variable value dropdown. Leave empty for all.\n\t\t\t\t\t\t<br><br>\n\t\t\t\t\t\tExample: <code>/^prod/</code>\n\n\t\t\t\t\t</info-popover>\n\t\t\t\t</label>\n\t\t\t\t<input type=text class="gf-form-input max-width-18" ng-model=current.regex placeholder=/.*-(.*)-.*/ ng-model-onblur ng-change=runQuery()>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div ng-if="current.type === \'adhoc\'" class=gf-form-group>\n\t\t\t<h5 class=section-heading>Options</h5>\n\t\t\t<div class="gf-form max-width-21">\n\t\t\t\t<span class="gf-form-label width-8">Data source</span>\n\t\t\t\t<div class="gf-form-select-wrapper max-width-14">\n\t\t\t\t\t<select class=gf-form-input ng-model=current.datasource ng-options="f.value as f.name for f in datasources" required ng-change=validate()>\n\t\t\t\t\t\t<option value="" ng-if=false></option>\n\t\t\t\t\t</select>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class="section gf-form-group" ng-show=variableTypes[current.type].supportsMulti>\n\t\t\t<h5 class=section-heading>Selection Options</h5>\n\t\t\t<div class=section>\n\t\t\t\t<gf-form-switch class=gf-form label=Multi-value label-class=width-10 tooltip="Enables multiple values to be selected at the same time" checked=current.multi on-change=runQuery()>\n\t\t\t\t</gf-form-switch>\n\t\t\t\t<gf-form-switch class=gf-form label="Include All option" label-class=width-10 checked=current.includeAll on-change=runQuery()>\n\t\t\t\t</gf-form-switch>\n\t\t\t</div>\n\t\t\t<div class=gf-form ng-if=current.includeAll>\n\t\t\t\t<span class="gf-form-label width-10">Custom all value</span>\n\t\t\t\t<input type=text class="gf-form-input max-width-15" ng-model=current.allValue placeholder="blank = auto">\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=gf-form-group ng-if="current.type === \'query\'">\n\t\t\t<h5>Value groups/tags (Experimental feature)</h5>\n\t\t\t<gf-form-switch class=gf-form label=Enabled label-class=width-10 checked=current.useTags on-change=runQuery()>\n\t\t\t</gf-form-switch>\n\t\t\t<div class="gf-form last" ng-if=current.useTags>\n\t\t\t\t<span class="gf-form-label width-10">Tags query</span>\n\t\t\t\t<input type=text class=gf-form-input ng-model=current.tagsQuery placeholder="metric name or tags query" ng-model-onblur>\n\t\t\t</div>\n\t\t\t<div class=gf-form ng-if=current.useTags>\n\t\t\t\t<li class="gf-form-label width-10">Tag values query</li>\n\t\t\t\t<input type=text class=gf-form-input ng-model=current.tagValuesQuery placeholder=apps.$tag.* ng-model-onblur>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=gf-form-group ng-show=current.options.length>\n\t\t\t<h5>Preview of values</h5>\n\t\t\t<div class=gf-form-inline>\n\t\t\t\t<div class=gf-form ng-repeat="option in current.options | limitTo: optionsLimit">
8\n <span class=gf-form-label>{{option.text}}</span>\n </div>\n <div class=gf-form ng-if="current.options.length > optionsLimit">\n <a class="gf-form-label btn-secondary" ng-click=showMoreOptions()>Show more</a>\n </div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class="alert alert-info gf-form-group" ng-if=infoText>\n\t\t\t{{infoText}}\n\t\t</div>\n\n\t\t<div class="gf-form-button-row p-y-0">\n\t\t\t<button type=submit class="btn btn-success" ng-show="mode === \'edit\'" ng-click=update();>Update</button>\n\t\t\t<button type=submit class="btn btn-success" ng-show="mode === \'new\'" ng-click=add();>Add</button>\n\t\t</div>\n\n\t</form>\n</div>\n\n')}]),e.exports=n},function(e,t){var n="public/app/features/upload/partials/upload.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=upload>\n\n <div class=page-header-canvas>\n <div class=page-container>\n <div class=page-header>\n <div class=page-header__inner>\n <span class=page-header__logo>\n \x3c!-- <i class="page-header__icon fa fa-upload" aria-hidden="true"></i> --\x3e\n </span>\n <div class=page-header__info-block>\n <h1 class=page-header__title>Upload</h1>\n <div class=page-header__sub-title>\n Use this form to upload your time-series data.\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div class=content>\n\n <div file-drop ng-if=!ctrl.isUploading class=dropzone ng-model=ctrl.fileDrop ng-change=ctrl.dropHandler()>\n\n <div class=dropinfosection>\n <i class="dropicon fa fa-cloud-upload"></i>\n <div class=dropinfo>\n Drag and drop anywhere to upload\n </div>\n <div class=dropsample>\n Currently supported formats are CSV\n (<a href=/sample/apollo-7.csv target=_blank alt="sample csv file">sample</a>)\n or National Instrument\'s TDMS format.\n </div>\n <label class="btn btn-secondary fileContainer">\n <i class="fa fa-folder-open" aria-hidden=true></i>\n Or choose file\n <input type=file name=file select-ng-files ng-model=ctrl.fileArray ng-change=ctrl.fileSelected()>\n </label>\n </div>\n </div>\n\n <div ng-if=!ctrl.isUploading class=daqnotice>\n <i class="fa fa-info-circle" aria-hidden=true></i>\n We\'re adding support for more native DAQ formats... If you have any requests\n for hardware that you would like to work with, \n <a href="mailto:[email protected]?subject=DAQ Hardware request">shoot us an email</a>!\n </div> \n\n <div class=progressbox>\n <div ng-if=ctrl.isUploading class=progress-container>\n <div ng-style="{ \'width\': ctrl.uploadProgressPercent + \'%\' }
8" class=progress-upload></div>\n <div class=progress-label>{{ ctrl.uploadProgressText }}</div>\n </div>\n </div>\n\n\n <div class="progressbox progressboximport" ng-if=ctrl.isImporting>\n <div class=progress-container>\n <div ng-style="{ \'width\': ctrl.importProgressPercent + \'%\' }" class=progress-import></div>\n <div class=progress-label>{{ ctrl.importProgressText }}</div>\n </div>\n </div>\n\n <div ng-if=ctrl.uploadError class=uploaderror>\n <b>Uh-oh! an error occured</b>: {{ ctrl.uploadError }}\n\n <br><br>\n <button ng-click=ctrl.reload() class="btn btn-success width-12">\n <i class="fa fa-refresh" aria-hidden=true></i>\n Try Again\n </button>\n </div>\n\n <div ng-if="ctrl.serverStatus === \'parsed\' && ctrl.uploadType === \'tdms\'" class=uploaddetails>\n\n <h3 class=page-sub-heading>Experiment Details</h3>\n\n <div class=gf-form>\n <label class="gf-form-label width-12">Experiment Title</label>\n <input ng-disabled=ctrl.isImporting type=text class="gf-form-input width-20" ng-model=ctrl.experimentTitle>\n </div>\n\n <div class=gf-form>\n <label class="gf-form-label width-12">Sample Rate (Hz)</label>\n <input ng-disabled=ctrl.isImporting type=text class="gf-form-input width-20" ng-model=ctrl.sampleFrequency>\n </div>\n \n <div class=gf-form>\n <label class="gf-form-label width-12">\n Create dashboard\n <info-popover ng-if="ctrl.timeColumn == -1">\n Automatically create a dashboard that includes all the sensors in this experiment.\n </info-popover>\n </label>\n <gf-form-switch ng-disabled=ctrl.isImporting checked=ctrl.createDashboard />\n </div>\n \n <div class=channels>\n <h3 class=page-sub-heading>Sensor Short Names</h3>\n\n <div ng-repeat="channel in ctrl.parseResult" class=gf-form>\n <label class="gf-form-label width-8">Channel {{ $index+1 }}</label>\n <input ng-disabled=ctrl.isImporting type=text class="gf-form-input width-24" ng-model=channel.sensorShortName>\n </div>\n </div>\n\n <div class=gf-form-button-row>\n <button ng-disabled=ctrl.isImporting ng-click=ctrl.importClicked() class="btn btn-success width-12">\n <i class="fa fa-save"></i>\n Import\n </button>\n <span ng-if=ctrl.message>{{ ctrl.message }}</span>\n </div>\n\n </div>\n\n <div ng-if="ctrl.serverStatus === \'parsed\' && ctrl.uploadType === \'csv\'" class=uploaddetails>\n\n <div class=preview>\n <h3 class=page-sub-heading>\n Data Preview<small><info-popover>Preview the first 10 lines of your uploaded data.</info-popover></small>\n </h3>\n <div class=preview-container>\n <table>\n <tr>\n <th>#</th>\n <th ng-repeat="elem in ctrl.csvHeaderLine track by $index">{{ elem }}</th>\n </tr>\n <tr ng-repeat="line in ctrl.csvFirstTen track by $index">\n <td>0{{ $index + 1 }}</td>\n <td ng-repeat="elem in line track by $index">\n {{ elem }}\n </td>\n </tr>\n </table>\n </div>\n </div>\n\n <h3 class=page-sub-heading>Import Details</h3>\n\n <div class=gf-form>\n <label class="gf-form-label width-14">Experiment Title</label>\n <input ng-disabled=ctrl.isImporting type=text class="gf-form-input width-20" ng-model=ctrl.experimentTitle>\n </div>\n\n <div ng-if=ctrl.compatibleMode class=gf-form>\n <label class="gf-form-label width-14">\n Generate Timestamps\n <info-popover>\n Generate timestamps for each row of data, based on the <i>Sample Frequency</i> and <i>Time Offset</i> fields.\n </info-popover>\n </label>\n <gf-form-switch ng-disabled=ctrl.isImporting checked=ctrl.generateTimestamps />\n </div>\n\n <div ng-if=ctrl.generateTimestamps class=gf-form>\n <label class="gf-form-label width-14">\n Sample Frequency (Hz)\n <info-popover>\n Frequency at which each row of data was captured, used to generate timestamps.\n </info-popover>\n </label>\n <input ng-disabled=ctrl.isImporting type=text class="gf-form-input width-20" ng-model=ctrl.sampleFrequency>\n </div>\n\n <div ng-if=ctrl.generateTimestamps class=gf-form>\n <label class="gf-form-label width-14">\n Time Offset\n <info-popover>\n Time for the first row of data. Use the <i>Time Unit</i> field below to set the unit. \n </info-popover>\n </label>\n <input ng-disabled=ctrl.isImporting type=text class="gf-form-input width-20" ng-model=ctrl.timeOffset>\n </div>\n\n <div ng-if="!(ctrl.compatibleMode && ctrl.generateTimestamps)" class=gf-form>\n <label class="gf-form-label width-14">\n Time Column\n <info-popover>\n Which column of the CSV file contains the time at which the sample \n was taken, relative to the beginning of the experiment.\n If no time column is available, select the <i>Generate timestamp</i> option.\n </info-popover>\n </label>\n <select ng-disabled=ctrl.isImporting class="gf-form-input width-20" ng-model=ctrl.timeColumn>\n <option value="" disabled=disabled>Select a column</option>\n <option ng-repeat="f in ctrl.timeColumnOptions" value={{f.index}} ng-disabled=f.disabled>{{f.value}}</option>\n </select>\n </div>\n\n <div class=gf-form>\n <label class="gf-form-label width-14">\n Time Unit\n <info-popover ng-if="ctrl.timeColumn != -1">\n Time unit used in the the time column.\n </info-popover>\n <info-popover ng-if="ctrl.timeColumn == -1">\n Time unit used in the <i>Time Offset</i> field.\n </info-popover>\n </label>\n <select ng-disabled=ctrl.isImporting class="gf-form-input width-20" ng-model=ctrl.timeUnit ng-options="f.text for f in ctrl.timeUnits">\n </select>\n </div>\n\n <div class=gf-form>\n <label class="gf-form-label width-14">\n Create Dashboard\n <info-popover>\n Automatically create a dashboard that includes all the sensors in this experiment.\n </info-popover>\n </label>\n <gf-form-switch ng-disabled=ctrl.isImporting checked=ctrl.createDashboard />\n </div>\n\n <div class=gf-form>\n <label class="gf-form-label width-14">\n Compatibility mode (slow)\n <info-popover>\n Enable compatibility filter. Use this if your timestamps contain a decimal point, \n if the CSV file contains NaN values, or if you are experiencing other parsing issues \n with the import process. This will slow down the import, avoid for large files.\n This also enables the <i>Generate timestamp</i> option.\n </info-popover>\n </label>\n <gf-form-switch ng-disabled=ctrl.isImporting checked=ctrl.compatibleMode ng-click=ctrl.compatibleModeClicked() id=compatibleModeCheckbox />\n </div>\n\n <div class=error-message ng-if=ctrl.message>\n <pre>{{ ctrl.message }}</pre>\n </div>\n\n <div class=gf-form-button-row>\n <button ng-disabled=ctrl.isImporting ng-click=ctrl.importClicked() class="btn btn-success width-12">\n <i class="fa fa-save"></i>\n Import\n </button>\n </div>\n\n\n </div>\n\n </div>\n\n\n</div>')}]),e.exports=n},function(e,t){var n="public/app/partials/confirm_modal.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=modal-body ng-cloak>\n\t<div class=modal-header>\n\t\t<h2 class=modal-header-title>\n\t\t\t<i class="fa {{icon}}"></i>\n\t\t\t<span class=p-l-1>\n\t\t\t\t{{title}}\n\t\t\t</span>\n\t\t</h2>\n\n\t\t<a class=modal-header-close ng-click=dismiss();>\n\t\t\t<i class="fa fa-remove"></i>\n\t\t</a>\n\t</div>\n\n\t<div class="modal-content text-center">\n\n\t\t<div class=confirm-modal-text>\n\t\t\t{{text}}\n\t\t\t<div class=confirm-modal-text2 ng-show=text2>\n\t\t\t\t{{text2}}\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=modal-content-confirm-text ng-if=confirmText>\n\t\t\t<input type=text class="gf-form-input width-16" style=display:inline-block placeholder="Type {{confirmText}} to confirm" ng-model=confirmInput ng-change=updateConfirmText(confirmInput)>\n\t\t</div>\n\n\t\t<div class=confirm-modal-buttons>\n\t\t\t<button ng-show=onAltAction type=button class="btn btn-success" ng-click=dismiss();onAltAction();>{{altActionText}}</button>\n\t\t\t<button type=button class="btn btn-danger" ng-click=onConfirm();dismiss(); ng-disabled=!confirmTextValid give-focus=true>{{yesText}}</button>\n\t\t\t<button type=button class="btn btn-inverse" ng-click=dismiss()>{{noText}}</button>\n\t\t</div>\n\t</div>\n\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/partials/dashboard.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'\n<div dash-class ng-if="ctrl.dashboard && (ctrl.dashboard.meta.isSnapshot || ctrl.experiment)">\n\t<dashnav dashboard=ctrl.dashboard experiment=ctrl.experiment></dashnav>\n\n\t<div scroll ng-scroll=ctrl.onScroll class="scroll-canvas scroll-canvas--dashboard" page-scrollbar>\n <dashboard-settings dashboard=ctrl.dashboard ng-if=ctrl.dashboardViewState.state.editview class=dashboard-settings>\n </dashboard-settings>\n\n\t\t<div class=dashboard-container ui-on-drop=ctrl.onDrop($data) drop-channel=sensor>\n\t\t\t<dashboard-submenu ng-if=ctrl.dashboard.meta.submenuEnabled dashboard=ctrl.dashboard>\n\t\t\t</dashboard-submenu>\n\n <dashboard-grid get-panel-container=ctrl.getPanelContainer>\n </dashboard-grid>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/partials/edit_json.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div ng-controller=JsonEditorCtrl>\n\t<div class=tabbed-view-header>\n\t\t<h2 class=tabbed-view-title>\n\t\t\tJSON\n\t\t</h2>\n\n\t\t<button class=tabbed-view-close-btn ng-click=dismiss()>\n\t\t\t<i class="fa fa-remove"></i>\n\t\t</button>\n\t</div>\n\n\t<div class=tabbed-view-body>\n\t\t<div class=gf-form>\n\t\t\t<code-editor content=json data-mode=json data-max-lines=20></code-editor>\n\t\t</div>\n\n\t\t<div class=gf-form-button-row>\n\t\t\t<button type=button class="btn btn-success" ng-show=canUpdate ng-click="update(); dismiss();">Update</button>\n\t\t\t<button class="btn btn-secondary" ng-if=canCopy clipboard-button=getContentForClipboard()>\n\t\t\t\t<i class="fa fa-clipboard"></i> Copy to Clipboard\n\t\t\t</button>\n\t\t</div>\n\t</div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/partials/error.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=navModel></page-header>\n\n<div class="page-container page-body">\n <div class="panel-container error-container">\n <div class="error-column graph-box">\n <div class=error-row>\n <div class="error-column error-space-between graph-percentage">\n <p>100%</p>\n <p>80%</p>\n <p>60%</p>\n <p>40%</p>\n <p>20%</p>\n <p>0%</p>\n </div>\n <div class="error-column image-box">\n <img src=public/img/graph404.svg width=100%>\n <div class="error-row error-space-between">\n <p class=graph-text>Then</p>\n <p class=graph-text>Now</p>\n </div>\n </div>\n </div>\n </div>\n <div class="error-column info-box">\n <div class="error-row current-box">\n <p class=current-text>current</p>\n </div>\n <div class=error-row style=flex:1>\n <i class="fa fa-minus error-minus"></i>\n <div class="error-column error-space-between error-full-width">\n <div class="error-row error-space-between">\n <p>Chances you are on the page you are looking for.</p>\n <p class=left-margin>0%</p>\n </div>\n <div>\n <h3>Sorry for the inconvenience</h3>\n <p>Please go back to your\n <a href={{appSubUrl}}/ class=error-link>home dashboard</a> and try again.</p>\n <p>If the error persists, seek help on the\n <a href=https://community.grafana.com target=_blank class=error-link>community site</a>.</p>\n </div>\n </div>\n </div>\n </div>\n <span class=react-resizable-handle style=cursor:default></span>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/partials/home.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'\n<div ng-if=ctrl.hasLoaded>\n\n <div ng-if=!ctrl.hasExperiments>\n\n <div class=page-header-canvas>\n <div class=page-container>\n <div class=page-header>\n <div class=page-header__inner>
8\n <span class=page-header__logo>\n <i class="page-header__icon fa fa-cloud-upload"></i>\n </span>\n <div class=page-header__info-block>\n <h1 class=page-header__title>Upload an experiment to get started</h1>\n <div class=page-header__sub-title>Choose one of the following options</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-if=!ctrl.matlabPluginUrl class=home-loader>\n <i class="fa fa-circle-o-notch fa-spin"></i>\n </div>\n\n <div ng-if=ctrl.matlabPluginUrl class=box-container>\n\n <div class=box>\n <div class=title>\n <i class="fa fa-cloud-upload" aria-hidden=true></i>\n Upload a file\n </div>\n <p>\n If your data is already available in comma-separated values (.csv)\n or National Instruments\' TDMS (.tdms) format, \n head over to the upload section to upload an experiment.\n </p>\n <p>\n CURVE currently supports time-series data only.\n </p>\n <p>\n </p><div class=preview-video>\n <style>.embed-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;max-width:100%}.embed-container embed,.embed-container iframe,.embed-container object{position:absolute;top:0;left:0;width:100%;height:100%}</style><div class=embed-container><iframe src=https://www.youtube.com/embed/JsfILvkV5uk frameborder=0 allowfullscreen></iframe></div>\n </div>\n <p></p>\n <p>\n <a class="btn btn-secondary btn-large" ng-href=/upload>\n <i class="fa fa-cloud-upload" aria-hidden=true></i>\n <i>Upload</i>\n </a> \n </p>\n </div>\n\n <div class=box>\n <div class=title>\n <i class="fa fa-table" aria-hidden=true></i>\n Use the MATLAB Plugin\n </div>\n <p>\n Download the plugin below if you already use MATLAB to manage your \n experiment data. \n </p>\n <p>\n </p><div class=preview-video>\n <style>.embed-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;max-width:100%}.embed-container embed,.embed-container iframe,.embed-container object{position:absolute;top:0;left:0;width:100%;height:100%}</style><div class=embed-container><iframe src=https://www.youtube.com/embed/HBH_FEL2JAo frameborder=0 allowfullscreen></iframe></div>\n </div>\n <p></p>\n \x3c!-- https://www.youtube.com/watch?v=HBH_FEL2JAo --\x3e\n <p>\n NOTE: Requires MATLAB 2017b or later. If you don\'t have MATLAB already, \n you can \n <a href=https://www.mathworks.com/campaigns/products/trials.html alt="matlab trial">\n download it here.\n </a>\n </p>\n\n <p>\n <a class="btn btn-secondary btn-large" ng-href={{ctrl.matlabPluginUrl}}>\n <i class="fa fa-download" aria-hidden=true></i>\n <i>MATLAB Plugin</i>\n </a> \n </p>\n </div>\n\n\n </div>\n\n </div>\n\n\n <div class=homepage ng-if=ctrl.hasExperiments>\n\n <div class=page-header-canvas>\n <div class=page-container>\n <div class=page-header>\n <div class=page-header__inner>\n <div class=page-header__info-block>\n <h1 class=page-header__title>Home</h1>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div class=box-container>\n\n <div class=box>\n <div class=title>\n <i class="fa fa-cloud-upload" aria-hidden=true></i>\n Upload an experiment\n </div>\n <p>\n Head over to the upload section to upload your time-series data \n and create an experiment.\n </p>\n <p>\n <a class="btn btn-secondary btn-large" ng-href=/upload>\n <i class="fa fa-cloud-upload" aria-hidden=true></i>\n <i>Upload</i>\n </a> \n </p>\n Supported formats:\n <ul>\n <li>\n CSV (Comma-separated values) \n <i><a target=_blank href=/sample/apollo-7.csv alt="csv sample file">see sample.</a></i>\n </li>\n <li>\n TDMS (National Instruments)\n </li>\n </ul>\n </div>\n\n <div class=box>\n <div class=title>\n <i class="fa fa-download" aria-hidden=true></i>\n Try the MATLAB Plugin\n </div>\n <p>\n <a ng-if=ctrl.matlabPluginUrl ng-href={{ctrl.matlabPluginUrl}}>\n Download the \n <i>MATLAB Plugin</i>\n here\n (requires MATLAB 2017b or later).\n </a> \n </p><p>\n </p></div>\n\n <div class="box tips">\n <div class=title>\n <i class="fa fa-lightbulb-o" aria-hidden=true></i>\n Tips\n </div>\n <ul>\n <li>Ctrl/cmd + click on a graph to add an annotation.</li>\n <li>\n Hit ctrl/cmd + O when hovering over a panel to enable \n <i>shared tooltip</i> mode. The tooltip then appears on all panels \n simultaenously. Hit it again to cycle through the 3 tooltip modes.\n </li>\n </ul>\n </div>\n\n\n <div class=box>\n <div class=title>\n <i class="fa fa-file-text-o" aria-hidden=true></i>\n What\'s new?\n </div>\n\n \x3c!--\n <div class="releasenotes">\n <p class="releasedate">\n Release #35\n </p>\n <ul>\n <li>Ability to upload videos</li>\n <li>Use the "SET REF" feature to sync your video with your data</li>\n </ul>\n </div>\n --\x3e\n\n <div class=releasenotes>\n <p class=releasedate>\n Release #35\n </p>\n <ul>\n <li>Experiment video + video sync (beta!)</li>\n <li>Ability to edit experiment start & end times</li>\n </ul>\n </div>\n\n <div class=releasenotes>\n <p class=releasedate>\n Release #34\n </p>\n <ul>\n <li>Ability to alias a sensor on a panel.</li>\n </ul>\n </div>\n\n <div class=releasenotes>\n <p class=releasedate>\n Release #33\n </p>\n <ul>\n <li>
8Added support for uploading National Instruments TDMS files.</li>\n <li>Enabled automatic zoom up to 1GHz sampling rate.</li>\n <li>Added CSV Upload + Howto Video.</li>\n </ul>\n </div>\n\n </div>\n\n <div class=box>\n <div class=title>\n <i class="fa fa-lightbulb-o" aria-hidden=true></i>\n Using the MATLAB Plugin\n </div>\n <div class=preview-video>\n <style>.embed-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;max-width:100%}.embed-container embed,.embed-container iframe,.embed-container object{position:absolute;top:0;left:0;width:100%;height:100%}</style><div class=embed-container><iframe src=https://www.youtube.com/embed/HBH_FEL2JAo frameborder=0 allowfullscreen></iframe></div>\n </div>\n <p>\n Quick introduction to the MATLAB Plugin.\n </p>\n </div>\n\n <div class=box>\n <div class=title>\n <i class="fa fa-lightbulb-o" aria-hidden=true></i>\n Uploading CSV files\n </div>\n <div class=preview-video>\n <style>.embed-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;max-width:100%}.embed-container embed,.embed-container iframe,.embed-container object{position:absolute;top:0;left:0;width:100%;height:100%}</style><div class=embed-container><iframe src=https://www.youtube.com/embed/JsfILvkV5uk frameborder=0 allowfullscreen></iframe></div>\n </div>\n <p>\n How to get started uploading CSV files and creating dashboards.\n </p>\n </div>\n\n <div class=box>\n <div class=title>\n <i class="fa fa-envelope-o" aria-hidden=true></i>\n Contact\n </div>\n <p>Problems, questions, concerns ? Email us at <a href=mailto:[email protected]>[email protected]</a>.</p>\n </div>\n\n\n </div>\n\n\n </div>\n\n</div>')}]),e.exports=n},function(e,t){var n="public/app/partials/login.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class="login container">\n <div class=login-content>\n <div class=login-branding>\n \x3c!-- <img class="logo-icon" src="public/img/grafana_icon.svg" alt="Grafana" /> --\x3e\n \x3c!-- <i class="icon-gf icon-gf-grafana_wordmark"></i> --\x3e\n <a href=/ target=_self>\n <img src=/public/img/curve-logo-white-transparent.svg width=200px height=40px>\n </a>\n </div>\n <div class=login-outer-box>\n <div class=login-inner-box id=login-view>\n <form name=loginForm class="login-form-group gf-form-group" ng-hide=disableLoginForm>\n <div class=login-form>\n <input type=text name=username class="gf-form-input login-form-input" required ng-model=formModel.user placeholder={{loginHint}} autofocus>\n </div>\n <div class=login-form>\n <input type=password name=password class="gf-form-input login-form-input" required ng-model=formModel.password id=inputPassword placeholder=password>\n </div>\n <div class=login-button-group>\n <button type=submit class="btn btn-large p-x-2" ng-click=submit(); ng-class="{\'btn-inverse\': !loginForm.$valid, \'btn-primary\': loginForm.$valid}">\n Log In\n </button>\n <div class="small login-button-forgot-password">\n <a href=user/password/send-reset-email>\n Forgot your password?\n </a>\n </div>\n </div>\n </form>\n <div class="text-center login-divider" ng-show=oauthEnabled>\n <div>\n <div class=login-divider-line>\n </div>\n </div>\n <div>\n <span class=login-divider-text>\n <span ng-hide=disableLoginForm>or</span>\n </span>\n </div>\n <div>\n <div class=login-divider-line>\n </div>\n </div>\n </div>\n <div class=clearfix></div>\n <div class="login-oauth text-center" ng-show=oauthEnabled>\n <a class="btn btn-medium btn-service btn-service--google login-btn" href=login/google target=_self ng-if=oauth.google>\n <i class="btn-service-icon fa fa-google"></i>\n Sign in with Google\n </a>\n <a class="btn btn-medium btn-service btn-service--github login-btn" href=login/github target=_self ng-if=oauth.github>\n <i class="btn-service-icon fa fa-github"></i>\n Sign in with GitHub\n </a>\n <a class="btn btn-medium btn-inverse btn-service btn-service--grafanacom login-btn" href=login/grafana_com target=_self ng-if=oauth.grafana_com>\n <i class=btn-service-icon></i>\n Sign in with Grafana.com\n </a>\n <a class="btn btn-medium btn-inverse btn-service btn-service--oauth login-btn" href=login/generic_oauth target=_self ng-if=oauth.generic_oauth>\n <i class="btn-service-icon fa fa-sign-in"></i>\n Sign in with {{oauth.generic_oauth.name}}\n </a>\n </div>
8\n <div class=login-signup-box ng-show=!disableUserSignUp>\n <div class="login-signup-title p-r-1">\n New to Curve?\n </div>\n <a href=/ target=_self class="btn btn-medium btn-signup btn-p-x-2">\n More Info\n </a>\n </div>\n <br>\n\n\n \x3c!--\n <p style="font-style: italic; opacity: 0.5;">\n <a target="_blank" href="https://vimeo.com/298204261">Click here to check out the Curve preview clip!</a>\n </p>\n --\x3e\n\n </div>\n <div class="login-inner-box remove hidden" id=change-password-view>\n <div class="text-left login-change-password-info">\n <h5>Change Password</h5>\n Before you can get started with awesome dashboards we need you to make your account more secure by changing your password.\n <br/>You can change your password again later.\n </div>\n <form class="login-form-group gf-form-group">\n <div class=login-form>\n <input type=password id=newPassword name=newPassword class="gf-form-input login-form-input" required ng-model=command.newPassword placeholder="New password">\n </div>\n <div class=login-form>\n <input type=password name=confirmNew class="gf-form-input login-form-input" required ng-model=command.confirmNew placeholder="Confirm new password">\n </div>\n <div class="login-button-group login-button-group--right text-right">\n <a class="btn btn-link" ng-click=skip();>\n Skip\n <info-popover mode=no-padding>\n If you skip you will be promted to change password next time you login.\n </info-popover>\n </a>\n <button type=submit class="btn btn-large p-x-2" ng-click=changePassword(); ng-class="{\'btn-inverse\': !loginForm.$valid, \'btn-success\': loginForm.$valid}">\n Save\n </button>\n </div>\n </form>\n\n\n </div>\n <div class=clearfix></div>\n </div>\n\n </div>\n\n\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/partials/modal.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=modal-header>\n <button type=button class=close data-dismiss=modal aria-hidden=true>Ã</button>\n <h3>{{modal.title}}</h3>\n</div>\n<div class=modal-body>\n\n <div ng-bind-html=modal.body></div>\n\n</div>\n<div class=modal-footer>\n <button type=button class="btn btn-danger" ng-click=dismiss()>Close</button>\n</div>')}]),e.exports=n},function(e,t){var n="public/app/partials/panelgeneral.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=editor-row>\n\t<div class="section gf-form-group">\n\t\t<h5 class=section-heading>Info</h5>\n\t\t<div class=gf-form>\n\t\t\t<span class="gf-form-label width-7">Title</span>\n\t\t\t<input type=text class="gf-form-input width-25" ng-model=ctrl.panel.title ng-change=ctrl.titleChanged()>\n\t\t</div>\n\t\t<div class="gf-form gf-form--v-stretch">\n\t\t\t<span class="gf-form-label width-7">Description</span>\n\t\t\t<textarea class="gf-form-input width-25" rows=3 ng-model=ctrl.panel.description placeholder="Panel description, supports markdown & links"></textarea>\n\t\t</div>\n <gf-form-switch class=gf-form label-class=width-7 switch-class=max-width-6 label=Transparent checked=ctrl.panel.transparent on-change=ctrl.render()></gf-form-switch>\n\t</div>\n\n\t<panel-links-editor panel=ctrl.panel></panel-links-editor>\n\n\n</div>')}]),e.exports=n},function(e,t){var n="public/app/partials/reset_password.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=navModel></page-header>\n\n<div class="page-container page-body">\n\t<div class=signup>\n\t\t<h3 class=p-b-1>Reset password</h3>\n\t\t<form name=sendResetForm class="login-form gf-form-group" ng-show="mode === \'send\'">\n\t\t\t<div class=gf-form>\n\t\t\t\t\t<span class="gf-form-label width-7">User</span>\n\t\t\t\t\t<input type=text name=username class="gf-form-input max-width-14" required ng-model=formModel.userOrEmail placeholder="email or username">\n\t\t\t</div>\n\t\t\t<div class=gf-form-button-row>\n\t\t\t\t<button type=submit class="btn btn-success" ng-click=sendResetEmail(); ng-disabled=!sendResetForm.$valid>\n\t\t\t\t\tReset Password\n\t\t\t\t</button>\n\t\t\t\t<a href=login class="btn btn-inverse">\n\t\t\t\t\tBack\n\t\t\t\t</a>\n\n\t\t\t</div>\n\t\t</form>\n\t\t<div ng-show="mode === \'email-sent\'">\n\t\t\tAn email with a reset link as been sent to the email address. <br>\n\t\t\tYou should receive it shortly.\n\t\t\t<div class=p-t-1>\n\t\t\t\t<a href=login class="btn btn-success p-t-1">\n\t\t\t\t\tLogin\n\t\t\t\t</a>\n\t\t\t</div>\n\t\t</div>\n\t\t<form name=resetForm class="login-form gf-form-group" ng-show="mode === \'reset\'">\n\t\t\t<div class=gf-form>\n\t\t\t\t<span class="gf-form-label width-9">New Password</span>\n\t\t\t\t<input type=password name=NewPassword class="gf-form-input max-width-14" required ng-minlength=4 ng-model=formModel.newPassword placeholder=password watch-change="formModel.newPassword = inputValue;">\n\t\t\t</div>\n\t\t\t<div class=gf-form>\n\t\t\t\t<span class="gf-form-label width-9">Confirm Password</span>\n\t\t\t\t<input type=password name=ConfirmPassword class="gf-form-input max-width-14" required ng-minlength=4 ng-model=formModel.confirmPassword placeholder="confirm password">\n\t\t\t</div>\n\t\t\t<div class=signup__password-strength>\n\t\t\t\t<password-strength password=formModel.newPassword></password-strength>\n\t\t\t</div>\n\t\t\t<div class=gf-form-button-row>\n\t\t\t\t<button type=submit class="btn btn-success" ng-click=submitReset(); ng-disabled=!resetForm.$valid>\n\t\t\t\t\tReset Password\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</form>\n\t</div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/partials/signup_invited.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<page-header model=navModel></page-header>\n\n<div class="page-container page-body">\n\t<h3 class=page-sub-heading>Hello {{greeting}}.</h3>\n\n\t<div class="modal-tagline p-b-2">\n\t\t<em>{{invitedBy}}</em> has invited you to join Grafana and the organization <span class=highlight-word>{{contextSrv.user.orgName}}</span><br>Please complete the following to accept your invitation and continue:\n\t</div>\n\n\t<form name=inviteForm class="login-form gf-form-group">\n\t\t<div class=gf-form>\n\t\t\t<span class="gf-form-label width-7">Email</span>\n\t\t\t<input type=email name=email class="gf-form-input max-width-21" required ng-model=formModel.email placeholder=Email>\n\t\t</div>\n\t\t<div class=gf-form>\n\t\t\t<span class="gf-form-label width-7">Name</span>\n\t\t\t<input type=text name=name class="gf-form-input max-width-21" ng-model=formModel.name placeholder="Name (optional)">\n\t\t</div>\n\t\t<div class=gf-form>\n\t\t\t<span class="gf-form-label width-7">
8Username</span>\n\t\t\t<input type=text name=username class="gf-form-input max-width-21" required ng-model=formModel.username placeholder=Username>\n\t\t</div>\n\t\t<div class=gf-form>\n\t\t\t<span class="gf-form-label width-7">Password</span>\n\t\t\t<input type=password name=password class="gf-form-input max-width-21" required ng-model=formModel.password id=inputPassword placeholder=password>\n\t\t</div>\n\n\t\t<div style=margin-left:7.5rem;width:254px>\n\t\t\t<password-strength password=formModel.password></password-strength>\n\t\t</div>\n\n\t\t<div class=gf-form-button-row>\n\t\t\t<button type=submit class="btn btn-success" ng-click=submit(); ng-disable=!inviteForm.$valid>\n\t\t\t\tSign Up\n\t\t\t</button>\n\t\t</div>\n\t</form>\n</div>\n\n\n')}]),e.exports=n},function(e,t){var n="public/app/partials/signup_step2.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'\n<header class=signup-header>\n <div class=signup-header-container>\n <div class=logo>\n <a href=/ target=_self>\n <img src=public/img/curve-logo-even-white.svg width=150px height=30px alt="curve logo">\n </a>\n </div>\n </div>\n\n</header>\n\n\n<div class="page-container page-body">\n\n <h3>Create your account</h3>\n <br/>\n\n <div class=signup>\n <form name=signUpForm class="login-form gf-form-group">\n <div class=gf-form ng-if=verifyEmailEnabled>\n <span class="gf-form-label width-12">\n Email code<tip>Email verification code (sent to your email)</tip>\n </span>\n <input type=text class="gf-form-input max-width-14" ng-model=formModel.code required>\n </div>\n\n <div class=gf-form ng-if=!autoAssignOrg>\n <span class="gf-form-label width-12">Organization name</span>\n <input type=text name=orgName class="gf-form-input max-width-14" ng-model=formModel.orgName placeholder="Name your organization">\n </div>\n\n \x3c!--\n <div class="gf-form">\n <span class="gf-form-label width-9">Your name</span>\n <input type="text" name="name" class="gf-form-input max-width-14" ng-model="formModel.name" placeholder="(optional)">\n </div>\n --\x3e\n\n <div class=gf-form>\n <span class="gf-form-label width-12">Email</span>\n <input type=text class="gf-form-input max-width-14" required ng-model=formModel.username placeholder=Email autocomplete=off>\n </div>\n <div class=gf-form>\n <span class="gf-form-label width-12">Password</span>\n <input type=password class="gf-form-input max-width-14" required ng-model=formModel.password id=inputPassword placeholder=Password autocomplete=off>\n </div>\n <div class=gf-form>\n <label class="gf-form-label width-12">\n Monthly newsletter\n <info-popover>\n Check this box to receive the CURVE Newsletter. \n You will receive 1 email per month at the most.\n </info-popover>\n </label>\n <gf-form-switch checked=formModel.newsletter />\n </div>\n\n <div class=signup__password-strength>\n <password-strength password=formModel.password></password-strength>\n </div>\n\n <br/>\n <div class="width-24 signup-beta-text">\n CURVE is currently in free public Beta.\n </div>\n\n <div class="gf-form-button-row p-t-3">\n <button type=submit class="btn btn-success" ng-click=ctrl.submit(); ng-disabled=!signUpForm.$valid>\n Sign Up\n </button>\n <a href=login target=_self class="btn btn-inverse">\n Back\n </a>\n </div>\n </form>\n </div>\n</div>')}]),e.exports=n},function(e,t){var n="public/app/partials/valueSelectDropdown.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=variable-link-wrapper>\n\t<a ng-click=vm.show() class=variable-value-link>\n\t\t{{vm.linkText}}\n\t\t<span ng-repeat="tag in vm.selectedTags" bs-tooltip=tag.valuesText data-placement=bottom>\n\t\t\t<span class=label-tag tag-color-from-name=tag.text>\n\t\t\t\t <i class="fa fa-tag"></i> \n\t\t\t\t{{tag.text}}\n\t\t\t</span>\n\t\t</span>\n\t\t<i class="fa fa-caret-down" style=font-size:12px></i>\n\t</a>\n\n\t<input type=text class=gf-form-input style=display:none ng-keydown=vm.keyDown($event) ng-model=vm.
8search.query ng-change=vm.queryChanged()>\n\n\t<div class=variable-value-dropdown ng-if=vm.dropdownVisible ng-class="{\'multi\': vm.variable.multi, \'single\': !vm.variable.multi}">\n\t\t<div class=variable-options-wrapper>\n\t\t\t<div class=variable-options-column>\n\t\t\t\t<a class=variable-options-column-header ng-if=vm.variable.multi ng-class="{\'many-selected\': vm.selectedValues.length > 1}" bs-tooltip="\'Clear selections\'" data-placement=top ng-click=vm.clearSelections()>\n\t\t\t\t\t<span class=variable-option-icon></span>\n\t\t\t\t\tSelected ({{vm.selectedValues.length}})\n\t\t\t\t</a>\n\t\t\t\t<a class="variable-option pointer" ng-repeat="option in vm.search.options" ng-class="{\'selected\': option.selected, \'highlighted\': $index === vm.highlightIndex}" ng-click="vm.selectValue(option, $event)">\n\t\t\t\t\t<span class=variable-option-icon></span>\n\t\t\t\t\t<span>{{option.text}}</span>\n\t\t\t\t</a>\n\t\t\t</div>\n\t\t\t<div class=variable-options-column ng-if=vm.tags.length>\n\t\t\t\t<div class="variable-options-column-header text-center">\n\t\t\t\t\tTags\n\t\t\t\t</div>\n\t\t\t\t<a class="variable-option-tag pointer" ng-repeat="tag in vm.tags" ng-click="vm.selectTag(tag, $event)" ng-class="{\'selected\': tag.selected}">\n\t\t\t\t\t<span class="fa fa-fw variable-option-icon"></span>\n\t\t\t\t\t<span class=label-tag tag-color-from-name=tag.text>{{tag.text}} <i class="fa fa-tag"></i> </span>\n\t\t\t\t</a>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/app/testdata/partials/query.editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<query-editor-row query-ctrl=ctrl has-text-edit-mode=false>\n\t<div class=gf-form-inline>\n\t\t<div class=gf-form>\n\t\t\t<label class="gf-form-label query-keyword width-7">Scenario</label>\n\t\t\t<div class="gf-form-select-wrapper width-15">\n\t\t\t\t<select class=gf-form-input ng-model=ctrl.target.scenarioId ng-options="v.id as v.name for v in ctrl.scenarioList" ng-change=ctrl.scenarioChanged()></select>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class="gf-form gf-form gf-form--grow" ng-if=ctrl.scenario.stringInput>\n\t\t\t<label class="gf-form-label query-keyword">String Input</label>\n <input type=text class=gf-form-input placeholder={{ctrl.scenario.stringInput}} ng-model=ctrl.target.stringInput ng-change=ctrl.refresh() ng-model-onblur>\n\t\t</div>\n\t\t<div class=gf-form>\n\t\t\t<label class="gf-form-label query-keyword">Alias</label>\n\t\t\t<input type=text class="gf-form-input max-width-7" placeholder=optional ng-model=ctrl.target.alias ng-change=ctrl.refresh() ng-model-onblur>\n\t\t</div>\n\t\t<div class="gf-form gf-form--grow">\n\t\t\t<div class="gf-form-label gf-form-label--grow"></div>\n\t\t</div>\n\t</div>\n\t<div class=gf-form-inline ng-if="ctrl.scenario.id === \'manual_entry\'">\n\t\t<div class="gf-form gf-form">\n\t\t\t<label class="gf-form-label query-keyword width-7">New value</label>\n <input type=number class="gf-form-input width-15" placeholder=value ng-model=ctrl.newPointValue>\n\t\t\t<label class="gf-form-label query-keyword">Time</label>\n <input type=string class="gf-form-input width-12" placeholder=time ng-model=ctrl.newPointTime input-datetime>\n\t\t\t<button class="btn btn-secondary gf-form-btn" ng-click=ctrl.addPoint()>Add</button>\n\t\t\t<label class="gf-form-label query-keyword">All values</label>\n\t\t\t<gf-form-dropdown css-class=width-12 model=ctrl.selectedPoint get-options=ctrl.getPoints() on-change=ctrl.pointSelected($option)>\n\t\t\t</gf-form-dropdown>\n\t\t</div>\n\t\t<div class="gf-form gf-form" ng-if="ctrl.selectedPoint.value !== null">\n\t\t\t<button class="btn btn-danger gf-form-btn" ng-click=ctrl.deletePoint()>Delete</button>\n\t\t</div>\n\t\t<div class="gf-form gf-form--grow">\n\t\t\t<div class="gf-form-label gf-form-label--grow"></div>\n\t\t</div>\n\t</div>\n</query-editor-row>\n\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/datasource/cloudwatch/partials/annotations.editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<cloudwatch-query-parameter target=ctrl.annotation datasource=ctrl.datasource></cloudwatch-query-parameter>\n\n<div class=editor-row style="padding:2rem 0">\n\t<div class=section>\n\t\t<h5>Prefix matching</h5>\n\t\t<div class=gf-form-inline>\n\t\t\t<gf-form-switch class=gf-form label=Enable checked=ctrl.annotation.prefixMatching switch-class=max-width-6></gf-form-switch>\n\t\t\t<div class=gf-form ng-if=ctrl.annotation.prefixMatching>\n\t\t\t\t<span class=gf-form-label>Action</span>\n\t\t\t\t<input type=text class=gf-form-input ng-model=ctrl.annotation.actionPrefix>\n\t\t\t</div>\n\t\t\t<div class=gf-form ng-if=ctrl.annotation.prefixMatching>\n\t\t\t\t<span class=gf-form-label>Alarm Name</span>\n\t\t\t\t<input type=text class=gf-form-input ng-model=ctrl.annotation.alarmNamePrefix>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/datasource/cloudwatch/partials/config.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<h3 class=page-heading>CloudWatch details</h3>\n\n<div class="gf-form-group max-width-30">\n <div class="gf-form gf-form-select-wrapper">\n <label class="gf-form-label width-13">Auth Provider</label>\n <select class="gf-form-input gf-max-width-13" ng-model=ctrl.current.jsonData.authType ng-options="f.value as f.name for f in ctrl.authTypes"></select>\n </div>\n\n <div class=gf-form ng-show=\'ctrl.current.jsonData.authType == "credentials"\'>\n <label class="gf-form-label width-13">Credentials profile name</label>\n <input type=text class="gf-form-input max-width-18" ng-model=ctrl.current.database placeholder=default>\n <info-popover mode=right-absolute>\n Credentials profile name, as specified in ~/.aws/credentials, leave blank for default\n </info-popover>\n </div>\n\n <div class=gf-form ng-show=\'ctrl.current.jsonData.authType == "keys"\'>\n <label class="gf-form-label width-13">Access key ID </label>\n <label class="gf-form-label width-13" ng-show=ctrl.accessKeyExist>Configured</label>\n <a class="btn btn-secondary gf-form-btn" type=submit ng-click=ctrl.resetAccessKey() ng-sh
8ow=ctrl.accessKeyExist>Reset</a>\n <input type=text class="gf-form-input max-width-18" ng-hide=ctrl.accessKeyExist ng-model=ctrl.current.secureJsonData.accessKey>\n </div>\n\n <div class=gf-form ng-show=\'ctrl.current.jsonData.authType == "keys"\'>\n <label class="gf-form-label width-13">Secret access key</label>\n <label class="gf-form-label width-13" ng-show=ctrl.secretKeyExist>Configured</label>\n <a class="btn btn-secondary gf-form-btn" type=submit ng-click=ctrl.resetSecretKey() ng-show=ctrl.secretKeyExist>Reset</a>\n <input type=text class="gf-form-input max-width-18" ng-hide=ctrl.secretKeyExist ng-model=ctrl.current.secureJsonData.secretKey>\n </div>\n\n <div class=gf-form ng-show=\'ctrl.current.jsonData.authType == "arn"\'>\n <label class="gf-form-label width-13">Assume Role ARN</label>\n <input type=text class="gf-form-input max-width-18" ng-model=ctrl.current.jsonData.assumeRoleArn placeholder=arn:aws:iam:*>\n <info-popover mode=right-absolute>\n ARN of Assume Role\n </info-popover>\n </div>\n\n <div class=gf-form>\n <label class="gf-form-label width-13">Default Region</label>\n <div class="gf-form-select-wrapper max-width-18 gf-form-select-wrapper--has-help-icon">\n <select class=gf-form-input ng-model=ctrl.current.jsonData.defaultRegion ng-options="region for region in [\'ap-northeast-1\', \'ap-northeast-2\', \'ap-southeast-1\', \'ap-southeast-2\', \'ap-south-1\', \'ca-central-1\', \'cn-north-1\', \'cn-northwest-1\', \'eu-central-1\', \'eu-west-1\', \'eu-west-2\', \'eu-west-3\', \'sa-east-1\', \'us-east-1\', \'us-east-2\', \'us-gov-west-1\', \'us-west-1\', \'us-west-2\']"></select>\n <info-popover mode=right-absolute>\n Specify the region, such as for US West (Oregon) use ` us-west-2 ` as the region.\n </info-popover>\n </div>\n </div>\n <div class=gf-form>\n <label class="gf-form-label width-13">Custom Metrics</label>\n <input type=text class="gf-form-input max-width-18" ng-model=ctrl.current.jsonData.customMetricsNamespaces placeholder=Namespace1,Namespace2>\n <info-popover mode=right-absolute>\n Namespaces of Custom Metrics\n </info-popover>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/datasource/cloudwatch/partials/query.editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,"<query-editor-row query-ctrl=ctrl can-collapse=false>\n\t<cloudwatch-query-parameter target=ctrl.target datasource=ctrl.datasource on-change=ctrl.refresh()></cloudwatch-query-parameter>\n</query-editor-row>\n\n")}]),e.exports=n},function(e,t){var n="public/app/plugins/datasource/cloudwatch/partials/query.parameter.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=gf-form-inline>\n\t<div class=gf-form>\n\t\t<label class="gf-form-label query-keyword width-8">Metric</label>\n\n\t\t<metric-segment segment=regionSegment get-options=getRegions() on-change=regionChanged()></metric-segment>\n\t\t<metric-segment segment=namespaceSegment get-options=getNamespaces() on-change=namespaceChanged()></metric-segment>\n\t\t<metric-segment segment=metricSegment get-options=getMetrics() on-change=metricChanged()></metric-segment>\n\t</div>\n\n\t<div class=gf-form>\n\t\t<label class="gf-form-label query-keyword">Stats</label>\n\t</div>\n\n\t<div class=gf-form ng-repeat="segment in statSegments">\n\t\t<metric-segment segment=segment get-options="getStatSegments(segment, $index)" on-change="statSegmentChanged(segment, $index)"></metric-segment>\n\t</div>\n\n\t<div class="gf-form gf-form--grow">\n\t\t<div class="gf-form-label gf-form-label--grow"></div>\n\t</div>\n</div>\n\n<div class=gf-form-inline>\n\t<div class=gf-form>\n\t\t<label class="gf-form-label query-keyword width-8">Dimensions</label>\n\t\t<metric-segment ng-repeat="segment in dimSegments" segment=segment get-options="getDimSegments(segment, $index)" on-change="dimSegmentChanged(segment, $index)"></metric-segment>\n\t</div>\n\n\t<div class="gf-form gf-form--grow">\n\t\t<div class="gf-form-label gf-form-label--grow"></div>\n\t</div>\n</div>\n\n<div class=gf-form-inline>\n\t<div class=gf-form>\n\t\t<label class="gf-form-label query-keyword width-8">\n\t\t\tMin period\n\t\t\t<info-popover mode=right-normal>Minimum interval between points in seconds</info-popover>\n\t\t</label>\n\t\t<input type=text class=gf-form-input ng-model=target.period spellcheck=false placeholder=auto ng-model-onblur ng-change=onChange() />\n\t</div>\n\t<div class="gf-form max-width-30">\n\t\t<label class="gf-form-label query-keyword width-7">Alias</label>\n\t\t<input type=text class=gf-form-input ng-model=target.alias spellcheck=false ng-model-onblur ng-change=onChange()>\n\t\t<info-popover mode=right-absolute>\n\t\t\tAlias replacement variables:\n\t\t\t<ul ng-non-bindable>\n\t\t\t\t<li>{{metric}}</li>\n\t\t\t\t<li>{{stat}}</li>\n\t\t\t\t<li>{{namespace}}</li>\n\t\t\t\t<li>{{region}}</li>\n\t\t\t\t<li>{{period}}</li>\n\t\t\t\t<li>{{YOUR_DIMENSION_NAME}}</li>\n\t\t\t</ul>\n\t\t</info-popover>\n\t</div>\n\t<div class=gf-form>
8\n\t\t<gf-form-switch class=gf-form label=HighRes label-class=width-5 checked=target.highResolution on-change=onChange()>\n\t\t</gf-form-switch>\n\t</div>\n\n\t<div class="gf-form gf-form--grow">\n\t\t<div class="gf-form-label gf-form-label--grow"></div>\n\t</div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/datasource/elasticsearch/partials/annotations.editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=gf-form-group>\n\t<div class=gf-form ng-if=ctrl.annotation.index>\n\t\t<span class="gf-form-label width-14">Index name</span>\n\t\t<input type=text class="gf-form-input max-width-20" ng-model=ctrl.annotation.index placeholder=events-*>\n\t</div>\n\t<div class=gf-form-group>\n\t\t<div class=gf-form>\n\t\t\t<input type=text class=gf-form-input ng-model=ctrl.annotation.query placeholder="Elasticsearch lucene query">\n\t\t</div>\n\t</div>\n</div>\n\n<div class=gf-form-group>\n\t<h6>Field mappings</h6>\n\t<div class=gf-form-inline>\n\t\t<div class=gf-form>\n\t\t\t<span class=gf-form-label>Time</span>\n\t\t\t<input type=text class="gf-form-input max-width-14" ng-model=ctrl.annotation.timeField placeholder=@timestamp>\n\t\t</div>\n\t\t<div class=gf-form>\n\t\t\t<span class=gf-form-label>Text</span>\n\t\t\t<input type=text class="gf-form-input max-width-14" ng-model=ctrl.annotation.textField placeholder="">\n\t\t</div>\n\t\t<div class=gf-form>\n\t\t\t<span class=gf-form-label>Tags</span>\n\t\t\t<input type=text class="gf-form-input max-width-10" ng-model=ctrl.annotation.tagsField placeholder=tags>\n\t\t</div>\n\t\t<div class=gf-form ng-show=ctrl.annotation.titleField>\n\t\t\t<span class=gf-form-label>Title <em class=muted>(deprecated)</em></span>\n\t\t\t<input type=text class="gf-form-input max-width-16" ng-model=ctrl.annotation.titleField placeholder=desc>\n\t\t</div>\n\t</div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/datasource/elasticsearch/partials/bucket_agg.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=gf-form-inline>\n\t<div class=gf-form>\n\t\t<label class="gf-form-label query-keyword width-7">\n\t\t\t<span ng-show=isFirst>Group by</span>\n\t\t\t<span ng-hide=isFirst>Then by</span>\n\t\t</label>\n\n\t\t<gf-form-dropdown model=agg.type lookup-text=true get-options=getBucketAggTypes() on-change=onTypeChanged() allow-custom=false label-mode=true css-class=width-10>\n\t\t</gf-form-dropdown>\n\t\t<gf-form-dropdown ng-if=agg.field model=agg.field get-options=getFieldsInternal() on-change=onChange() allow-custom=false label-mode=true css-class=width-12>\n\t\t</gf-form-dropdown>\n\t</div>\n\n\t<div class="gf-form gf-form--grow">\n\t\t<label class="gf-form-label gf-form-label--grow">\n\t\t\t<a ng-click=toggleOptions()>\n\t\t\t\t<i class="fa fa-caret-down" ng-show=showOptions></i>\n\t\t\t\t<i class="fa fa-caret-right" ng-hide=showOptions></i>\n\t\t\t\t{{settingsLinkText}}\n\t\t\t</a>\n\t\t</label>\n\t</div>\n\n\t<div class=gf-form>\n\t\t<label class=gf-form-label ng-if=isFirst>\n\t\t\t<a class=pointer ng-click=addBucketAgg()><i class="fa fa-plus"></i></a>\n\t\t</label>\n\t\t<label class=gf-form-label ng-if="bucketAggCount > 1">\n\t\t\t<a class=pointer ng-click=removeBucketAgg()><i class="fa fa-minus"></i></a>\n\t\t</label>\n\t</div>\n</div>\n\n<div class=gf-form-group ng-if=showOptions>\n\t<div ng-if="agg.type === \'date_histogram\'">\n\t\t<div class="gf-form offset-width-7">\n\t\t\t<label class="gf-form-label width-10">Interval</label>\n\t\t\t<gf-form-dropdown model=agg.settings.interval get-options=getIntervalOptions() on-change=onChangeInternal() allow-custom=true label-mode=true css-class=width-12>\n\t\t\t</gf-form-dropdown>\n\t\t</div>\n\n\t\t<div class="gf-form offset-width-7">\n\t\t\t<label class="gf-form-label width-10">Min Doc Count</label>\n\t\t\t<input type=number class="gf-form-input max-width-12" ng-model=agg.settings.min_doc_count ng-blur=onChangeInternal()>\n\t\t</div>\n\n\t\t<div class="gf-form offset-width-7">\n\t\t\t<label class="gf-form-label width-10">\n\t\t\t\tTrim edges\n\t\t\t\t<info-popover mode=right-normal>\n\t\t\t\t\tTrim the edges on the timeseries datapoints\n\t\t\t\t</info-popover>\n\t\t\t</label>\n\t\t\t<input class="gf-form-input max-width-12" type=number ng-model=agg.settings.trimEdges ng-change=onChangeInternal()>\n\t\t</div>\n\t</div>\n\n\t<div ng-if="agg.type === \'histogram\'">\n\t\t<div class="gf-form offset-width-7">\n\t\t\t<label class="gf-form-label width-10">Interval</label>\n\t\t\t<input type=number class="gf-form-input max-width-12" ng-model=agg.settings.interval ng-blur=onChangeInternal()>\n\t\t</div>\n\t\t<div class="gf-form offset-width-7">\n\t\t\t<label class="gf-form-label width-10">Min Doc Count</label>\n\t\t\t<input type=number class="gf-form-input max-width-12" ng-model=agg.settings.min_doc_count ng-blur=onChangeInternal()>\n\t\t</div>\n\t</div>\n\n\t<div ng-if="agg.type === \'terms\'">\n\t\t<div class="gf-form offset-width-7">\n\t\t\t<label class="gf-form-label width-10">Order</label>\n\t\t\t<gf-form-dropdown model=agg.settings.order lookup-text=true get-options=getOrderOptions() on-change=onChangeInternal() label-mode=true css-class=width-12>\n\t\t\t</gf-form-dropdown>\n\t\t</div>\n\t\t<div class="gf-form offset-width-7">\n\t\t\t<label class="gf-form-label width-10">Size</label>\n\t\t\t<gf-form-dropdown model=agg.settings.size lookup-text=true get-options=getSizeOptions() on-change=onChangeInternal() label-mode=true allow-custom=true css-class=width-12>\n\t\t\t</gf-form-dropdown>\n\t\t</div>\n\t\t<div class="gf-form offset-width-7">\n\t\t\t<label class="gf-form-label width-10">Min Doc Count</label>\n\t\t\t<input type=number class="gf-form-input max-width-12" ng-model=agg.settings.min_doc_count ng-blur=onChangeInternal()>\n\t\t</div>\n\t\t<div class="gf-form offset-width-7">\n\t\t\t<label class="gf-form-label width-10">Order By</label>\n\t\t\t<gf-form-dropdown model=agg.settings.orderBy lookup-text=true get-options=getOrderByOptions() on-change=onChangeInternal() label-mode=true css-class=width-12>\n\t\t\t</gf-form-dropdown>\n\t\t</div>\n\t\t<div class="gf-form offset-width-7">\n\t\t\t<label class="gf-form-label width-10">\n\t\t\t\tMissing\n\t\t\t\t<info-popover mode=right-normal>\n\t\t\t\t\tThe missing parameter defines how documents that are missing a value should be treated. By default they will be ignored but it is also possible to treat them as if they had a value\
8n\t\t\t\t</info-popover>\n\t\t\t</label>\n\t\t\t<input type=text class="gf-form-input max-width-12" empty-to-null ng-model=agg.settings.missing ng-blur=onChangeInternal() spellcheck=false>\n\t\t</div>\n\t</div>\n\n\t<div ng-if="agg.type === \'filters\'">\n\t\t<div class="gf-form-inline offset-width-7" ng-repeat="filter in agg.settings.filters">\n\t\t\t<div class=gf-form>\n\t\t\t\t<label class="gf-form-label width-10">Query {{$index + 1}}</label>\n\t\t\t\t<input type=text class="gf-form-input max-width-12" ng-model=filter.query spellcheck=false placeholder="Lucene query" ng-blur=onChangeInternal()>\n\t\t\t\t<label class="gf-form-label width-10">Label {{$index + 1}}</label>\n\t\t\t\t<input type=text class="gf-form-input max-width-12" ng-model=filter.label spellcheck=false placeholder=Label ng-blur=onChangeInternal()>\n\t\t\t</div>\n\t\t\t<div class=gf-form>\n\t\t\t\t<label class=gf-form-label ng-if=$first>\n\t\t\t\t\t<a class=pointer ng-click=addFiltersQuery()><i class="fa fa-plus"></i></a>\n\t\t\t\t</label>\n\t\t\t\t<label class=gf-form-label ng-if=!$first>\n\t\t\t\t\t<a class=pointer ng-click=removeFiltersQuery(filter)><i class="fa fa-minus"></i></a>\n\t\t\t\t</label>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\n\t<div ng-if="agg.type === \'geohash_grid\'">\n\t\t<div class="gf-form offset-width-7">\n\t\t\t<label class="gf-form-label width-10">Precision</label>\n\t\t\t<input type=number class="gf-form-input max-width-12" ng-model=agg.settings.precision spellcheck=false placeholder=3 ng-blur=onChangeInternal()>\n\t\t</div>\n\t</div>\n\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/datasource/elasticsearch/partials/config.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<datasource-http-settings current=ctrl.current suggest-url=http://localhost:9200>\n</datasource-http-settings>\n\n<h3 class=page-heading>Elasticsearch details</h3>\n\n<div class=gf-form-group>\n\t<div class=gf-form-inline>\n\t\t<div class="gf-form max-width-25">\n\t\t\t<span class="gf-form-label width-9">Index name</span>\n\t\t\t<input class=gf-form-input type=text ng-model=ctrl.current.database placeholder="" required>\n\t\t</div>\n\n\t\t<div class="gf-form width-14">
8\n <span class="gf-form-label width-9">Pattern</span>\n <span class=gf-form-select-wrapper>\n <select class="gf-form-input gf-size-auto" ng-model=ctrl.current.jsonData.interval ng-options="f.value as f.name for f in ctrl.indexPatternTypes" ng-change=ctrl.indexPatternTypeChanged()></select>\n </span>\n\t\t</div>\n\t</div>\n\n\t<div class="gf-form max-width-25">\n\t\t<span class="gf-form-label width-9">Time field name</span>\n\t\t<input class=gf-form-input type=text ng-model=ctrl.current.jsonData.timeField placeholder="" required ng-init="">\n\t</div>\n\n\t<div class=gf-form>\n <span class="gf-form-label width-9">Version</span>\n <span class=gf-form-select-wrapper>\n <select class="gf-form-input gf-size-auto" ng-model=ctrl.current.jsonData.esVersion ng-options="f.value as f.name for f in ctrl.esVersions"></select>\n </span>\n\t</div>\n <div class="gf-form max-width-30" ng-if="ctrl.current.jsonData.esVersion>=56">\n <span class="gf-form-label width-15">Max concurrent Shard Requests</span>\n <input class=gf-form-input type=text ng-model=ctrl.current.jsonData.maxConcurrentShardRequests placeholder="" required>\n </div>\n\t<div class=gf-form-inline>\n\t\t<div class=gf-form>\n\t\t\t<span class="gf-form-label width-9">Min time interval</span>\n\t\t\t<input type=text class="gf-form-input width-6" ng-model=ctrl.current.jsonData.timeInterval spellcheck=false placeholder=10s>\n\t\t\t<info-popover mode=right-absolute>\n\t\t\t\tA lower limit for the auto group by time interval. Recommended to be set to write frequency,\n\t\t\t\tfor example <code>1m</code> if your data is written every minute.\n\t\t\t</info-popover>\n\t\t</div>\n\t</div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/datasource/elasticsearch/partials/metric_agg.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=gf-form-inline ng-class="{\'gf-form-disabled\': agg.hide}">\n\t<div class=gf-form>\n\t\t<label class="gf-form-label query-keyword width-7">\n\t\t\tMetric\n\t\t\t \n\t\t\t<a ng-click=toggleShowMetric() bs-tooltip="\'Click to toggle show / hide metric\'">\n\t\t\t\t<i class="fa fa-eye" ng-hide=agg.hide></i>\n\t\t\t\t<i class="fa fa-eye-slash" ng-show=agg.hide></i>\n\t\t\t</a>\n\t\t</label>\n\t</div>\n\n\t<div class=gf-form>\n\t\t<metric-segment-model property=agg.type options=metricAggTypes on-change=onTypeChange() custom=false css-class=width-10></metric-segment-model>\n\t\t<metric-segment-model ng-if=aggDef.requiresField property=agg.field get-options=getFieldsInternal() on-change=onChange() css-class=width-12></metric-segment-model>\n\t\t<metric-segment-model ng-if=aggDef.isPipelineAgg property=agg.pipelineAgg options=pipelineAggOptions on-change=onChangeInternal() custom=false css-class=width-12></metric-segment-model>\n\t</div>\n\n\t<div class="gf-form gf-form--grow">\n\t\t<label class="gf-form-label gf-form-label--grow">\n\t\t\t<a ng-click=toggleOptions() ng-if=settingsLinkText>\n\t\t\t\t<i class="fa fa-caret-down" ng-show=showOptions></i>\n\t\t\t\t<i class="fa fa-caret-right" ng-hide=showOptions></i>\n\t\t\t\t\t{{settingsLinkText}}\n\t\t\t</a>\n\t\t</label>\n\t</div>\n\n\t<div class=gf-form>\n\t\t<label class=gf-form-label ng-if=isFirst>\n\t\t\t<a class=pointer ng-click=addMetricAgg()><i class="fa fa-plus"></i></a>\n\t\t</label>\n\t\t<label class=gf-form-label ng-if=!isSingle>\n\t\t\t<a class=pointer ng-click=removeMetricAgg()><i class="fa fa-minus"></i></a>\n\t\t</label>\n\t</div>\n</div>\n\n<div class=gf-form-group ng-if=showOptions>\n\t<div class="gf-form offset-width-7" ng-if="agg.type === \'derivative\'">\n\t\t<label class="gf-form-label width-10">Unit</label>\n\t\t<input type=text class="gf-form-input max-width-12" ng-model=agg.settings.unit ng-blur=onChangeInternal() spellcheck=false>\n\t</div>\n\n <div ng-if="agg.type === \'moving_avg\'">\n <div class="gf-form offset-width-7">\n <label class="gf-form-label width-10">Model</label>\n <metric-segment-model property=agg.settings.model options=movingAvgModelTypes on-change=onChangeClearInternal() custom=false css-class=width-12></metric-segment-model>\n </div>\n\n <div class="gf-form offset-width-7">\n <label class="gf-form-label width-10">Window</label>\n <input type=number class="gf-form-input max-width-12" ng-model=agg.settings.window ng-blur=onChangeInternal() spellcheck=false>\n </div>\n\n <div class="gf-form offset-width-7">\n <label class="gf-form-label width-10">Predict</label>\n <input type=number class="gf-form-input max-width-12" ng-model=agg.settings.predict ng-blur=onChangeInternal() spellcheck=false>\n </div>\n\n\n <div class="gf-form offset-width-7" ng-repeat="setting in modelSettings">\n <label class="gf-form-label width-10">{{setting.text}}</label>\n <input type=number class="gf-form-input max-width-12" ng-model=agg.settings.settings[setting.value] ng-blur=onChangeInternal() spellcheck=false>\n </div>\n\n <gf-form-switch ng-if="agg.settings.model == \'holt_winters\'" class="gf-form offset-width-7" label=Pad label-class=width-10 checked=agg.settings.settings.pad on-change=onChangeInternal()>
8</gf-form-switch>\n <gf-form-switch ng-if="agg.settings.model.match(\'ewma|holt_winters|holt\') !== null" class="gf-form offset-width-7" label=Minimize label-class=width-10 checked=agg.settings.minimize on-change=onChangeInternal()></gf-form-switch>\n </div>\n\n <div class="gf-form offset-width-7" ng-if="agg.type === \'percentiles\'">\n <label class="gf-form-label width-10">Percentiles</label>\n <input type=text class="gf-form-input max-width-12" ng-model=agg.settings.percents array-join ng-blur=onChange()>\n </div>\n <div class="gf-form offset-width-7" ng-if="agg.type === \'raw_document\'">\n <label class="gf-form-label width-10">Size</label>\n <input type=number class="gf-form-input max-width-12" ng-model=agg.settings.size ng-blur=onChange()>\n </div>\n\n\n <div class="gf-form offset-width-7" ng-if="agg.type === \'cardinality\'">\n <label class="gf-form-label width-10">Precision threshold</label>\n <input type=number class="gf-form-input max-width-12" ng-model=agg.settings.precision_threshold ng-blur=onChange()>\n </div>\n\n <div ng-if="agg.type === \'extended_stats\'">\n <gf-form-switch ng-repeat="stat in extendedStats" class="gf-form offset-width-7" label={{stat.text}} label-class=width-10 checked=agg.meta[stat.value] on-change=onChangeInternal()></gf-form-switch>\n\n <div class="gf-form offset-width-7">\n <label class="gf-form-label width-10">Sigma</label>\n <input type=number class="gf-form-input max-width-12" placeholder=3 ng-model=agg.settings.sigma ng-blur=onChange()>\n </div>\n </div>\n\n <div class="gf-form offset-width-7" ng-if=aggDef.supportsInlineScript>\n <label class="gf-form-label width-10">Script</label>\n <input type=text class="gf-form-input max-width-12" empty-to-null ng-model=agg.inlineScript ng-blur=onChangeInternal() spellcheck=false placeholder="_value * 1">\n </div>\n\n <div class="gf-form offset-width-7" ng-if=aggDef.supportsMissing>\n\t\t<label class="gf-form-label width-10">\n\t\t\tMissing\n\t\t\t<tip>The missing parameter defines how documents that are missing a value should be treated. By default they will be ignored but it is also possible to treat them as if they had a value</tip>\n\t\t</label>\n\t\t<input type=number class="gf-form-input max-width-12" empty-to-null ng-model=agg.settings.missing ng-blur=onChangeInternal() spellcheck=false>\n\t</div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/datasource/elasticsearch/partials/query.editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<query-editor-row query-ctrl=ctrl can-collapse=true>\n\n\t<div class=gf-form-inline>\n\t\t<div class="gf-form gf-form--grow">\n\t\t\t<label class="gf-form-label query-keyword width-7">Query</label>\n\t\t\t<input type=text class=gf-form-input ng-model=ctrl.target.query spellcheck=false placeholder="Lucene query" ng-blur=ctrl.refresh()>\n\t\t</div>\n\t\t<div class="gf-form max-width-15">\n\t\t\t<label class="gf-form-label query-keyword">Alias</label>\n\t\t\t<input type=text class=gf-form-input ng-model=ctrl.target.alias spellcheck=false placeholder="alias patterns" ng-blur=ctrl.refresh()>\n\t\t</div>\n\t</div>\n\n\t<div ng-repeat="agg in ctrl.target.metrics">\n\t\t<elastic-metric-agg target=ctrl.target index=$index get-fields=ctrl.getFields($fieldType) on-change=ctrl.queryUpdated() es-version=ctrl.esVersion>\n\t\t</elastic-metric-agg>\n\t</div>\n\n\t<div ng-repeat="agg in ctrl.target.bucketAggs">\n\t\t<elastic-bucket-agg target=ctrl.target index=$index get-fields=ctrl.getFields($fieldType) on-change=ctrl.queryUpdated()>\n\t\t</elastic-bucket-agg>\n\t</div>\n\n</query-editor-row>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/datasource/grafana-live/partials/query.editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<query-editor-row query-ctrl=ctrl can-collapse=false>\n\t<div class=gf-form-inline>\n\t\t<div class="gf-form gf-form--grow">\n\t\t\t<label class="gf-form-label width-8">Stream</label>\n\t\t\t<input type=text class=gf-form-input ng-model=ctrl.target.stream spellcheck=false placeholder=metric>\n\t\t</div>\n\t</div>\n</query-editor-row>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/datasource/grafana/partials/annotations.editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'\n<div class=gf-form-group>\n\t<div class=gf-form-inline>\n\t\t<div class=gf-form>\n\t\t\t<span class="gf-form-label width-8">\n\t\t\t\tFilter by\n\t\t\t\t<info-popover mode=right-normal>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>
8Dashboard: This will fetch annotation and alert state changes for whole dashboard and show them only on the event\'s originating panel.</li>\n\t\t\t\t\t\t<li>All: This will fetch any annotation events that match the tags filter.</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</info-popover>\n\t\t\t</span>\n\t\t\t<div class="gf-form-select-wrapper width-9">\n\t\t\t\t<select class=gf-form-input ng-model=ctrl.annotation.type ng-options="f.value as f.text for f in ctrl.types">\n\t\t\t\t</select>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=gf-form ng-if="ctrl.annotation.type === \'tags\'">\n\t\t\t<span class=gf-form-label>Tags</span>\n\t\t\t<bootstrap-tagsinput ng-model=ctrl.annotation.tags tagclass="label label-tag" placeholder="add tags">\n\t\t\t</bootstrap-tagsinput>\n\t\t</div>\n\n\t\t<div class=gf-form>\n\t\t\t<span class=gf-form-label>Max limit</span>\n\t\t\t<div class=gf-form-select-wrapper>\n\t\t\t\t<select class=gf-form-input ng-model=ctrl.annotation.limit ng-options="f for f in [10,50,100,200,300,500,1000,2000]">\n\t\t\t\t</select>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n\n\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/datasource/grafana/partials/query.editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<query-editor-row query-ctrl=ctrl can-collapse=false>\n\t<div class=gf-form-inline>\n\t\t<div class=gf-form>\n\t\t\t<label class=gf-form-label>Test data: random walk</label>\n\t\t</div>\n\n\t\t<div class="gf-form gf-form--grow">\n\t\t\t<div class="gf-form-label gf-form-label--grow"></div>\n\t\t</div>\n\t</div>\n</query-editor-row>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/datasource/graphite/partials/annotations.editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=gf-form-group>\n <div class=gf-form>\n <span class="gf-form-label width-12">Graphite query</span>\n <input type=text class=gf-form-input ng-model=ctrl.annotation.target placeholder="Example: statsd.application.counters.*.count">\n </div>\n\n\t<h5 class=section-heading>Or</h5>\n\n <div class=gf-form>\n <span class="gf-form-label width-12">Graphite events tags</span>\n <input type=text class=gf-form-input ng-model=ctrl.annotation.tags placeholder="Example: event_tag_name">\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/datasource/graphite/partials/config.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<datasource-http-settings current=ctrl.current suggest-url=http://localhost:8080>\n</datasource-http-settings>\n\n<h3 class=page-heading>Graphite details</h3>\n\n<div class=gf-form-group>\n\t<div class=gf-form>\n\t\t<span class="gf-form-label width-8">\n Version\n <info-popover mode=right-normal position="top center">\n This option controls what functions are available in the Graphite query editor.\n </info-popover>\n </span>\n <span class=gf-form-select-wrapper>\n <select class="gf-form-input gf-size-auto" ng-model=ctrl.current.jsonData.graphiteVersion ng-options="f.value as f.name for f in ctrl.graphiteVersions"></select>\n </span>\n\t</div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/datasource/graphite/partials/query.editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<query-editor-row query-ctrl=ctrl has-text-edit-mode=true>\n\n <div class=gf-form ng-show=ctrl.target.textEditor>\n <input type=text class=gf-form-input ng-model=ctrl.target.target spellcheck=false ng-blur=ctrl.targetTextChanged()>\n </div>\n\n <div ng-hide=ctrl.target.textEditor>\n <div class=gf-form-inline>\n <div class=gf-form>\n <label class="gf-form-label width-6 query-keyword">Series</label>\n </div>\n\n <div ng-if=ctrl.queryModel.seriesByTagUsed ng-repeat="tag in ctrl.queryModel.tags" class=gf-form>\n <gf-form-dropdown model=tag.key allow-custom=true label-mode=true debounce=true placeholder="Tag key" css-class=query-segment-key get-options="ctrl.getTags($index, $query)" on-change="ctrl.tagChanged(tag, $index)"/>\n <gf-form-dropdown model=tag.operator label-mode=true css-class=query-segment-operator get-options=ctrl.getTagOperators() on-change="ctrl.tagChanged(tag, $index)" min-input-width=30 />\n <gf-form-dropdown model=tag.value allow-custom=true label-mode=true debounce=true css-class=query-segment-value placeholder="Tag value" get-options="ctrl.getTagValues(tag, $index, $query)" on-change="ctrl.tagChanged(tag, $index)"/>\n <label class="gf-form-label query-keyword" ng-if=ctrl.showDelimiter($index)>AND</label>\n </div>\n\n <div ng-if=ctrl.queryModel.seriesByTagUsed ng-repeat="segment in ctrl.addTagSegments" role=menuitem class=gf-form>\n <metric-segment segment=segment get-options=ctrl.getTagsAsSegments($query) on-change=ctrl.addNewTag(segment) debounce=true />\n </div>\n\n <div ng-if=!ctrl.queryModel.seriesByTagUsed ng-repeat="segment in ctrl.segments" role=menuitem class=gf-form>\n <metric-segment segment=segment get-options="ctrl.getAltSegments($index, $query)" on-change="ctrl.
8segmentValueChanged(segment, $index)"/>\n </div>\n\n <div ng-if=ctrl.paused class=gf-form>\n <a ng-click=ctrl.unpause() class="gf-form-label query-part"><i class="fa fa-play"></i></a>\n </div>\n\n <div class="gf-form gf-form--grow">\n <div class="gf-form-label gf-form-label--grow"></div>\n </div>\n </div>\n\n <div class=gf-form-inline>\n <div class=gf-form>\n <label class="gf-form-label width-6 query-keyword">Functions</label>\n </div>\n\n <div ng-repeat="func in ctrl.queryModel.functions" class=gf-form>\n <span graphite-func-editor class="gf-form-label query-part" ng-hide=func.hidden></span>\n </div>\n\n <div class="gf-form dropdown">\n <span graphite-add-func></span>\n </div>\n\n <div class="gf-form gf-form--grow">\n <div class="gf-form-label gf-form-label--grow"></div>\n </div>\n </div>\n </div>\n\n</query-editor-row>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/datasource/influxdb/partials/annotations.editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'\n<div class=gf-form-group>\n\t<div class=gf-form>\n\t\t<input type=text class=gf-form-input ng-model=ctrl.annotation.query placeholder="select text from events where $timeFilter limit 1000">\n\t</div>\n</div>\n\n<h5 class=section-heading>Field mappings <tip>If your influxdb query returns more than one field you need to specify the column names below. An annotation event is composed of a title, tags, and an additional text field.</tip></h5>\n<div class=gf-form-group>\n\t<div class=gf-form-inline>\n\t\t<div class=gf-form>\n\t\t\t<span class="gf-form-label width-4">Text</span>\n\t\t\t<input type=text class="gf-form-input max-width-10" ng-model=ctrl.annotation.textColumn placeholder="">\n\t\t</div>\n\t\t<div class=gf-form>\n\t\t\t<span class="gf-form-label width-4">Tags</span>\n\t\t\t<input type=text class="gf-form-input max-width-10" ng-model=ctrl.annotation.tagsColumn placeholder="">\n\t\t</div>\n\t\t<div class=gf-form ng-show=ctrl.annotation.titleColumn>\n\t\t\t<span class="gf-form-label width-4">Title <em class=muted>(deprecated)</em></span>\n\t\t\t<input type=text class="gf-form-input max-width-10" ng-model=ctrl.annotation.titleColumn placeholder="">\n\t\t</div>\n\t</div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/datasource/influxdb/partials/config.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<datasource-http-settings current=ctrl.current suggest-url=http://localhost:8086>\n</datasource-http-settings>\n\n<h3 class=page-heading>InfluxDB Details</h3>\n\n<div class=gf-form-group>\n\t<div class=gf-form-inline>\n\t\t<div class="gf-form max-width-30">\n\t\t\t<span class="gf-form-label width-7">Database</span>\n\t\t\t<input type=text class=gf-form-input ng-model=ctrl.current.database placeholder="" required>\n\t\t</div>\n\t</div>\n\n\t<div class=gf-form-inline>\n\t\t<div class="gf-form max-width-15">\n\t\t\t<span class="gf-form-label width-7">User</span>\n\t\t\t<input type=text class=gf-form-input ng-model=ctrl.current.user placeholder="">\n\t\t</div>\n\t\t<div class="gf-form max-width-15">\n\t\t\t<span class="gf-form-label width-7">Password</span>\n\t\t\t<input type=password class=gf-form-input ng-model=ctrl.current.password placeholder="">\n\t\t</div>\n\t</div>\n</div>\n\n\n<div class=gf-form-group>\n\t<div class=grafana-info-box>\n\t\t<h5>Database Access</h5>\n\t\t<p>\n\t\t\tSetting the database for this datasource does not deny access to other databases. The InfluxDB query syntax allows\n\t\t\tswitching the database in the query. For example:\n\t\t\t<code>SHOW MEASUREMENTS ON _internal</code> or <code>SELECT * FROM "_internal".."database" LIMIT 10</code>\n\t\t\t<br/><br/>\n\t\t\tTo support data isolation and security, make sure appropriate permissions are configured in InfluxDB.\n\t\t</p>\n\t</div>\n</div>\n\n<div class=gf-form-group>\n\t<div class=gf-form-inline>\n\t\t<div class=gf-form>\n\t\t\t<span class=gf-form-label>Min time interval</span>\n\t\t\t<input type=text class="gf-form-input width-6" ng-model=ctrl.current.jsonData.timeInterval spellcheck=false placeholder=10s>\n\t\t\t<info-popover mode=right-absolute>\n\t\t\t\tA lower limit for the auto group by time interval. Recommended to be set to write frequency,\n\t\t\t\tfor example <code>1m</code> if your data is written every minute.\n\t\t\t</info-popover>\n\t\t</div>\n\t</div>\n</div>\n')}]),e.exports=n}
8,function(e,t){var n="public/app/plugins/datasource/influxdb/partials/query.editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<query-editor-row query-ctrl=ctrl can-collapse=true has-text-edit-mode=true>\n\n\t<div ng-if=ctrl.target.rawQuery>\n <div class=gf-form>\n <textarea rows=3 class=gf-form-input ng-model=ctrl.target.query spellcheck=false placeholder="InfuxDB Query" ng-model-onblur ng-change=ctrl.refresh()></textarea>\n </div>\n <div class=gf-form-inline>\n <div class=gf-form>\n <label class="gf-form-label query-keyword">FORMAT AS</label>\n <div class=gf-form-select-wrapper>\n <select class="gf-form-input gf-size-auto" ng-model=ctrl.target.resultFormat ng-options="f.value as f.text for f in ctrl.resultFormats" ng-change=ctrl.refresh()></select>\n </div>\n </div>\n <div class="gf-form max-width-25" ng-hide="ctrl.target.resultFormat === \'table\'">\n <label class="gf-form-label query-keyword">ALIAS BY</label>\n <input type=text class=gf-form-input ng-model=ctrl.target.alias spellcheck=false placeholder="Naming pattern" ng-blur=ctrl.refresh()>\n </div>\n <div class="gf-form gf-form--grow">\n <div class="gf-form-label gf-form-label--grow"></div>\n </div>\n </div>\n </div>\n\n\t<div ng-if=!ctrl.target.rawQuery>\n\n\t\t<div class=gf-form-inline>\n\t\t\t<div class=gf-form>\n\t\t\t\t<label class="gf-form-label query-keyword width-7">FROM</label>\n\n\t\t\t\t<metric-segment segment=ctrl.policySegment get-options=ctrl.getPolicySegments() on-change=ctrl.policyChanged()></metric-segment>\n\t\t\t\t<metric-segment segment=ctrl.measurementSegment get-options=ctrl.getMeasurements($query) on-change=ctrl.measurementChanged()></metric-segment>\n\t\t\t</div>\n\n\t\t\t<div class=gf-form>\n\t\t\t\t<label class="gf-form-label query-keyword">WHERE</label>\n\t\t\t</div>\n\n\t\t\t<div class=gf-form ng-repeat="segment in ctrl.tagSegments">\n\t\t\t\t<metric-segment segment=segment get-options="ctrl.getTagsOrValues(segment, $index)" on-change="ctrl.tagSegmentUpdated(segment, $index)"></metric-segment>\n\t\t\t</div>\n\n\t\t\t<div class="gf-form gf-form--grow">\n\t\t\t\t<div class="gf-form-label gf-form-label--grow"></div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=gf-form-inline ng-repeat="selectParts in ctrl.queryModel.selectModels">\n\t\t\t<div class=gf-form>\n\t\t\t\t<label class="gf-form-label query-keyword width-7">\n\t\t\t\t\t<span ng-show="$index === 0">SELECT</span> \n\t\t\t\t</label>\n\t\t\t</div>\n\n\t\t\t<div class=gf-form ng-repeat="part in selectParts">\n\t\t\t\t<query-part-editor class="gf-form-label query-part" part=part handle-event="ctrl.handleSelectPartEvent(selectParts, part, $event)">\n\t\t\t\t</query-part-editor>\n\t\t\t</div>\n\n\t\t\t<div class=gf-form>\n\t\t\t\t<label class=dropdown dropdown-typeahead=ctrl.selectMenu dropdown-typeahead-on-select="ctrl.addSelectPart(selectParts, $item, $subItem)">\n\t\t\t\t</label>\n\t\t\t</div>\n\n\t\t\t<div class="gf-form gf-form--grow">\n\t\t\t\t<div class="gf-form-label gf-form-label--grow"></div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=gf-form-inline>\n\t\t\t<div class=gf-form>\n\t\t\t\t<label class="gf-form-label query-keyword width-7">\n\t\t\t\t\t<span>GROUP BY</span>\n\t\t\t\t</label>\n\n\t\t\t\t<query-part-editor ng-repeat="part in ctrl.queryModel.groupByParts" part=part class="gf-form-label query-part" handle-event="ctrl.handleGroupByPartEvent(part, $index, $event)">\n\t\t\t\t</query-part-editor>\n\t\t\t</div>\n\n\t\t\t<div class=gf-form>\n\t\t\t\t<metric-segment segment=ctrl.groupBySegment get-options=ctrl.getGroupByOptions() on-change="ctrl.groupByAction(part, $index)"></metric-segment>\n\t\t\t</div>\n\n\t\t\t<div class="gf-form gf-form--grow">\n\t\t\t\t<div class="gf-form-label gf-form-label--grow"></div>\n\t\t\t</div>\n\t\t</div>\n\n <div class=gf-form-inline ng-if="ctrl.target.orderByTime === \'DESC\'">\n <div class=gf-form>\n <label class="gf-form-label query-keyword width-7">ORDER BY</label>\n <label class="gf-form-label pointer" ng-click=ctrl.removeOrderByTime()>time <span class=query-keyword>DESC</span> <i class="fa fa-remove"></i></label>\n </div>\n <div class="gf-form gf-form--grow">\n\t\t\t\t<div class="gf-form-label gf-form-label--grow"></div>\n\t\t\t</div>\n </div>\n\n <div class=gf-form-inline ng-if=ctrl.target.limit>\n <div class=gf-form>\n <label class="gf-form-label query-keyword width-7">LIMIT</label>\n <input type=text class="gf-form-input width-9" ng-model=ctrl.target.limit spellcheck=false placeholder="No Limit" ng-blur=ctrl.refresh()>\n </div>\n <div class="gf-form gf-form--grow">\n\t\t\t\t<div class="gf-form-label gf-form-label--grow"></div>\n\t\t\t</div>\n </div>\n\n <div class=gf-form-inline ng-if=ctrl.target.slimit>\n <div class=gf-form>\n <label class="gf-form-label query-keyword width-7">SLIMIT</label>\n <input type=text class="gf-form-input width-9" ng-model=ctrl.target.slimit spellcheck=false placeholder="No Limit" ng-blur=ctrl.refresh()>\n </div>\n <div class="gf-form gf-form--grow">\n\t\t\t\t<div class="gf-form-label gf-form-label--grow"></div>\n\t\t\t</div>\n </div>\n\n <div class=gf-form-inline>\n <div class=gf-form>\n <label class="gf-form-label query-keyword width-7">FORMAT AS</label>\n <div class=gf-form-select-wrapper>\n <select class="gf-form-input gf-size-auto" ng-model=ctrl.target.resultFormat ng-options="f.value as f.text for f in ctrl.resultFormats" ng-change=ctrl.refresh()></select>\n </div>\n </div>\n <div class="gf-form gf-form--grow">\n <div class="gf-form-label gf-form-label--grow"></div>\n </div>\n </div>\n\n <div class=gf-form-inline ng-hide="ctrl.target.resultFormat === \'table\'">\n <div class="gf-form max-width-30">\n <label class="gf-form-label query-keyword width-7">ALIAS BY</label>\n <input type=text class=gf-form-input ng-model=ctrl.target.alias spellcheck=false placeholder="Naming pattern" ng-blur=ctrl.refresh()>\n </div>\n <div class="gf-form gf-form--grow">\n <div class="gf-form-label gf-form-label--grow"></div>\n </div>\n </div>\n </div>\n\n</query-editor-row>\n')}]),e.exports=n}
8,function(e,t){var n="public/app/plugins/datasource/mssql/partials/annotations.editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'\n<div class=gf-form-group>\n <div class=gf-form-inline>\n\t\t<div class="gf-form gf-form--grow">\n\t\t\t<textarea rows=10 class=gf-form-input ng-model=ctrl.annotation.rawQuery spellcheck=false placeholder="query expression" data-min-length=0 data-items=100 ng-model-onblur ng-change=ctrl.panelCtrl.refresh()></textarea>\n\t\t</div>\n\t</div>\n\n <div class=gf-form-inline>\n <div class=gf-form>\n <label class="gf-form-label query-keyword" ng-click="ctrl.showHelp = !ctrl.showHelp">\n Show Help\n <i class="fa fa-caret-down" ng-show=ctrl.showHelp></i>\n <i class="fa fa-caret-right" ng-hide=ctrl.showHelp></i>\n </label>\n\t\t</div>\n </div>\n\n <div class=gf-form ng-show=ctrl.showHelp>\n\t\t<pre class="gf-form-pre alert alert-info"><h6>Annotation Query Format</h6>\nAn annotation is an event that is overlaid on top of graphs. The query can have up to three columns per row, the <b>time</b> column is mandatory. Annotation rendering is expensive so it is important to limit the number of rows returned.\n\n- column with alias: <b>time</b> for the annotation event time. Use epoch time or any native date data type.\n- column with alias: <b>text</b> for the annotation text.\n- column with alias: <b>tags</b> for annotation tags. This is a comma separated string of tags e.g. \'tag1,tag2\'.\n\n\nMacros:\n- $__time(column) -> column AS time\n- $__timeEpoch(column) -> DATEDIFF(second, \'1970-01-01\', column) AS time\n- $__timeFilter(column) -> column >= DATEADD(s, 18446744066914186738, \'1970-01-01\') AND column <= DATEADD(s, 18446744066914187038, \'1970-01-01\')\n- $__unixEpochFilter(column) -> column >= 1492750877 AND column <= 1492750877\n\nOr build your own conditionals using these macros which just return the values:\n- $__timeFrom() -> DATEADD(second, 1492750877, \'1970-01-01\')\n- $__timeTo() -> DATEADD(second, 1492750877, \'1970-01-01\')\n- $__unixEpochFrom() -> 1492750877\n- $__unixEpochTo() -> 1492750877\n\t\t</pre>\n\t</div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/datasource/mssql/partials/config.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'\n<h3 class=page-heading>MSSQL Connection</h3>\n\n<div class=gf-form-group>\n\t<div class="gf-form max-width-30">\n\t\t<span class="gf-form-label width-7">Host</span>\n\t\t<input type=text class=gf-form-input ng-model=ctrl.current.url placeholder=localhost:1433 bs-typeahead="{{[\'localhost\', \'localhost:1433\']}}" required>\n\t</div>\n\n\t<div class="gf-form max-width-30">\n\t\t<span class="gf-form-label width-7">Database</span>\n\t\t<input type=text class=gf-form-input ng-model=ctrl.current.database placeholder="database name" required>\n\t</div>\n\n\t<div class=gf-form-inline>\n\t\t<div class="gf-form max-width-15">\n\t\t\t<span class="gf-form-label width-7">User</span>\n\t\t\t<input type=text class=gf-form-input ng-model=ctrl.current.user placeholder=user>\n\t\t</div>\n\t\t<div class="gf-form max-width-15" ng-if=!ctrl.current.secureJsonFields.password>\n\t\t\t<span class="gf-form-label width-7">Password</span>\n\t\t\t<input type=password class=gf-form-input ng-model=ctrl.current.secureJsonData.password placeholder=password>\n\t\t</div>\n\t\t<div class="gf-form max-width-19" ng-if=ctrl.current.secureJsonFields.password>\n\t\t\t<span class="gf-form-label width-7">Password</span>\n\t\t\t<input type=text class=gf-form-input disabled=disabled value=configured>\n\t\t\t<a class="btn btn-secondary gf-form-btn" href=# ng-click="ctrl.current.secureJsonFields.password = false">reset</a>\n\t\t</div>\n\t</div>\n</div>\n\n<div class=gf-form-group>\n\t<div class=grafana-info-box>\n\t\t<h5>User Permission</h5>\n\t\t<p>\n\t\t\tThe database user should only be granted SELECT permissions on the specified database & tables you want to query.\n\t\t\tGrafana does not validate that queries are safe so queries can contain any SQL statement. For example, statements\n\t\t\tlike <code>USE otherdb;</code> and <code>DROP TABLE user;</code> would be executed. To protect against this we\n\t\t\t<strong>Highly</strong> recommmend you create a specific MSSQL user with restricted permissions.\n\t\t</p>\n\t</div>\n</div>\n\n')}]),e.exports=n}
8,function(e,t){var n="public/app/plugins/datasource/mssql/partials/query.editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<query-editor-row query-ctrl=ctrl can-collapse=false>\n\t<div class=gf-form-inline>\n\t\t<div class="gf-form gf-form--grow">\n\t\t\t<code-editor content=ctrl.target.rawSql datasource=ctrl.datasource on-change=ctrl.panelCtrl.refresh() data-mode=sqlserver>\n\t\t\t</code-editor>\n\t\t</div>\n\t</div>\n\n <div class=gf-form-inline>\n <div class=gf-form>\n\t\t\t<label class="gf-form-label query-keyword">Format as</label>\n\t\t\t<div class=gf-form-select-wrapper>\n\t\t\t\t<select class="gf-form-input gf-size-auto" ng-model=ctrl.target.format ng-options="f.value as f.text for f in ctrl.formats" ng-change=ctrl.refresh()></select>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=gf-form>\n <label class="gf-form-label query-keyword" ng-click="ctrl.showHelp = !ctrl.showHelp">\n Show Help\n <i class="fa fa-caret-down" ng-show=ctrl.showHelp></i>\n <i class="fa fa-caret-right" ng-hide=ctrl.showHelp></i>\n </label>\n\t\t</div>\n\t\t<div class=gf-form ng-show=ctrl.lastQueryMeta>\n <label class="gf-form-label query-keyword" ng-click="ctrl.showLastQuerySQL = !ctrl.showLastQuerySQL">\n Generated SQL\n <i class="fa fa-caret-down" ng-show=ctrl.showLastQuerySQL></i>\n <i class="fa fa-caret-right" ng-hide=ctrl.showLastQuerySQL></i>\n </label>\n\t\t</div>\n\t\t<div class="gf-form gf-form--grow">\n\t\t\t<div class="gf-form-label gf-form-label--grow"></div>\n\t\t</div>\n\t</div>\n\n\t<div class=gf-form ng-show=ctrl.showLastQuerySQL>\n\t\t<pre class=gf-form-pre>{{ctrl.lastQueryMeta.sql}}</pre>\n\t</div>\n\n\t<div class=gf-form ng-show=ctrl.showHelp>\n\t\t<pre class="gf-form-pre alert alert-info">Time series:\n- return column named time (in UTC), as a unix time stamp or any sql native date data type. You can use the macros below.\n- optional: return column named metric to represent the series names.\n- any other columns returned will be the time point values.\
8n- if multiple value columns are present and a metric column is provided. the series name will be the combination of "MetricName - ValueColumnName".\n\nTable:\n- return any set of columns\n\nMacros:\n- $__time(column) -> column AS time\n- $__timeEpoch(column) -> DATEDIFF(second, \'1970-01-01\', column) AS time\n- $__timeFilter(column) -> column >= DATEADD(s, 18446744066914186738, \'1970-01-01\') AND column <= DATEADD(s, 18446744066914187038, \'1970-01-01\')\n- $__unixEpochFilter(column) -> column >= 1492750877 AND column <= 1492750877\n- $__timeGroup(column, \'5m\'[, fillvalue]) -> CAST(ROUND(DATEDIFF(second, \'1970-01-01\', column)/300.0, 0) as bigint)*300. Providing a <i>fillValue</i> of <i>NULL</i> or floating value will automatically fill empty series in timerange with that value.\n\nExample of group by and order by with $__timeGroup:\nSELECT\n $__timeGroup(date_time_col, \'1h\') AS time,\n sum(value) as value\nFROM yourtable\nGROUP BY $__timeGroup(date_time_col, \'1h\')\nORDER BY 1\n\nOr build your own conditionals using these macros which just return the values:\n- $__timeFrom() -> DATEADD(second, 1492750877, \'1970-01-01\')\n- $__timeTo() -> DATEADD(second, 1492750877, \'1970-01-01\')\n- $__unixEpochFrom() -> 1492750877\n- $__unixEpochTo() -> 1492750877\n\t\t</pre>\n\t</div>\n\n\t\n\n\t<div class=gf-form ng-show=ctrl.lastQueryError>\n\t\t<pre class="gf-form-pre alert alert-error">{{ctrl.lastQueryError}}</pre>\n\t</div>\n\n</query-editor-row>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/datasource/mysql/partials/annotations.editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'\n<div class=gf-form-group>\n <div class=gf-form-inline>\n\t\t<div class="gf-form gf-form--grow">\n\t\t\t<textarea rows=10 class=gf-form-input ng-model=ctrl.annotation.rawQuery spellcheck=false placeholder="query expression" data-min-length=0 data-items=100 ng-model-onblur ng-change=ctrl.panelCtrl.refresh()></textarea>\n\t\t</div>\n\t</div>\n\n <div class=gf-form-inline>\n <div class=gf-form>\n <label class="gf-form-label query-keyword" ng-click="ctrl.showHelp = !ctrl.showHelp">\n Show Help\n <i class="fa fa-caret-down" ng-show=ctrl.showHelp></i>\n <i class="fa fa-caret-right" ng-hide=ctrl.showHelp></i>\n </label>\n\t\t</div>\n </div>\n\n <div class=gf-form ng-show=ctrl.showHelp>\n\t\t<pre class="gf-form-pre alert alert-info"><h6>Annotation Query Format</h6>\nAn annotation is an event that is overlaid on top of graphs. The query can have up to three columns per row, the <i>time</i> or <i>time_sec</i> column is mandatory. Annotation rendering is expensive so it is important to limit the number of rows returned.\n\n- column with alias: <b>time</b> or <i>time_sec</i> for the annotation event time. Use epoch time or any native date data type.\n- column with alias: <b>text</b> for the annotation text\n- column with alias: <b>tags</b> for annotation tags. This is a comma separated string of tags e.g. \'tag1,tag2\'\n\n\nMacros:\n- $__time(column) -> UNIX_TIMESTAMP(column) as time (or as time_sec)\n- $__timeEpoch(column) -> UNIX_TIMESTAMP(column) as time (or as time_sec)\n- $__timeFilter(column) -> UNIX_TIMESTAMP(time_date_time) > 1492750877 AND UNIX_TIMESTAMP(time_date_time) < 1492750877\n- $__unixEpochFilter(column) -> time_unix_epoch > 1492750877 AND time_unix_epoch < 1492750877\n\nOr build your own conditionals using these macros which just return the values:\n- $__timeFrom() -> FROM_UNIXTIME(1492750877)\n- $__timeTo() -> FROM_UNIXTIME(1492750877)\n- $__unixEpochFrom() -> 1492750877\n- $__unixEpochTo() -> 1492750877\n\t\t</pre>\n\t</div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/datasource/mysql/partials/config.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'\n<h3 class=page-heading>MySQL Connection</h3>\n\n<div class=gf-form-group>\n\t<div class="gf-form max-width-30">\n\t\t<span class="gf-form-label width-7">Host</span>\n\t\t<input type=text class=gf-form-input ng-model=ctrl.current.url placeholder=localhost:3306 bs-typeahead="{{[\'localhost:3306\', \'localhost:3307\']}}" required>\n\t</div>\n\n\t<div class="gf-form max-width-30">\n\t\t<span class="gf-form-label width-7">Database</span>\n\t\t<input type=text class=gf-form-input ng-model=ctrl.current.database placeholder="database name" required>\n\t</div>\n\n\t<div class=gf-form-inline>\n\t\t<div class="gf-form max-width-15">\n\t\t\t<span class="gf-form-label width-7">User</span>\n\t\t\t<input type=text class=gf-form-input ng-model=ctrl.current.user placeholder=user>\n\t\t</div>\n\t\t<div class="gf-form max-width-15">\n\t\t\t<span class="gf-form-label width-7">Password</span>\n\t\t\t<input type=password class=gf-form-input ng-model=ctrl.current.password placeholder=password>\n\t\t</div>\n\t</div>\n</div>\n\n<div class=gf-form-group>\n\t<div class=grafana-info-box>\n\t\t<h5>User Permission</h5>\n\t\t<p>\n\t\t\tThe database user should only be granted SELECT permissions on the specified database &
8 tables you want to query.\n\t\t\tGrafana does not validate that queries are safe so queries can contain any SQL statement. For example, statements\n\t\t\tlike <code>USE otherdb;</code> and <code>DROP TABLE user;</code> would be executed. To protect against this we\n\t\t\t<strong>Highly</strong> recommmend you create a specific MySQL user with restricted permissions.\n\n\t\t\tCheckout the <a class=external-link target=_blank href=http://docs.grafana.org/features/datasources/mysql/ >MySQL Data Source Docs</a> for more information.\n\t\t</p>\n\t</div>\n</div>\n\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/datasource/mysql/partials/query.editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<query-editor-row query-ctrl=ctrl can-collapse=false>\n\t<div class=gf-form-inline>\n\t\t<div class="gf-form gf-form--grow">\n\t\t\t<code-editor content=ctrl.target.rawSql datasource=ctrl.datasource on-change=ctrl.panelCtrl.refresh() data-mode=sql>\n\t\t\t</code-editor>\n\t\t</div>\n\t</div>\n\n <div class=gf-form-inline>\n <div class=gf-form>\n\t\t\t<label class="gf-form-label query-keyword">Format as</label>\n\t\t\t<div class=gf-form-select-wrapper>\n\t\t\t\t<select class="gf-form-input gf-size-auto" ng-model=ctrl.target.format ng-options="f.value as f.text for f in ctrl.formats" ng-change=ctrl.refresh()></select>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=gf-form>\n <label class="gf-form-label query-keyword" ng-click="ctrl.showHelp = !ctrl.showHelp">\n Show Help\n <i class="fa fa-caret-down" ng-show=ctrl.showHelp></i>\n <i class="fa fa-caret-right" ng-hide=ctrl.showHelp></i>\n </label>\n\t\t</div>\n\t\t<div class=gf-form ng-show=ctrl.lastQueryMeta>\n <label class="gf-form-label query-keyword" ng-click="ctrl.showLastQuerySQL = !ctrl.showLastQuerySQL">\n Generated SQL\n <i class="fa fa-caret-down" ng-show=ctrl.showLastQuerySQL></i>\n <i class="fa fa-caret-right" ng-hide=ctrl.showLastQuerySQL></i>\n </label>\n\t\t</div>\n\t\t<div class="gf-form gf-form--grow">\n\t\t\t<div class="gf-form-label gf-form-label--grow"></div>\n\t\t</div>\n\t</div>\n\n\t<div class=gf-form ng-show=ctrl.showLastQuerySQL>\n\t\t<pre class=gf-form-pre>{{ctrl.lastQueryMeta.sql}}</pre>\n\t</div>\n\n\t<div class=gf-form ng-show=ctrl.showHelp>\n\t\t<pre class="gf-form-pre alert alert-info">Time series:\n- return column named time or time_sec (in UTC), as a unix time stamp or any sql native date data type. You can use the macros below.\n- return column(s) with numeric datatype as values\n- (Optional: return column named <i>metric</i> to represent the series name. If no column named metric is found the column name of the value column is used as series name)\n\nTable:\n- return any set of columns\n\nMacros:\n- $__time(column) -> UNIX_TIMESTAMP(column) as time_sec\n- $__timeEpoch(column) -> UNIX_TIMESTAMP(column) as time_sec\n- $__timeFilter(column) -> UNIX_TIMESTAMP(time_date_time) ≥ 1492750877 AND UNIX_TIMESTAMP(time_date_time) ≤ 1492750877\n- $__unixEpochFilter(column) -> time_unix_epoch > 1492750877 AND time_unix_epoch < 1492750877\n- $__timeGroup(column,\'5m\') -> cast(cast(UNIX_TIMESTAMP(column)/(300) as signed)*300 as signed)\n\nExample of group by and order by with $__timeGroup:\nSELECT\n $__timeGroup(timestamp_col, \'1h\') AS time,\n sum(value_double) as value\nFROM yourtable\nGROUP BY 1\nORDER BY 1\n\nOr build your own conditionals using these macros which just return the values:\n- $__timeFrom() -> FROM_UNIXTIME(1492750877)\n- $__timeTo() -> FROM_UNIXTIME(1492750877)\n- $__unixEpochFrom() -> 1492750877\n- $__unixEpochTo() -> 1492750877\n\t\t</pre>\n\t</div>\n\n\t\n\n\t<div class=gf-form ng-show=ctrl.lastQueryError>\n\t\t<pre class="gf-form-pre alert alert-error">{{ctrl.lastQueryError}}</pre>\n\t</div>\n\n</query-editor-row>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/datasource/opentsdb/partials/annotations.editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=gf-form-group>\n <div class=gf-form>\n <span class="gf-form-label width-13">OpenTSDB metrics query</span>\n <input type=text class=gf-form-input ng-model=ctrl.annotation.target placeholder=events.eventname>\n </div>\n <gf-form-switch class=gf-form label="Show Global Annotations?" checked=ctrl.annotation.isGlobal switch-class=max-width-6 label-class=width-13></gf-form-switch>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/datasource/opentsdb/partials/config.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<datasource-http-settings current=ctrl.current suggest-url=http://localhost:4242>
8</datasource-http-settings>\n\n<h5>OpenTSDB settings</h5>\n<div class=gf-form>\n <span class="gf-form-label width-7">\n Version\n </span>\n <span class=gf-form-select-wrapper>\n <select class="gf-form-input gf-size-auto" ng-model=ctrl.current.jsonData.tsdbVersion ng-options="v.value as v.name for v in ctrl.tsdbVersions"></select>\n </span>\n</div>\n<div class=gf-form>\n <span class="gf-form-label width-7">\n Resolution\n </span>\n <span class=gf-form-select-wrapper>\n <select class="gf-form-input gf-size-auto" ng-model=ctrl.current.jsonData.tsdbResolution ng-options="v.value as v.name for v in ctrl.tsdbResolutions"></select>\n </span>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/datasource/opentsdb/partials/query.editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<query-editor-row query-ctrl=ctrl can-collapse=false>\n\t<div class=gf-form-inline>\n\t\t<div class="gf-form max-width-25">\n\t\t\t<label class="gf-form-label query-keyword width-8">\n\t\t\t\tMetric\n\t\t\t\t<label class=gf-form-label bs-tooltip=ctrl.errors.metric style=color:#e5bd1c ng-show=ctrl.errors.metric>\n\t\t\t\t\t<i class="fa fa-warning"></i>\n\t\t\t\t</label>\n\t\t\t</label>\n\t\t\t<input type=text class=gf-form-input ng-model=ctrl.target.metric spellcheck=false bs-typeahead=ctrl.suggestMetrics placeholder="metric name" data-min-length=0 data-items=100 ng-blur=ctrl.targetBlur()>\n\t\t\t\n\t\t</div>\n\t\t<div class=gf-form>\n\t\t\t<label class="gf-form-label query-keyword">\n\t\t\t\tAggregator\n\t\t\t\t<a bs-tooltip=ctrl.errors.aggregator style=color:#e5bd1c ng-show=ctrl.errors.aggregator>\n\t\t\t\t\t<i class="fa fa-warning"></i>\n\t\t\t\t</a>\n\t\t\t</label>\n\t\t\t<div class="gf-form-select-wrapper max-width-15">\n\t\t\t\t<select ng-model=ctrl.target.aggregator class=gf-form-input ng-options="agg for agg in ctrl.aggregators" ng-change=ctrl.targetBlur()>\n\t\t \t </select>\n\t\t\t</div>\n\t\t</div>\n\t\t\t<div class="gf-form max-width-20">\n\t\t\t\t<label class="gf-form-label query-keyword width-6">\n\t\t\t\t\tAlias:\n\t\t\t\t\t<info-popover mode=right-normal>\n\t\t\t\t\t\tUse patterns like $tag_tagname to replace part of the alias for a tag value\n\t\t\t\t\t</info-popover>\n\t\t\t\t</label>\n\t\t\t\t<input type=text class=gf-form-input ng-model=ctrl.target.alias spellcheck=false placeholder="series alias" data-min-length=0 data-items=100 ng-blur=ctrl.targetBlur()>\n\t\t\t</div>\n\n\t\t\t<div class="gf-form gf-form--grow">\n\t\t\t\t<div class="gf-form-label gf-form-label--grow"></div>\n\t\t\t</div>\n\t</div>\n\n\t<div class=gf-form-inline>\n\t\t<div class="gf-form max-width-25">\n\t\t\t<label class="gf-form-label query-keyword width-8">Down sample</label>\n\t\t\t<input type=text class=gf-form-input ng-model=ctrl.target.downsampleInterval ng-model-onblur ng-change=ctrl.targetBlur() placeholder=interval>\n\t\t\t<info-popover mode=right-absolute>\n\t\t\t\tblank for auto, or for example <code>1m</code>\n\t\t\t</info-popover>\n\t\t</div>\n\n\t\t<div class=gf-form>\n\t\t\t<label class="gf-form-label query-keyword">Aggregator</label>\n\t\t\t<div class=gf-form-select-wrapper>\n\t\t\t\t<select ng-model=ctrl.target.downsampleAggregator class=gf-form-input ng-options="agg for agg in ctrl.aggregators" ng-change=ctrl.targetBlur()>\n\t\t\t\t</select>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=gf-form ng-if="ctrl.tsdbVersion >= 2">\n\t\t\t<label class="gf-form-label query-keyword width-6">Fill</label>\n\t\t\t<div class=gf-form-select-wrapper>\n\t\t\t\t<select ng-model=ctrl.target.downsampleFillPolicy class=gf-form-input ng-options="agg for agg in ctrl.fillPolicies" ng-change=ctrl.targetBlur()>\n\t\t\t\t</select>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<gf-form-switch class=gf-form label="Disable downsampling" label-class=query-keyword checked=ctrl.target.disableDownsampling on-change=ctrl.targetBlur()>\n\t\t</gf-form-switch>\n\n\t\t<div class="gf-form gf-form--grow">\n\t\t\t<div class="gf-form-label gf-form-label--grow"></div>\n\t\t</div>\n\t</div>\n\n\t<div class=gf-form-inline ng-if="ctrl.tsdbVersion >= 2">\n\t\t<div class=gf-form>\n\n\t\t\t<label class="gf-form-label query-keyword width-8">\n\t\t\t\tFilters\n\t\t\t\t<info-popover mode=right-normal>\n\t\t\t\t\tFilters does not work with tags, either of the two will work but not both.\n\t\t\t\t</info-popover>\n\t\t\t</label>\n\n\t\t\t<div ng-repeat="fil in ctrl.target.filters track by $index" class=gf-form-label>\n\t\t\t\t{{fil.tagk}} = {{fil.type}}({{fil.filter}}) , groupBy = {{fil.groupBy}
8}\n\t\t\t\t<a ng-click="ctrl.editFilter(fil, $index)">\n\t\t\t\t\t<i class="fa fa-pencil"></i>\n\t\t\t\t</a>\n\t\t\t\t<a ng-click=ctrl.removeFilter($index)>\n\t\t\t\t\t<i class="fa fa-remove"></i>\n\t\t\t\t</a>\n\t\t\t</div>\n\t\t\t<label class="gf-form-label query-keyword" ng-hide=ctrl.addFilterMode>\n\t\t\t\t<a ng-click=ctrl.addFilter()>\n\t\t\t\t\t<i class="fa fa-plus"></i>\n\t\t\t\t</a>\n\t\t\t</label>\n \t\t</div>\n\n\t\t<div class=gf-form-inline ng-show=ctrl.addFilterMode>\n\t\t\t<div class=gf-form>\n\t\t\t\t<input type=text class=gf-form-input spellcheck=false bs-typeahead=ctrl.suggestTagKeys data-min-length=0 data-items=100 ng-model=ctrl.target.currentFilterKey placeholder=key>\n\t\t\t\t\n\t\t\t</div>\n\n\t\t\t<div class=gf-form>\n\t\t\t\t<label class="gf-form-label query-keyword">Type</label>\n\t\t\t\t<div class=gf-form-select-wrapper>\n\t\t\t\t\t<select ng-model=ctrl.target.currentFilterType class=gf-form-input ng-options="filType for filType in ctrl.filterTypes">\n\t\t\t\t\t</select>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class=gf-form>\n\t\t\t\t<input type=text class=gf-form-input spellcheck=false bs-typeahead=ctrl.suggestTagValues data-min-length=0 data-items=100 ng-model=ctrl.target.currentFilterValue placeholder=filter>\n\t\t\t\t\n\t\t\t</div>\n\n <gf-form-switch class=gf-form label="Group by" label-class=query-keyword checked=ctrl.target.currentFilterGroupBy on-change=ctrl.targetBlur()>\n\t\t\t</gf-form-switch>\n\n\t\t\t<div class=gf-form ng-show=ctrl.addFilterMode>\n\t\t\t\t<label class=gf-form-label ng-show=ctrl.errors.filters>\n\t\t\t\t\t<a bs-tooltip=ctrl.errors.filters style=color:#e5bd1c>\n\t\t\t\t\t\t<i class="fa fa-warning"></i>\n\t\t\t\t\t</a>\n\t\t\t\t</label>\n\t\t\t\t<label class=gf-form-label>\n\t\t\t\t\t<a ng-click=ctrl.addFilter() ng-hide=ctrl.errors.filters>add filter</a>\n\t\t\t\t\t<a ng-click=ctrl.closeAddFilterMode()>\n\t\t\t\t\t\t<i class="fa fa-remove"></i>\n\t\t\t\t\t</a>\n\t\t\t\t</label>\n\t\t\t</div>\n\n\t\t</div>\n\n\t\t<div class="gf-form gf-form--grow">\n\t\t\t<div class="gf-form-label gf-form-label--grow"></div>\n\t\t</div>\n\t</div>\n\n\t<div class=gf-form-inline>\n\t\t<div class=gf-form>\n\t\t\t<label class="gf-form-label query-keyword width-8">\n\t\t\t\tTags\n\t\t\t\t<info-popover mode=right-normal ng-if="ctrl.tsdbVersion >= 2">
8\n\t\t\t\t\tPlease use filters, tags are deprecated in opentsdb 2.2\n\t\t\t\t</info-popover>\n\t\t\t</label>\n\t\t</div>\n\n\t\t<div class=gf-form ng-repeat="(key, value) in ctrl.target.tags track by $index" class=gf-form>\n\t\t\t<label class=gf-form-label>\n\t\t\t\t{{key}} = {{value}}\n\t\t\t\t<a ng-click="ctrl.editTag(key, value)">\n\t\t\t\t\t<i class="fa fa-pencil"></i>\n\t\t\t\t</a>\n\t\t\t\t<a ng-click=ctrl.removeTag(key)>\n\t\t\t\t\t<i class="fa fa-remove"></i>\n\t\t\t\t</a>\n\t\t\t</label>\n\t\t</div>\n\n\t\t<div class=gf-form ng-hide=ctrl.addTagMode>\n\t\t\t<label class="gf-form-label query-keyword">\n\t\t\t\t<a ng-click=ctrl.addTag()><i class="fa fa-plus"></i></a>\n\t\t\t</label>\n\t\t</div>\n\n\t\t<div class=gf-form ng-show=ctrl.addTagMode>\n\t\t\t<input type=text class=gf-form-input spellcheck=false bs-typeahead=ctrl.suggestTagKeys data-min-length=0 data-items=100 ng-model=ctrl.target.currentTagKey placeholder=key>\n\t\t\t\n\n\t\t\t<input type=text class=gf-form-input spellcheck=false bs-typeahead=ctrl.suggestTagValues data-min-length=0 data-items=100 ng-model=ctrl.target.currentTagValue placeholder=value>\n\t\t\t\n\n\t\t\t<label class=gf-form-label ng-show=ctrl.errors.tags>\n\t\t\t\t<a bs-tooltip=ctrl.errors.tags style=color:#e5bd1c>\n\t\t\t\t\t<i class="fa fa-warning"></i>\n\t\t\t\t</a>\n\t\t\t</label>\n\t\t\t<label class=gf-form-label>\n\t\t\t\t<a ng-click=ctrl.addTag() ng-hide=ctrl.errors.tags>add tag</a>\n\t\t\t\t<a ng-click=ctrl.closeAddTagMode()><i class="fa fa-remove"></i></a>\n\t\t\t</label>\n\t\t</div>\n\n\t\t<div class="gf-form gf-form--grow">\n\t\t\t<div class="gf-form-label gf-form-label--grow"></div>\n\t\t</div>\n\t</div>\n\n\t<div class=gf-form-inline>\n\t\t<gf-form-switch class=gf-form label=Rate label-class="width-8 query-keyword" checked=ctrl.target.shouldComputeRate on-change=ctrl.targetBlur()>\n\t\t</gf-form-switch>\n\n\t\t<gf-form-switch ng-hide=!ctrl.target.shouldComputeRate class=gf-form label=Counter label-class=query-keyword checked=ctrl.target.isCounter on-change=ctrl.targetBlur()>\n\t\t</gf-form-switch>\n\n\n\t\t<div class=gf-form ng-hide="!ctrl.target.isCounter || !ctrl.target.shouldComputeRate">\n\t\t\t<label class="gf-form-label query-keyword">Counter Max</label>\n\t\t\t<input type=text class=gf-form-input ng-disabled=!ctrl.target.shouldComputeRate ng-model=ctrl.target.counterMax spellcheck=false placeholder="max value" ng-model-onblur ng-blur=ctrl.targetBlur()>\n\t\t\t\n\n\t\t\t<label class="gf-form-label query-keyword">Reset Value</label>\n\t\t\t<input type=text class="tight-form-input input-small" ng-disabled=!ctrl.target.shouldComputeRate ng-model=ctrl.target.counterResetValue spellcheck=false placeholder="reset value" ng-model-onblur ng-blur=ctrl.targetBlur()>\n\t\t\t\n\t\t</div>\n\n\t\t<div class=gf-form ng-if="ctrl.tsdbVersion > 2">\n\t\t\t<gf-form-switch class=gf-form label="Explicit tags" label-class="width-8 query-keyword" checked=ctrl.target.explicitTags on-change=ctrl.targetBlur()>\n\t\t\t</gf-form-switch>\n\t\t</div>\n\n\t\t<div class="gf-form gf-form--grow">\n\t\t\t<div class="gf-form-label gf-form-label--grow"></div>\n\t\t</div>\n\t</div>\n</query-editor-row>\n\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/datasource/postgres/partials/annotations.editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'\n<div class=gf-form-group>\n <div class=gf-form-inline>\n\t\t<div class="gf-form gf-form--grow">\n\t\t\t<textarea rows=10 class=gf-form-input ng-model=ctrl.annotation.rawQuery spellcheck=false placeholder="query expression" data-min-length=0 data-items=100 ng-model-onblur ng-change=ctrl.panelCtrl.refresh()></textarea>\n\t\t</div>\n\t</div>\n\n <div class=gf-form-inline>\n <div class=gf-form>\n <label class="gf-form-label query-keyword" ng-click="ctrl.showHelp = !ctrl.showHelp">\n Show Help\n <i class="fa fa-caret-down" ng-show=ctrl.showHelp></i>\n <i class="fa fa-caret-right" ng-hide=ctrl.showHelp></i>\n </label>\n\t\t</div>\n </div>\n\n <div class=gf-form ng-show=ctrl.showHelp>\n\t\t<pre class="gf-form-pre alert alert-info"><h6>Annotation Query Format</h6>\nAn annotation is an event that is overlaid on top of graphs. The query can have up to three columns per row, the time column is mandatory. Annotation rendering is expensive so it is important to limit the number of rows returned.\n\n- column with alias: <b>time</b> for the annotation event time. Use epoch time or any native date data type.\n- column with alias: <b>text</b> for the annotation text\n- column with alias: <b>tags</b> for annotation tags. This is a comma separated string of tags e.g. \'tag1,tag2\'\n\n\nMacros:\n- $__time(column) -> column as "time"\n- $__timeEpoch -> extract(epoch from column) as "time"\n- $__timeFilter(column) -> column BETWEEN \'2017-04-21T05:01:17Z\' AND \'2017-04-21T05:01:17Z\'\n- $__unixEpochFilter(column) -> column >= 1492750877 AND column <= 1492750877\n\nOr build your own conditionals using these macros which just return the values:\n- $__timeFrom() -> \'2017-04-21T05:01:17Z\'\n- $__timeTo() -> \'2017-04-21T05:01:17Z\'\n- $__unixEpochFrom() -> 1492750877\n- $__unixEpochTo() -> 1492750877\n\t\t</pre>\n\t</div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/datasource/postgres/partials/config.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'\n<h3 class=page-heading>PostgreSQL Connection</h3>\n\n<div class=gf-form-group>\n\t<div class="gf-form max-width-30">\n\t\t<span class="gf-form-label width-7">Host</span>\n\t\t<input type=text class=gf-form-input ng-model=ctrl.current.url placeholder=localhost:5432 bs-typeahead="{{[\'localhost:5432\', \'localhost:5433\']}}" required>\n\t</div>\n\n\t<div class="gf-form max-width-30">\n\t\t<span class="gf-form-label width-7">Database</span>\n\t\t<input type=text class=gf-form-input ng-model=ctrl.current.database placeholder="database name" required>\n\t</div>\n\n\t<div class=gf-form-inline>\n\t\t<div class="gf-form max-width-15">\n\t\t\t<span class="gf-form-label width-7">User</span>\n\t\t\t<input type=text class=gf-form-input ng-model=ctrl.current.user placeholder=user>\n\t\t</div>\n\t\t<div class="gf-form max-width-15" ng-if=!ctrl.current.secureJsonFields.password>\n\t\t\t<span class="gf-form-label width-7">Password</span>\n\t\t\t<input type=password class=gf-form-input ng-model=ctrl.current.secureJsonData.password placeholder=password>\n </div>\n <div class="gf-form max-width-19" ng-if=ctrl.current.secureJsonFields.password>
8\n <span class="gf-form-label width-7">Password</span>\n <input type=text class=gf-form-input disabled=disabled value=configured>\n <a class="btn btn-secondary gf-form-btn" href=# ng-click="ctrl.current.secureJsonFields.password = false">reset</a>\n </div>\n\t</div>\n\t<div class=gf-form>\n\t\t<label class="gf-form-label width-7">SSL Mode</label>\n\t\t<div class="gf-form-select-wrapper max-width-15 gf-form-select-wrapper--has-help-icon">\n\t\t\t<select class=gf-form-input ng-model=ctrl.current.jsonData.sslmode ng-options="mode for mode in [\'disable\', \'require\', \'verify-ca\', \'verify-full\']" ng-init=ctrl.current.jsonData.sslmode></select>\n\t\t\t<info-popover mode=right-absolute>\n\t\t\t\tThis option determines whether or with what priority a secure SSL TCP/IP connection will be negotiated with the server.\n\t\t\t</info-popover>\n\t\t</div>\n\t</div>\n</div>\n\n<div class=gf-form-group>\n\t<div class=grafana-info-box>\n\t\t<h5>User Permission</h5>\n\t\t<p>\n\t\t\tThe database user should only be granted SELECT permissions on the specified database & tables you want to query.\n\t\t\tGrafana does not validate that queries are safe so queries can contain any SQL statement. For example, statements\n\t\t\tlike <code>DELETE FROM user;</code> and <code>DROP TABLE user;</code> would be executed. To protect against this we\n\t\t\t<strong>Highly</strong> recommmend you create a specific PostgreSQL user with restricted permissions.\n\t\t</p>\n\t</div>\n</div>\n\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/datasource/postgres/partials/query.editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<query-editor-row query-ctrl=ctrl can-collapse=false>\n\t<div class=gf-form-inline>\n\t\t<div class="gf-form gf-form--grow">\n\t\t\t<code-editor content=ctrl.target.rawSql datasource=ctrl.datasource on-change=ctrl.panelCtrl.refresh() data-mode=sql>\n\t\t\t</code-editor>\n\t\t</div>\n\t</div>\n\n <div class=gf-form-inline>\n <div class=gf-form>\n\t\t\t<label class="gf-form-label query-keyword">Format as</label>\n\t\t\t<div class=gf-form-select-wrapper>\n\t\t\t\t<select class="gf-form-input gf-size-auto" ng-model=ctrl.target.format ng-options="f.value as f.text for f in ctrl.formats" ng-change=ctrl.refresh()></select>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=gf-form>\n <label class="gf-form-label query-keyword" ng-click="ctrl.showHelp = !ctrl.showHelp">\n Show Help\n <i class="fa fa-caret-down" ng-show=ctrl.showHelp></i>\n <i class="fa fa-caret-right" ng-hide=ctrl.showHelp></i>\n </label>\n\t\t</div>\n\t\t<div class=gf-form ng-show=ctrl.lastQueryMeta>\n <label class="gf-form-label query-keyword" ng-click="ctrl.showLastQuerySQL = !ctrl.showLastQuerySQL">\n Generated SQL\n <i class="fa fa-caret-down" ng-show=ctrl.showLastQuerySQL></i>\n <i class="fa fa-caret-right" ng-hide=ctrl.showLastQuerySQL></i>\n </label>\n\t\t</div>\n\t\t<div class="gf-form gf-form--grow">\n\t\t\t<div class="gf-form-label gf-form-label--grow"></div>\n\t\t</div>\n\t</div>\n\n\t<div class=gf-form ng-show=ctrl.showLastQuerySQL>\n\t\t<pre class=gf-form-pre>{{ctrl.lastQueryMeta.sql}}</pre>\n\t</div>\n\n\t<div class=gf-form ng-show=ctrl.showHelp>\n\t\t<pre class="gf-form-pre alert alert-info">Time series:\n- return column named <i>time</i> (UTC in seconds or timestamp)\n- return column(s) with numeric datatype as values\n- (Optional: return column named <i>metric</i> to represent the series name. If no column named metric is found the column name of the value column is used as series name)\n\nTable:\n- return any set of columns\n\nMacros:\n- $__time(column) -> column as "time"\n- $__timeEpoch -> extract(epoch from column) as "time"\n- $__timeFilter(column) -> column BETWEEN \'2017-04-21T05:01:17Z\' AND \'2017-04-21T05:01:17Z\'\n- $__unixEpochFilter(column) -> column >= 1492750877 AND column <= 1492750877\n- $__timeGroup(column,\'5m\') -> (extract(epoch from column)/300)::bigint*300 AS time\n\nExample of group by and order by with $__timeGroup:\nSELECT\n $__timeGroup(date_time_col, \'1h\'),\n sum(value) as value\
8nFROM yourtable\nGROUP BY time\nORDER BY time\n\nOr build your own conditionals using these macros which just return the values:\n- $__timeFrom() -> \'2017-04-21T05:01:17Z\'\n- $__timeTo() -> \'2017-04-21T05:01:17Z\'\n- $__unixEpochFrom() -> 1492750877\n- $__unixEpochTo() -> 1492750877\n\t\t</pre>\n\t</div>\n\n\t\n\n\t<div class=gf-form ng-show=ctrl.lastQueryError>\n\t\t<pre class="gf-form-pre alert alert-error">{{ctrl.lastQueryError}}</pre>\n\t</div>\n\n</query-editor-row>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/datasource/prometheus/partials/annotations.editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=gf-form-group>\n\t<div class=gf-form>\n\t\t<span class="gf-form-label width-10">Search expression</span>\n\t\t<input type=text class=gf-form-input ng-model=ctrl.annotation.expr placeholder=ALERTS>\n\t</div>\n\t<div class=gf-form>\n\t\t<span class="gf-form-label width-10">step</span>\n\t\t<input type=text class="gf-form-input max-width-6" ng-model=ctrl.annotation.step placeholder=60s>\n\t</div>\n</div>\n\n<div class=gf-form-group>\n\t<h5 class=section-heading>Field formats\n\t<div class=gf-form-inline>\n\t\t<div class=gf-form>\n\t\t\t<span class="gf-form-label width-5">Title</span>\n\t\t\t<input type=text class="gf-form-input max-width-9" ng-model=ctrl.annotation.titleFormat placeholder=alertname>\n\t\t</div>\n\t\t<div class=gf-form>\n\t\t\t<span class="gf-form-label width-5">Tags</span>\n\t\t\t<input type=text class="gf-form-input max-width-9" ng-model=ctrl.annotation.tagKeys placeholder=label1,label2>\n\t\t</div>\n\t\t<div class=gf-form-inline>\n\t\t\t<div class=gf-form>\n\t\t\t\t<span class="gf-form-label width-5">Text</span>\n\t\t\t\t<input type=text class="gf-form-input max-width-9" ng-model=ctrl.annotation.textFormat placeholder=instance>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</h5></div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/datasource/prometheus/partials/config.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<datasource-http-settings current=ctrl.current suggest-url=http://localhost:9090>\n</datasource-http-settings>\n\n<div class=gf-form-group>\n <div class=gf-form-inline>\n <div class=gf-form>
8\n <span class="gf-form-label width-8">Scrape interval</span>\n <input type=text class="gf-form-input width-8" ng-model=ctrl.current.jsonData.timeInterval spellcheck=false placeholder=15s>\n <info-popover mode=right-absolute>\n Set this to your global scrape interval defined in your Prometheus config file. This will be used as a lower limit for the\n Prometheus step query parameter.\n </info-popover>\n </div>\n </div>\n\n <div class=gf-form-inline>\n <div class=gf-form>\n <span class="gf-form-label width-8">Query timeout</span>\n <input type=text class="gf-form-input width-8" ng-model=ctrl.current.jsonData.queryTimeout spellcheck=false placeholder=60s>\n <info-popover mode=right-absolute>\n Set the Prometheus query timeout.\n </info-popover>\n </div>\n </div>\n\n <div class=gf-form>\n <label class="gf-form-label width-8">HTTP Method</label>\n <div class="gf-form-select-wrapper width-8 gf-form-select-wrapper--has-help-icon">\n <select class=gf-form-input ng-model=ctrl.current.jsonData.httpMethod ng-options="method for method in [\'GET\', \'POST\']"></select>\n <info-popover mode=right-absolute>\n Specify the HTTP Method to query Prometheus. (POST is only available in Prometheus >= v2.1.0)\n </info-popover>\n </div>\n </div>\n</div>\n\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/datasource/prometheus/partials/query.editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<query-editor-row query-ctrl=ctrl can-collapse=true has-text-edit-mode=false>\n <div class=gf-form-inline>\n <div class="gf-form gf-form--grow">\n <code-editor content=ctrl.target.expr datasource=ctrl.datasource on-change=ctrl.refreshMetricData() get-completer=ctrl.getCompleter() data-mode=prometheus code-editor-focus=ctrl.isLastQuery>\n </code-editor>\n </div>\n </div>\n\n <div class=gf-form-inline>\n <div class="gf-form max-width-26">\n <label class="gf-form-label width-8">Legend format</label>\n <input type=text class=gf-form-input ng-model=ctrl.target.legendFormat spellcheck=false placeholder="legend format" data-min-length=0 data-items=1000 ng-model-onblur ng-change=ctrl.refreshMetricData()>\n \n <info-popover mode=right-absolute>\n Controls the name of the time series, using name or pattern. For example\n <span ng-non-bindable>{{hostname}}</span> will be replaced with label value for the label hostname.\n </info-popover>\n </div>\n\n <div class=gf-form>\n <label class="gf-form-label width-6">Min step</label>\n <input type=text class="gf-form-input width-8" ng-model=ctrl.target.interval data-placement=right spellcheck=false placeholder={{ctrl.panelCtrl.interval}} data-min-length=0 data-items=100 ng-model-onblur ng-change=ctrl.refreshMetricData() />\n <info-popover mode=right-absolute>\n Leave blank for auto handling based on time range and panel width. Note that the actual dates used in the query will be adjusted\n to a multiple of the interval step.\n </info-popover>\n </div>\n\n <div class=gf-form>\n <label class=gf-form-label>Resolution</label>\n <div class="gf-form-select-wrapper max-width-15">\n <select ng-model=ctrl.target.intervalFactor class=gf-form-input ng-options="r.factor as r.label for r in ctrl.resolutions" ng-change=ctrl.refreshMetricData()>\n </select>\n </div>\n </div>\n\n <div class=gf-form>\n <label class="gf-form-label width-6">Format as</label>\n <div class="gf-form-select-wrapper width-8">\n <select class="gf-form-input gf-size-auto" ng-model=ctrl.target.format ng-options="f.value as f.text for f in ctrl.formats" ng-change=ctrl.refresh()></select>\n </div>\n <gf-form-switch class=gf-form label=Instant label-class=width-5 checked=ctrl.target.instant on-change=ctrl.refresh()>\n </gf-form-switch>\n <label class=gf-form-label>\n <a href={{ctrl.linkToPrometheus}} target=_blank bs-tooltip="\'Link to Graph in Prometheus\'">\n <i class="fa fa-share-square-o"></i>\n </a>\n </label>\n </div>\n\n <div class="gf-form gf-form--grow">\n <div class="gf-form-label gf-form-label--grow"></div>\n </div>\n </div>\n</query-editor-row>')}]),e.exports=n},function(e,t){var n="public/app/plugins/panel/alertlist/editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div>\n <div class="section gf-form-group">\n <h5 class=section-heading>Options</h5>\n <div class=gf-form>
8\n <span class="gf-form-label width-8">Show</span>\n <div class="gf-form-select-wrapper max-width-15">\n <select class=gf-form-input ng-model=ctrl.panel.show ng-options="f.value as f.text for f in ctrl.showOptions" ng-change=ctrl.onRefresh()></select>\n </div>\n </div>\n <div class=gf-form>\n <span class="gf-form-label width-8">Max items</span>\n <input type=text class="gf-form-input max-width-15" ng-model=ctrl.panel.limit ng-change=ctrl.onRefresh() />\n </div>\n <div class=gf-form ng-show="ctrl.panel.show === \'current\'">\n <span class="gf-form-label width-8">Sort order</span>\n <div class="gf-form-select-wrapper max-width-15">\n <select class=gf-form-input ng-model=ctrl.panel.sortOrder ng-options="f.value as f.text for f in ctrl.sortOrderOptions" ng-change=ctrl.onRefresh()></select>\n </div>\n </div>\n <gf-form-switch class=gf-form label="Alerts from this dashboard" label-class=width-18 checked=ctrl.panel.onlyAlertsOnDashboard on-change=ctrl.updateStateFilter()></gf-form-switch>\n </div>\n <div class="section gf-form-group" ng-show="ctrl.panel.show === \'current\'">\n <h5 class=section-heading>Filter</h5>\n <div class=gf-form>
8\n <span class="gf-form-label width-8">Alert name</span>\n <input type=text class="gf-form-input max-width-15" ng-model=ctrl.panel.nameFilter placeholder="Alert name query" ng-change=ctrl.onRefresh() />\n </div>\n <div class=gf-form>\n <span class="gf-form-label width-8">Dashboard title</span>\n <input type=text class=gf-form-input placeholder="Dashboard title query" ng-model=ctrl.panel.dashboardFilter ng-change=ctrl.onRefresh() ng-model-onblur>\n </div>\n <div class=gf-form>\n <folder-picker initial-folder-id=ctrl.panel.folderId on-change=ctrl.onFolderChange($folder) label-class=width-8 initial-title="\'All\'" enable-reset=true>\n </folder-picker>\n </div>\n <div class=gf-form>\n <span class="gf-form-label width-8">Dashboard tags</span>\n <bootstrap-tagsinput ng-model=ctrl.panel.dashboardTags tagclass="label label-tag" placeholder="add tags" on-tags-updated=ctrl.refresh()>\n </bootstrap-tagsinput>\n </div>\n </div>\n <div class="section gf-form-group" ng-show="ctrl.panel.show === \'current\'">\n <h5 class=section-heading>State filter</h5>\n <gf-form-switch class=gf-form label=Ok label-class=width-10 checked="ctrl.stateFilter[\'ok\']" on-change=ctrl.updateStateFilter()></gf-form-switch>\n <gf-form-switch class=gf-form label=Paused label-class=width-10 checked="ctrl.stateFilter[\'paused\']" on-change=ctrl.updateStateFilter()></gf-form-switch>\n <gf-form-switch class=gf-form label="No data" label-class=width-10 checked="ctrl.stateFilter[\'no_data\']" on-change=ctrl.updateStateFilter()></gf-form-switch>\n <gf-form-switch class=gf-form label="Execution error" label-class=width-10 checked="ctrl.stateFilter[\'execution_error\']" on-change=ctrl.updateStateFilter()></gf-form-switch>\n <gf-form-switch class=gf-form label=Alerting label-class=width-10 checked="ctrl.stateFilter[\'alerting\']" on-change=ctrl.updateStateFilter()></gf-form-switch>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/panel/alertlist/module.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=panel-alert-list>\n <div class=panel-alert-list__no-alerts ng-show=ctrl.noAlertsMessage>\n {{ctrl.noAlertsMessage}}\n </div>\n\n <section ng-if="ctrl.panel.show === \'current\'">\n <ol class=alert-rule-list>\n <li class=alert-rule-item ng-repeat="alert in ctrl.currentAlerts">\n <div class="alert-rule-item__icon {{alert.stateModel.stateClass}}">\n <i class={{alert.stateModel.iconClass}}></i>\n </div>\n <div class=alert-rule-item__body>\n <div class=alert-rule-item__header>\n <p class=alert-rule-item__name>\n <a href="{{alert.url}}?panelId={{alert.panelId}}&fullscreen&edit&tab=alert">\n {{alert.name}}\n </a>\n </p>\n <div class=alert-rule-item__text>\n <span class={{alert.stateModel.stateClass}}>{{alert.stateModel.text}}</span>\n <span class=alert-rule-item__time>for {{alert.newStateDateAgo}}</span>\n </div>\n </div>\n </div>\n </li>\n </ol>\n </section>\n\n <section ng-if="ctrl.panel.show === \'changes\'">\n <ol class=alert-rule-list>\n <li class=alert-rule-item ng-repeat="al in ctrl.alertHistory">\n <div class="alert-rule-item__icon {{al.stateModel.stateClass}}">\n <i class={{al.stateModel.iconClass}}></i>\n </div>\n <div class=alert-rule-item__body>\n <div class=alert-rule-item__header>\n <p class=alert-rule-item__name>{{al.alertName}}</p>\n <div class=alert-rule-item__text>\n <span class={{al.stateModel.stateClass}}>{{al.stateModel.text}}</span>\n </div>\n </div>\n <span class=alert-rule-item__info>{{al.info}}</span>\n </div>\n <div class=alert-rule-item__time>\n <span>{{al.time}}</span>\n </div>\n </li>\n </ol>\n </section>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/panel/dashlist/editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div>\n <div class="section gf-form-group">\n <h5 class=section-heading>Options</h5>\n\n <gf-form-switch class=gf-form label=Starred label-class=width-9 checked=ctrl.panel.starred on-change=ctrl.refresh()></gf-form-switch>\n <gf-form-switch class=gf-form label="Recently viewed" label-class=width-9 checked=ctrl.panel.recent on-change=ctrl.refresh()></gf-form-switch>\n <gf-form-switch class=gf-form label=Search label-class=width-9 checked=ctrl.panel.search on-change=ctrl.refresh()></gf-form-switch>\n\n <gf-form-switch class=gf-form label="Show headings" label-class=width-9 checked=ctrl.panel.headings on-change=ctrl.refresh()></gf-form-switch>\n\n <div class=gf-form>
8\n <span class="gf-form-label width-9">Max items</span>\n <input class="gf-form-input max-width-5" type=number ng-model=ctrl.panel.limit ng-model-onblur ng-change=ctrl.refresh()>\n </div>\n </div>\n\n <div class="section gf-form-group">\n <h5 class=section-heading>Search</h5>\n\n <div class=gf-form>\n <span class="gf-form-label width-6">Query</span>\n <input type=text class=gf-form-input placeholder="title query" ng-model=ctrl.panel.query ng-change=ctrl.refresh() ng-model-onblur>\n </div>\n\n <div class=gf-form>\n <folder-picker initial-folder-id=ctrl.panel.folderId on-change=ctrl.onFolderChange($folder) label-class=width-6 initial-title="\'All\'" enable-reset=true>\n\t\t\t</folder-picker>\n </div>\n\n <div class=gf-form>\n <span class="gf-form-label width-6">Tags</span>\n <bootstrap-tagsinput ng-model=ctrl.panel.tags tagclass="label label-tag" placeholder="add tags" on-tags-updated=ctrl.refresh()>\n </bootstrap-tagsinput>\n </div>\n </div>\n\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/panel/dashlist/module.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div>\n <div class=dashlist ng-repeat="group in ctrl.groups">\n <div class=dashlist-section ng-if=group.show>\n <h6 class=dashlist-section-header ng-show=ctrl.panel.headings>\n {{group.header}}\n </h6>\n <div class=dashlist-item ng-repeat="dash in group.list">\n <a class="dashlist-link dashlist-link-{{dash.type}}" href={{dash.url}}>\n <span class=dashlist-title>\n {{dash.title}}\n </span>\n <span class=dashlist-star ng-click="ctrl.starDashboard(dash, $event)">\n <i class=fa ng-class="{\'fa-star\': dash.isStarred, \'fa-star-o\': dash.isStarred === false}"></i>\n </span>\n </a>\n </div>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/panel/experimentdetails/module.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,"\n<style>.experimentlabel{font-weight:700}</style>\n\n<div style=overflow:scroll;height:100%>\n \n <br>\n <h3>{{ ctrl.experiment.title }}</h3>\n\n <br><span class=experimentlabel>Created:</span> {{ ctrl.experiment.created }}\n <br><span class=experimentlabel>Duration:</span> {{ ctrl.experiment.duration.toFixed(1) }}s\n <br><span class=experimentlabel>Notes:</span> \n <span style=white-space:pre-wrap>{{ ctrl.experiment.notes }}</span>\n\n <br>\n</div>")}]),e.exports=n},function(e,t){var n="public/app/plugins/panel/experimentvideo/module.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'\n\n<style>.video-js,.vjs-tech{position:relative!important;width:100%!important;height:100%!important}.vjs-poster{position:absolute!important;left:0;right:0;top:0;bottom:0}.video-not-found{text-align:center;margin:20px 0}.video-sync-toolbar{position:absolute;top:2px;right:15px;background-color:#000;padding:0 5px;border-radius:3px}.video-sync-checkbox{float:right;padding:1px 5px}.video-sync-checkbox input{position:relative;top:-1px}.video-sync-set{border-radius:3px}.video-sync-set:hover{background-color:#666}</style>\n\n<div ng-if=ctrl.isTranscoding class=video-not-found>\n Processing video, please wait...\n <br><br>\n</div>\n\n\n<div style=height:100% ng-if="!ctrl.isTranscoding && ctrl.videoUrl">\n <div style=height:100% video-js src=ctrl.videoUrl offset=ctrl.offsetSec sync=ctrl.syncEnabled player=ctrl.player></div>\n <div class=video-sync-toolbar>\n <div class=video-sync-checkbox>\n SYNC\n <input type=checkbox ng-click=ctrl.syncClicked() ng-model=ctrl.syncEnabled>\n </div>\n <div>\n <input class=video-sync-set type=button value="SET REF" ng-click=ctrl.setRefClicked()>\n </div> \n </div>\n</div>\n\n<div ng-if="!ctrl.isTranscoding && !ctrl.videoUrl" class=video-not-found>\n No video was found for this experiment.\n <br><br>\n <button class="btn btn-secondary" ng-click=ctrl.showUploadDialog()>Upload a Video</button>\n <div id=drag-drop-area></div>\n</div>\n\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/panel/gettingstarted/editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=gf-form-group>\n\t<div class=gf-form-inline>\n\t\t<div class=gf-form>\n\t\t\t<span class="gf-form-label width-10">
8Mode</span>\n\t\t\t<div class="gf-form-select-wrapper max-width-10">\n\t\t\t\t<select class=gf-form-input ng-model=ctrl.panel.mode ng-options="f for f in ctrl.modes" ng-change=ctrl.refresh()></select>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=gf-form ng-show="ctrl.panel.mode === \'recently viewed\'">\n\t\t\t<span class=gf-form-label>\n\t\t\t\t<i class="grafana-tip fa fa-question-circle ng-scope" bs-tooltip="\'WARNING: This list will be cleared when clearing browser cache\'" data-original-title="" title=""></i>\n\t\t\t</span>\n\t\t</div>\n\t</div>\n\n\t<div class=gf-form-inline ng-if="ctrl.panel.mode === \'search\'">\n\t\t<div class=gf-form>\n\t\t\t<span class="gf-form-label width-10">Search options</span>\n\t\t\t<span class=gf-form-label>Query</span>\n\n\t\t\t<input type=text class=gf-form-input placeholder="title query" ng-model=ctrl.panel.query ng-change=ctrl.refresh() ng-model-onblur>\n\n\t\t</div>\n\n\t\t<div class=gf-form>\n\t\t\t<span class=gf-form-label>Tags</span>\n\n\t\t\t<bootstrap-tagsinput ng-model=ctrl.panel.tags tagclass="label label-tag" placeholder="add tags" on-tags-updated=ctrl.refresh()>\n\t\t\t</bootstrap-tagsinput>\n\t\t</div>\n\t</div>\n\n\t<div class=gf-form-inline>\n\t\t<div class=gf-form>\n\t\t\t<span class="gf-form-label width-10">Limit number to</span>\n\t\t\t<input class=gf-form-input type=number ng-model=ctrl.panel.limit ng-model-onblur ng-change=ctrl.refresh()>\n\t\t</div>\n\t</div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/panel/gettingstarted/module.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=dashlist ng-if=ctrl.checksDone>\n <div class=dashlist-section>\n\t\t<button class=dashlist-cta-close-btn ng-click=ctrl.dismiss()>\n\t\t\t<i class="fa fa-remove"></i>\n\t\t</button>\n\t\t<ul class=progress-tracker>\n\t\t\t<li class=progress-step ng-repeat="step in ctrl.steps" ng-class=step.cssClass>\n\t\t\t\t<a class=progress-link ng-href={{step.href}} target={{step.target}} title={{step.note}}>\n\t\t\t\t\t<span class=progress-marker ng-class=step.cssClass><i class={{step.icon}}></i></span>\n\t\t\t\t\t<span class=progress-text ng-href={{step.href}} target={{step.target}}>{{step.title}}</span>\n\t\t\t\t</a>\n\t\t\t\t<a class="btn progress-step-cta" ng-href={{step.href}} target={{step.target}}>{{step.cta}}</a>\n\t\t\t</li>\n\t\t</ul>\n\t</div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/panel/graph/axes_editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=editor-row>\n\t<div class="section gf-form-group" ng-repeat="yaxis in ctrl.panel.yaxes">\n\n\t\t<h5 class=section-heading ng-show="$index === 0">Left Y</h5>\n\t\t<h5 class=section-heading ng-show="$index === 1">Right Y</h5>\n\n\t\t<gf-form-switch class=gf-form label=Show label-class=width-6 checked=yaxis.show on-change=ctrl.render()></gf-form-switch>\n\n\t\t<div ng-if=yaxis.show>\n\t\t\t<div class=gf-form>\n\t\t\t\t<label class="gf-form-label width-6">Unit</label>\n\t\t\t\t<div class="gf-form-dropdown-typeahead max-width-20" ng-model=yaxis.format dropdown-typeahead2=ctrl.unitFormats dropdown-typeahead-on-select="ctrl.setUnitFormat(yaxis, $subItem)"></div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t\t<div class=gf-form>\n\t\t\t\t<label class="gf-form-label width-6">Scale</label>\n\t\t\t\t<div class="gf-form-select-wrapper max-width-20">\n\t\t\t\t\t<select class=gf-form-input ng-model=yaxis.logBase ng-options="v as k for (k, v) in ctrl.logScales" ng-change=ctrl.render()></select>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class=gf-form-inline>\n\t\t\t\t<div class=gf-form>\n\t\t\t\t\t<label class="gf-form-label width-6">Y-Min</label>\n\t\t\t\t\t<input type=text class="gf-form-input width-5" placeholder=auto empty-to-null ng-model=yaxis.min ng-change=ctrl.render() ng-model-onblur>\n\t\t\t\t</div>\n\t\t\t\t<div class=gf-form>\n\t\t\t\t\t<label class="gf-form-label width-6">Y-Max</label>\n\t\t\t\t\t<input type=text class="gf-form-input width-5" placeholder=auto empty-to-null ng-model=yaxis.max ng-change=ctrl.render() ng-model-onblur>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t<div ng-if=yaxis.show>\n\t\t\t<div class=gf-form>\n\t\t\t\t<label class="gf-form-label width-6">Decimals</label>\n\t\t\t\t<input type=number class="gf-form-input max-width-20" placeholder=auto empty-to-null bs-tooltip="\'Override automatic decimal precision for y-axis\'" data-placement=right ng-model=yaxis.decimals ng-change=ctrl.render() ng-model-onblur>\n\t\t\t</div>\n\n\t\t\t<div class=gf-form>\n\t\t\t\t<label class="gf-form-label width-6">Label</label>\n\t\t\t\t<input type=text class="gf-form-input max-width-20" ng-model=yaxis.label ng-change=ctrl.render() ng-model-onblur>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\n\t<div class="section gf-form-group">\n\t\t<h5 class=section-heading>X-Axis</h5>
8\n\t\t<gf-form-switch class=gf-form label=Show label-class=width-6 checked=ctrl.panel.xaxis.show on-change=ctrl.render()></gf-form-switch>\n\n\t\t\x3c!-- Time mode --\x3e \n\t\t<div class=gf-form ng-if="ctrl.panel.xaxis.mode === \'time\'">\n\t\t\t<gf-form-switch class=gf-form label="T=0" label-class=width-6 checked=ctrl.panel.xaxis.tzero on-change=ctrl.render()></gf-form-switch>\n\t\t</div>\n\n\t\t\x3c!-- Series mode --\x3e\n\t\t<div class=gf-form ng-if="ctrl.panel.xaxis.mode === \'series\'">\n\t\t\t<label class="gf-form-label width-6">Value</label>\n <metric-segment-model property=ctrl.panel.xaxis.values[0] options=ctrl.xAxisStatOptions on-change=ctrl.xAxisValueChanged() custom=false css-class=width-10 select-mode=true></metric-segment-model>\n\t\t</div>\n\n\t\t\x3c!-- Histogram mode --\x3e\n\t\t<div class=gf-form ng-if="ctrl.panel.xaxis.mode === \'histogram\'">\n\t\t\t<label class="gf-form-label width-6">Buckets</label>\n\t\t\t<input type=number class="gf-form-input max-width-8" ng-model=ctrl.panel.xaxis.buckets placeholder=auto ng-change=ctrl.render() ng-model-onblur bs-tooltip="\'Number of buckets\'" data-placement=right>\n\t\t</div>\n\n\t\t<div>\n\t\t\t<br/>\n\t\t\t<h5 class=section-heading>Y-Axes</h5>\n\t\t\t<gf-form-switch class=gf-form label=Align tooltip="Align left and right Y-axes" label-class=width-6 switch-class=width-5 checked=ctrl.panel.yaxis.align on-change=ctrl.render()></gf-form-switch>\n\t\t\t<div class=gf-form ng-show=ctrl.panel.yaxis.align>\n\t\t\t\t<label class="gf-form-label width-6">\n\t\t\t\t\tLevel\n\t\t\t\t</label>\n\t\t\t\t<input type=number class="gf-form-input width-5" placeholder=0 ng-model=ctrl.panel.yaxis.alignLevel ng-change=ctrl.render() ng-model-onblur bs-tooltip="\'Alignment of Y-axes are based on this value, starting from Y=0\'" data-placement=right>\n\t\t\t</div>\n\t\t</div>\n\n\t</div>\n\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/panel/graph/tab_display.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=edit-tab-with-sidemenu>\n\t<aside class=edit-sidemenu-aside>\n\t\t<ul class=edit-sidemenu>\n\t\t\t<li ng-class="{active: ctrl.subTabIndex === 0}">\n\t\t\t\t<a ng-click="ctrl.subTabIndex = 0">Draw options</a>\n\t\t\t</li>\n\t\t\t<li ng-class="{active: ctrl.subTabIndex === 1}">\n\t\t\t\t<a ng-click="ctrl.subTabIndex = 1">\n\t\t\t\t\tSeries overrides <span class=muted>({{ctrl.panel.seriesOverrides.length}})</span>\n\t\t\t\t</a>\n\t\t\t</li>\n\t\t\t<li ng-class="{active: ctrl.subTabIndex === 2}">\n\t\t\t\t<a ng-click="ctrl.subTabIndex = 2">\n\t\t\t\t\tThresholds <span class=muted>({{ctrl.panel.thresholds.length}})</span>\n\t\t\t\t</a>\n\t\t\t</li>\n\t\t</ul>\n\t</aside>\n\n\t<div class=edit-tab-content ng-if="ctrl.subTabIndex === 0">\n\t\t<div class="section gf-form-group">\n\t\t\t<h5 class=section-heading>Draw Modes</h5>\n\t\t\t<gf-form-switch class=gf-form label=Bars label-class=width-5 checked=ctrl.panel.bars on-change=ctrl.render()></gf-form-switch>\n\t\t\t<gf-form-switch class=gf-form label=Lines label-class=width-5 checked=ctrl.panel.lines on-change=ctrl.render()></gf-form-switch>\n\t\t\t<gf-form-switch class=gf-form label=Points label-class=width-5 checked=ctrl.panel.points on-change=ctrl.render()></gf-form-switch>\n\t\t</div>\n\t\t<div class="section gf-form-group">\n\t\t\t<h5 class=section-heading>Mode Options</h5>\n\t\t\t<div class=gf-form>\n\t\t\t\t<label class="gf-form-label width-8">Fill</label>\n\t\t\t\t<div class="gf-form-select-wrapper max-width-5">\n\t\t\t\t\t<select class=gf-form-input ng-model=ctrl.panel.fill ng-options="f for f in [0,1,2,3,4,5,6,7,8,9,10]" ng-change=ctrl.render() ng-disabled=!ctrl.panel.lines></select>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=gf-form>\n\t\t\t\t<label class="gf-form-label width-8">Line Width</label>\n\t\t\t\t<div class="gf-form-select-wrapper max-width-5">\n\t\t\t\t\t<select class=gf-form-input ng-model=ctrl.panel.linewidth ng-options="f for f in [0,1,2,3,4,5,6,7,8,9,10]" ng-change=ctrl.render() ng-disabled=!ctrl.panel.lines></select>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<gf-form-switch ng-disabled=!ctrl.panel.lines class=gf-form label=Staircase label-class=width-8 checked=ctrl.panel.steppedLine on-change=ctrl.render()>\n\t\t\t</gf-form-switch>\n\t\t\t<div class=gf-form>\n\t\t\t\t<label class="gf-form-label width-8">Point Radius</label>\n\t\t\t\t<div class="gf-form-select-wrapper max-width-5">\n\t\t\t\t\t<select class=gf-form-input ng-model=ctrl.panel.pointradius ng-options="f for f in [0.5,1,2,3,4,5,6,7,8,9,10]" ng-change=ctrl.render() ng-disabled=!ctrl.panel.points></select>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class="section gf-form-group">\n\t\t\t<h5 class=section-heading>Hover tooltip</h5>\n\t\t\t<div class=gf-form>\n\t\t\t\t<label class="gf-form-label width-9">Mode</label>\n\t\t\t\t<div class="gf-form-select-wrapper max-width-8">\n\t\t\t\t\t<select class=gf-form-input ng-model=ctrl.panel.tooltip.shared ng-options="f.value as f.text for f in [{text: \'All series\', value: true}, {text: \'Single\', value: false}]" ng-change=ctrl.render()></select>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=gf-form>\n\t\t\t\t<label class="gf-form-label width-9">Sort order</label>\n\t\t\t\t<div class="gf-form-select-wrapper max-width-8">\n\t\t\t\t\t<select class=gf-form-input ng-model=ctrl.panel.tooltip.sort ng-options="f.value as f.text for f in [{text: \'N
8one\', value: 0}, {text: \'Increasing\', value: 1}, {text: \'Decreasing\', value: 2}]" ng-change=ctrl.render()></select>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=gf-form ng-show=ctrl.panel.stack>\n\t\t\t\t<label class="gf-form-label width-9">Stacked value</label>\n\t\t\t\t<div class="gf-form-select-wrapper max-width-8">\n\t\t\t\t\t<select class=gf-form-input ng-model=ctrl.panel.tooltip.value_type ng-options="f for f in [\'cumulative\',\'individual\']" ng-change=ctrl.render()></select>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class="section gf-form-group">\n\t\t\t<h5 class=section-heading>Stacking & Null value</h5>\n\t\t\t<gf-form-switch class=gf-form label=Stack label-class=width-7 checked=ctrl.panel.stack on-change=ctrl.refresh()>\n\t\t\t</gf-form-switch>\n\t\t\t<gf-form-switch class=gf-form ng-show=ctrl.panel.stack label=Percent label-class=width-7 checked=ctrl.panel.percentage on-change=ctrl.render()>\n\t\t\t</gf-form-switch>\n\t\t\t<div class=gf-form>\n\t\t\t\t<label class="gf-form-label width-7">Null value</label>\n\t\t\t\t<div class=gf-form-select-wrapper>\n\t\t\t\t\t<select class="gf-form-input max-width-9" ng-model=ctrl.panel.nullPointMode ng-options="f for f in [\'connected\', \'null\', \'null as zero\']" ng-change=ctrl.render()></select>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\n\t<div class=edit-tab-content ng-if="ctrl.subTabIndex === 1">\n\t\t<div class=gf-form-group>\n\t\t\t<h5>Series specific overrides <tip>Regex match example: /server[0-3]/i </tip></h5>\n\t\t\t<div class=gf-form-inline ng-repeat="override in ctrl.panel.seriesOverrides" ng-controller=SeriesOverridesCtrl>\n\t\t\t\t<div class=gf-form>\n\t\t\t\t\t<label class=gf-form-label>alias or regex</label>\n\t\t\t\t</div>\n\t\t\t\t<div class="gf-form width-15">\n\t\t\t\t\t<input type=text ng-model=override.alias bs-typeahead=getSeriesNames ng-blur=ctrl.render() data-min-length=0 data-items=100 class="gf-form-input width-15">\n\t\t\t\t</div>\n\t\t\t\t<div class=gf-form ng-repeat="option in currentOverrides">\n\t\t\t\t\t<label class=gf-form-label>\n\t\t\t\t\t\t<i class="pointer fa fa-remove" ng-click=removeOverride(option)></i>\n\t\t\t\t\t\t<span ng-show="option.propertyName === \'color\'">\n\t\t\t\t\t\t\tColor: <i class="fa fa-circle" ng-style={color:option.value}></i>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<span ng-show="option.propertyName !== \'color\'">\n\t\t\t\t\t\t\t{{option.name}}: {{option.value}}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</label>\n\t\t\t\t</div>\n\n\t\t\t\t<div class=gf-form>\n\t\t\t\t\t<span class=dropdown dropdown-typeahead=overrideMenu dropdown-typeahead-on-select="setOverride($item, $subItem)">\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\n\t\t\t\t<div class="gf-form gf-form--grow">\n\t\t\t\t\t<div class="gf-form-label gf-form-label--grow"></div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class=gf-form>\n\t\t\t\t\t<label class=gf-form-label>\n\t\t\t\t\t\t<i class="fa fa-trash pointer" ng-click=ctrl.removeSeriesOverride(override)></i>\n\t\t\t\t\t</label>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<button class="btn btn-inverse" ng-click=ctrl.addSeriesOverride()>\n\t\t\t<i class="fa fa-plus"></i> Add override\n\t\t</button>\n\t</div>\n\n\t<div class=edit-tab-content ng-if="ctrl.subTabIndex === 2">\n\t\t<graph-threshold-form panel-ctrl=ctrl></graph-threshold-form>\n\t</div>\n\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/panel/graph/tab_legend.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=editor-row>\n\t<div class="section gf-form-group">\n\t\t<h5 class=section-heading>Options</h5>\n\t\t<gf-form-switch class=gf-form label=Show label-class=width-7 checked=ctrl.panel.legend.show on-change=ctrl.refresh()>\n\t\t</gf-form-switch>\n\t\t<gf-form-switch class=gf-form label="As Table" label-class=width-7 checked=ctrl.panel.legend.alignAsTable on-change=ctrl.render()>\n\t\t</gf-form-switch>\n\t\t<gf-form-switch class=gf-form label="To the right" label-class=width-7 checked=ctrl.panel.legend.rightSide on-change=ctrl.render()>\n\t\t</gf-form-switch>\n\t\t<div ng-if=ctrl.panel.legend.rightSide class=gf-form>\n\t\t\t<label class="gf-form-label width-7">Width</label>\n\t\t\t<input type=number class="gf-form-input max-width-5" placeholder=250 bs-tooltip="\'Set a min-width for the legend side table/block\'" data-placement=right ng-model=ctrl.panel.legend.sideWidth ng-change=ctrl.render() ng-model-onblur>\n\t\t</div>\n\t</div>\n\n\t<div class="section gf-form-group">\n\t\t<h5 class=section-heading>Values</h5>\n\n\t\t<div class=gf-form-inline>\n\t\t\t<gf-form-switch class=gf-form label=Min label-class=width-4 checked=ctrl.panel.legend.min on-change=ctrl.legendValuesOptionChanged()>\n\t\t\t</gf-form-switch>\n\n\t\t\t<gf-form-switch class="gf-form max-width-12" label=Max label-class=width-6 switch-class=max-width-5 checked=ctrl.panel.legend.max on-change=ctrl.legendValuesOptionChanged()>\n\t\t\t</gf-form-switch>\n\t\t</div>\n\n\t\t<div class=gf-form-inline>\n\t\t\t<gf-form-switch class=gf-form label=Avg label-class=width-4 checked=ctrl.panel.legend.avg on-change=ctrl.legendValuesOptionChanged()>\n\t\t\t</gf-form-switch>\n\n\t\t\t<gf-form-switch class="gf-form max-width-12" label=Current label-class=width-6 switch-class=max-width-5 checked=ctrl.panel.legend.current on-change=ctrl.legendValuesOptionChanged()>\n\t\t\t</gf-form-switch>\n\t\t</div>\n\n\t\t<div class=gf-form-inline>\n\t\t\t<gf-form-switch class=gf-form label=Total label-class=width-4 checked=ctrl.panel.legend.total on-change=ctrl.legendValuesOptionChanged()>\n\t\t\t</gf-form-switch>\n\n\t\t\t<div class=gf-form>\n\t\t\t\t<label class="gf-form-label width-6">Decimals</label>\n\t\t\t\t<input type=number class="gf-form-input width-5" placeholder=auto bs-tooltip="\'Override automatic decimal precision for legend and tooltips\'" data-placement=right ng-model=ctrl.panel.decimals ng-change=ctrl.render() ng-model-onblur>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/panel/heatmap/module.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,"<div class=heatmap-wrapper>\n\t<div class=heatmap-canvas-wrapper>\n\n\t\t<div class=datapoints-warning ng-if=ctrl.dataWarning>\n\t\t\t<span class=small bs-tooltip=ctrl.dataWarning.tip>{{ctrl.dataWarning.title}}</span>\n\t\t</div>\n\n\t\t<div class=heatmap-panel ng-dblclick=ctrl.zoomOut()></div>\n\t</div>\n\t<div class=heatmap-legend-wrapper ng-if=ctrl.panel.legend.show>\n\t\t<heatmap-legend></heatmap-legend>\n\t</div>\n</div>\n<div class=clearfix></div>\n")}]),e.exports=n},function(e,t){var n="public/app/plugins/panel/heatmap/partials/axes_editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=editor-row>\n <div class="section gf-form-group">\n <h5 class=section-heading>Y Axis</h5>\n <div class=gf-form>\n <label class="gf-form-label width-8">Unit</label>\n <div class="gf-form-dropdown-typeahead width-12" ng-model=ctrl.panel.yAxis.format dropdown-typeahead2=editor.unitFormats dropdown-typeahead-on-select=editor.setUnitFormat($subItem)>\n </div>\n </div>\n <div ng-if="ctrl.panel.dataFormat == \'timeseries\'">\n <div class=gf-form>\n <label class="gf-form-label width-8">Scale</label>\n <div class="gf-form-select-wrapper width-12">\n <select class=gf-form-input ng-model=ctrl.panel.yAxis.logBase ng-options="v as k for (k, v) in editor.logScales" ng-change=ctrl.refresh()></select>\n </div>\n </div>\n <div class=gf-form>\n <label class="gf-form-label width-8">Y-Min</label>\n <input type=text class="gf-form-input width-12" placeholder=auto empty-to-null ng-model=ctrl.panel.yAxis.min ng-change=ctrl.render() ng-model-onblur>\n </div>\n <div class=gf-form>\n <label class="gf-form-label width-8">Y-Max</label>\n <input type=text class="gf-form-input width-12" placeholder=auto empty-to-null ng-model=ctrl.panel.yAxis.max ng-change=ctrl.render() ng-model-onblur>\n </div>\n </div>\n <div class=gf-form>\n <label class="gf-form-label width-8">Decimals</label>\n <input type=number class="gf-form-input width-12" placeholder=auto data-
8placement=right bs-tooltip="\'Override automatic decimal precision for axis.\'" ng-model=ctrl.panel.yAxis.decimals ng-change=ctrl.render() ng-model-onblur>\n </div>\n <div class=gf-form ng-if="ctrl.panel.dataFormat == \'tsbuckets\'">\n <label class="gf-form-label width-8">Bucket bound</label>\n <div class="gf-form-select-wrapper max-width-12">\n <select class=gf-form-input ng-model=ctrl.panel.yBucketBound ng-options="v as k for (k, v) in editor.yBucketBoundModes" ng-change=ctrl.render() data-placement=right bs-tooltip="\'Use series label as an upper or lower bucket bound.\'">\n </select>\n </div>\n </div>\n </div>\n\n <div class="section gf-form-group" ng-if="ctrl.panel.dataFormat == \'timeseries\'">\n <h5 class=section-heading>Buckets</h5>\n <div class=gf-form-inline>\n <div class=gf-form>\n <label class="gf-form-label width-5">Y Axis</label>\n </div>\n <div class=gf-form ng-show="ctrl.panel.yAxis.logBase === 1">\n <label class="gf-form-label width-5">Buckets</label>\n <input type=number class="gf-form-input width-5" placeholder=auto data-placement=right bs-tooltip="\'Number of buckets for Y axis.\'" ng-model=ctrl.panel.yBucketNumber ng-change=ctrl.refresh() ng-model-onblur>\n </div>\n <div class=gf-form ng-show="ctrl.panel.yAxis.logBase === 1">\n <label class="gf-form-label width-4">Size</label>\n <input type=number class="gf-form-input width-5" placeholder=auto data-placement=right bs-tooltip="\'Size of bucket. Has priority over Buckets option.\'" ng-model=ctrl.panel.yBucketSize ng-change=ctrl.refresh() ng-model-onblur>\n </div>\n <div class=gf-form ng-show="ctrl.panel.yAxis.logBase !== 1">\n <label class="gf-form-label width-10">Split Factor</label>\n <input type=number class="gf-form-input width-9" placeholder=1 data-placement=right bs-tooltip="\'For log scales only. By default Y values is splitted by integer powers of log base (1, 2, 4, 8, 16, ... for log2). This option allows to split each default bucket into specified number of buckets.\'" ng-model=ctrl.panel.yAxis.splitFactor ng-change=ctrl.refresh() ng-model-onblur>\n \n </div>\n </div>\n <div class=gf-form-inline>\n <div class=gf-form>\n <label class="gf-form-label width-5">X Axis</label>\n <label class="gf-form-label width-5">Buckets</label>\n <input type=number class="gf-form-input width-5" placeholder=auto data-placement=right bs-tooltip="\'Number of buckets for X axis.\'" ng-model=ctrl.panel.xBucketNumber ng-change=ctrl.refresh() ng-model-onblur>\n </div>\n <div class=gf-form>\n <label class="gf-form-label width-4">Size</label>\n <input type=text class="gf-form-input width-5" placeholder=auto data-placement=right bs-tooltip="\'Size of bucket. Number or interval (10s, 5m, 1h, etc). Supported intervals: ms, s, m, h, d, w, M, y. Has priority over Buckets option.\'" ng-model=ctrl.panel.xBucketSize ng-change=ctrl.refresh() ng-model-onblur>\n </div>\n </div>\n </div>\n\n <div class="section gf-form-group">\n <h5 class=section-heading>Data format</h5>\n <div class=gf-form>\n <label class="gf-form-label width-5">Format</label>\n <div class="gf-form-select-wrapper max-width-15">\n <select class=gf-form-input ng-model=ctrl.panel.dataFormat ng-options="v as k for (k, v) in editor.dataFormats" ng-change=ctrl.render() data-placement=right bs-tooltip="\'Time series: create heatmap from regular time series. <br>Time series buckets: use histogram data returned from data source. Each series represents bucket which upper/lower bound is a series label.\'">\n </select>\n </div>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/panel/heatmap/partials/display_editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=editor-row>\n <div class="section gf-form-group">\n <h5 class=section-heading>Colors</h5>\n <div class=gf-form>\n <label class="gf-form-label width-9">Mode</label>\n <div class="gf-form-select-wrapper width-8">\n <select class="input-small gf-form-input" ng-model=ctrl.panel.color.mode ng-options="s for s in ctrl.colorModes" ng-change=ctrl.render()></select>\n </div>\n </div>\n\n <div ng-show="ctrl.panel.color.mode === \'opacity\'">\n <div class=gf-form>\n <label class="gf-form-label width-9">Color</label>
8\n <span class=gf-form-label>\n <color-picker color=ctrl.panel.color.cardColor onchange=ctrl.onCardColorChange></color-picker>\n </span>\n </div>\n <div class=gf-form>\n <label class="gf-form-label width-9">Scale</label>\n <div class="gf-form-select-wrapper width-8">\n <select class="input-small gf-form-input" ng-model=ctrl.panel.color.colorScale ng-options="s for s in ctrl.opacityScales" ng-change=ctrl.render()></select>\n </div>\n </div>\n <div class=gf-form ng-if="ctrl.panel.color.colorScale === \'sqrt\'">\n <label class="gf-form-label width-9">Exponent</label>\n <input type=number class="gf-form-input width-8" placeholder=auto data-placement=right bs-tooltip="\'\'" ng-model=ctrl.panel.color.exponent ng-change=ctrl.refresh() ng-model-onblur>\n </div>\n </div>\n\n <div ng-show="ctrl.panel.color.mode === \'spectrum\'">\n <div class=gf-form>\n <label class="gf-form-label width-9">Scheme</label>\n <div class="gf-form-select-wrapper width-8">\n <select class="input-small gf-form-input" ng-model=ctrl.panel.color.colorScheme ng-options="s.value as s.name for s in ctrl.colorSchemes" ng-change=ctrl.render()></select>\n </div>\n </div>\n </div>\n\n <div class=gf-form>\n <color-legend></color-legend>\n </div>\n </div>\n\n <div class="section gf-form-group">\n <h5 class=section-heading>Color scale</h5>\n <div class=gf-form>\n <label class="gf-form-label width-8">Min</label>\n <input type=number ng-model=ctrl.panel.color.min class="gf-form-input width-5" placeholder=auto data-placement=right bs-tooltip="\'\'" ng-change=ctrl.refresh() ng-model-onblur>\n </div>\n <div class=gf-form>\n <label class="gf-form-label width-8">Max</label>\n <input type=number ng-model=ctrl.panel.color.max class="gf-form-input width-5" placeholder=auto data-placement=right bs-tooltip="\'\'" ng-change=ctrl.refresh() ng-model-onblur>\n </div>\n </div>\n\n <div class="section gf-form-group">\n <h5 class=section-heading>Legend</h5>\n <gf-form-switch class=gf-form label-class=width-8 label="Show legend" checked=ctrl.panel.legend.show on-change=ctrl.render()>\n </gf-form-switch>\n </div>\n\n <div class="section gf-form-group">\n <h5 class=section-heading>Buckets</h5>\n <div class=gf-form>\n <label class="gf-form-label width-8">Space</label>\n <input type=number class="gf-form-input width-5" placeholder=auto data-placement=right bs-tooltip="\'\'" ng-model=ctrl.panel.cards.cardPadding ng-change=ctrl.refresh() ng-model-onblur>\n </div>\n <div class=gf-form>\n <label class="gf-form-label width-8">Round</label>\n <input type=number class="gf-form-input width-5" placeholder=auto data-placement=right bs-tooltip="\'\'" ng-model=ctrl.panel.cards.cardRound ng-change=ctrl.refresh() ng-model-onblur>\n </div>\n </div>\n\n <div class="section gf-form-group">\n <h5 class=section-heading>Tooltip</h5>\n <gf-form-switch class=gf-form label-class=width-8 label="Show tooltip" checked=ctrl.panel.tooltip.show on-change=ctrl.render()>\n </gf-form-switch>\n <div ng-if=ctrl.panel.tooltip.show>\n <gf-form-switch class=gf-form label-class=width-8 label=Histogram checked=ctrl.panel.tooltip.showHistogram on-change=ctrl.render()>\n </gf-form-switch>\n <div class=gf-form>\n <label class="gf-form-label width-8">Decimals</label>\n <input type=number class="gf-form-input width-5" placeholder=auto data-placement=right bs-tooltip="\'Max decimal precision for tooltip.\'" ng-model=ctrl.panel.tooltipDecimals ng-change=ctrl.render() ng-model-onblur>\n </div>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/panel/pluginlist/editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=gf-form-group>\n\t<div class=gf-form-inline>\n\t\t<div class=gf-form>\n\t\t\t<span class="gf-form-label width-10">Mode</span>\n\t\t\t<div class="gf-form-select-wrapper max-width-10">\n\t\t\t\t<select class=gf-form-input ng-model=ctrl.panel.mode ng-options="f for f in ctrl.modes" ng-change=ctrl.refresh()></select>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=gf-form ng-show="ctrl.panel.mode === \'recently viewed\'">\n\t\t\t<span class=gf-form-label>\n\t\t\t\t<i class="grafana-tip fa fa-question-circle ng-scope" bs-tooltip="\'WARNING: This list will be cleared when clearing browser cache\'" data-original-title="" title=""></i>\n\t\t\t</span>\n\t\t</div>\n\t</div>\n\n\t<div class=gf-form-inline ng-if="ctrl.panel.mode === \'search\'">\n\t\t<div class=gf-form>\n\t\t\t<span class="gf-form-label width-10">Search options</span>\n\t\t\t<span class=gf-form-label>Query</span>\n\n\t\t\t<input type=text class=gf-form-input placeholder="title query" ng-model=ctrl.panel.query ng-change=ctrl.refresh() ng-model-onblur>\n\n\t\t</div>\n\n\t\t<div class=gf-form>\n\t\t\t<span class=gf-form-label>Tags</span>\n\n\t\t\t<bootstrap-tagsinput ng-model=ctrl.panel.tags tagclass="label label-tag" placeholder="add tags" on-tags-updated=ctrl.refresh()>\n\t\t\t</bootstrap-tagsinput>\n\t\t</div>\n\t</div>\n\n\t<div class=gf-form-inline>\n\t\t<div class=gf-form>\n\t\t\t<span class="gf-form-label width-10">Limit number to</span>\n\t\t\t<input class=gf-form-input type=number ng-model=ctrl.panel.limit ng-model-onblur ng-change=ctrl.refresh()>\n\t\t</div>\n\t</div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/panel/pluginlist/module.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=pluginlist>\n <div class=pluginlist-section ng-repeat="category in ctrl.viewModel">\n <h6 class=pluginlist-section-header>\n {{category.header}}\n </h6>\n <div class=pluginlist-item ng-repeat="plugin in category.list">\n <a class="pluginlist-link pluginlist-link-{{plugin.state}} pointer" href={{plugin.defaultNavUrl}}>
8\n <span>\n <img ng-src={{plugin.info.logos.small}} class=pluginlist-image>\n <span class=pluginlist-title>{{plugin.name}}</span>\n <span class=pluginlist-version>v{{plugin.info.version}}</span>\n </span>\n <span class="pluginlist-message pluginlist-message--update" ng-show=plugin.hasUpdate ng-click="ctrl.updateAvailable(plugin, $event)" bs-tooltip="\'New version: \' + plugin.latestVersion">\n Update available!\n </span>\n <span class="pluginlist-message pluginlist-message--enable" ng-show="!plugin.enabled && !plugin.hasUpdate">\n Enable now\n </span>\n <span class="pluginlist-message pluginlist-message--no-update" ng-show="plugin.enabled && !plugin.hasUpdate">\n Up to date\n </span>\n </a>\n </div>\n <div class=pluginlist-item ng-show="category.list.length === 0">\n <a class="pluginlist-link pluginlist-link-{{plugin.state}}" href=https://grafana.com/plugins>\n <span class=pluginlist-none-installed>None installed. <span class=pluginlist-emphasis>Browse Grafana.com</span></span>\n </a>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/panel/sensor/partials/tab.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class="section gf-form-group">\n\n <div ng-repeat="sensorTarget in ctrl.panel.sensorTargets">\n <h5 class=section-heading>{{ sensorTarget.sensorShortName }}</h5>\n\t\t<div class=gf-form>\n\t\t\t<span class="gf-form-label width-7">Alias</span>\n <input type=text class="gf-form-input width-25" ng-model-options="{ debounce: 250 }" ng-model=sensorTarget.alias ng-change="ctrl.aliasChanged(sensorTarget.sensorShortName, sensorTarget.alias)">\n \n </div>\n <br>\n </div>\n\n</div>')}]),e.exports=n},function(e,t){var n="public/app/plugins/panel/singlestat/editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=editor-row>\n <div class="section gf-form-group">\n <h5 class=section-heading>Value</h5>\n\n <div class=gf-form-inline>\n <div class=gf-form ng-show="ctrl.dataType === \'timeseries\'">\n <label class="gf-form-label width-6">Stat</label>\n <div class="gf-form-select-wrapper width-12">\n <select class=gf-form-input ng-model=ctrl.panel.valueName ng-options="f.value as f.text for f in ctrl.valueNameOptions" ng-change=ctrl.refresh()></select>\n </div>\n </div>\n <div class=gf-form ng-show="ctrl.dataType === \'table\'">\n <label class="gf-form-label width-6">Column</label>\n <div class="gf-form-select-wrapper width-12">\n <select class=gf-form-input ng-model=ctrl.panel.tableColumn ng-options="f for f in ctrl.tableColumnOptions" ng-change=ctrl.refresh()></select>\n </div>\n </div>\n <div class=gf-form>\n <label class="gf-form-label width-6">Font size</label>\n <div class=gf-form-select-wrapper>\n <select class=gf-form-input ng-model=ctrl.panel.valueFontSize ng-options="f for f in ctrl.fontSizes" ng-change=ctrl.render()></select>\n </div>\n </div>\n </div>\n\n <div class=gf-form-inline>\n <div class=gf-form>\n <label class="gf-form-label width-6">Prefix</label>\n <input type=text class="gf-form-input width-12" ng-model=ctrl.panel.prefix ng-change=ctrl.render() ng-model-onblur>\n <label class="gf-form-label width-6">Font size</label>\n <div class=gf-form-select-wrapper>\n <select class=gf-form-input ng-model=ctrl.panel.prefixFontSize ng-options="f for f in ctrl.fontSizes" ng-change=ctrl.render() ng-disabled=ctrl.canChangeFontSize()></select>\n </div>\n </div>\n </div>\n\n <div class=gf-form>\n <label class="gf-form-label width-6">Postfix</label>\n <input type=text class="gf-form-input width-12" ng-model=ctrl.panel.postfix ng-change=ctrl.render() ng-model-onblur>\n <label class="gf-form-label width-6">Font size</label>\n <div class=gf-form-select-wrapper>\n <select class="input-small gf-form-input" ng-model=ctrl.panel.postfixFontSize ng-options="f for f in ctrl.fontSizes" ng-change=ctrl.render() ng-disabled=ctrl.canChangeFontSize()></select>\n </div>\n </div>\n <div class=gf-form>\n <label class="gf-form-label width-6">Unit</label>\n <div class="gf-form-dropdown-typeahead width-18" ng-model=ctrl.panel.format dropdown-typeahead2=ctrl.unitFormats dropdown-typeahead-on-select=ctrl.setUnitFormat($subItem)></div>\n </div>\n <div class=gf-form>\n <label class="gf-form-label width-6">Decimals</label>\n <input type=number class="gf-form-input width-18" placeholder=auto data-
8placement=right bs-tooltip="\'Override automatic decimal precision for legend and tooltips\'" ng-model=ctrl.panel.decimals ng-change=ctrl.refresh() ng-model-onblur>\n </div>\n </div>\n\n <div class="section gf-form-group">\n <h5 class=section-heading>Coloring</h5>\n <div class=gf-form-inline>\n <gf-form-switch class=gf-form label-class=width-8 label=Background checked=ctrl.panel.colorBackground on-change=ctrl.render()></gf-form-switch>\n <gf-form-switch class=gf-form label-class=width-4 label=Value checked=ctrl.panel.colorValue on-change=ctrl.render()></gf-form-switch>\n </div>\n <div class=gf-form-inline>\n <div class="gf-form max-width-21">\n <label class="gf-form-label width-8">Thresholds\n <tip>Define two threshold values<br /> 50,80 will produce: value < 50 = Green, 50 <= value < 80 = Yellow, value >= 80 = Red</tip>\n </label>\n <input type=text class=gf-form-input ng-model=ctrl.panel.thresholds ng-blur=ctrl.render() placeholder=50,80>\n </div>\n </div>\n <div class=gf-form>\n <label class="gf-form-label width-8">Colors</label>
8\n <span class=gf-form-label ng-repeat="color in ctrl.panel.colors track by $index">\n <color-picker color=color onchange=ctrl.onColorChange($index)></color-picker>\n </span>\n <span class=gf-form-label>\n <a ng-click=ctrl.invertColorOrder()>\n Invert\n </a>\n </span>\n </div>\n </div>\n\n <div class="section gf-form-group">\n <h5 class=section-heading>Spark lines</h5>\n <gf-form-switch class=gf-form label-class=width-9 label=Show checked=ctrl.panel.sparkline.show on-change=ctrl.render()></gf-form-switch>\n <div ng-if=ctrl.panel.sparkline.show>\n <gf-form-switch class=gf-form label-class=width-9 label="Full height" checked=ctrl.panel.sparkline.full on-change=ctrl.render()></gf-form-switch>\n <div class=gf-form>\n <label class="gf-form-label width-9">Line Color</label>\n <span class=gf-form-label>\n <color-picker color=ctrl.panel.sparkline.lineColor onchange=ctrl.onSparklineColorChange></color-picker>\n </span>\n </div>\n <div class=gf-form>\n <label class="gf-form-label width-9">Fill Color</label>\n <span class=gf-form-label>\n <color-picker color=ctrl.panel.sparkline.fillColor onchange=ctrl.onSparklineFillChange></color-picker>\n </span>\n </div>\n </div>\n </div>\n\n <div class="section gf-form-group">\n <h5 class=section-heading>Gauge</h5>\n <gf-form-switch class=gf-form label-class=width-10 switch-class=max-width-6 label=Show checked=ctrl.panel.gauge.show on-change=ctrl.render()></gf-form-switch>\n <div ng-if=ctrl.panel.gauge.show>\n <div class=gf-form>\n <label class="gf-form-label width-10">Min</label>\n <input type=number class="gf-form-input width-6" placeholder=0 data-placement=right ng-model=ctrl.panel.gauge.minValue ng-change=ctrl.refresh() ng-model-onblur>\n <label class="gf-form-label alert-state-critical" ng-show=ctrl.invalidGaugeRange>\n <i class="fa fa-warning"></i>\n Min value is bigger than max.\n </label>\n </div>\n <div class=gf-form>\n <label class="gf-form-label width-10">Max</label>\n <input type=number class="gf-form-input width-6" placeholder=0 data-placement=right ng-model=ctrl.panel.gauge.maxValue ng-change=ctrl.refresh() ng-model-onblur>\n </div>\n <gf-form-switch class=gf-form label-class=width-10 switch-class=max-width-6 label="Threshold labels" checked=ctrl.panel.gauge.thresholdLabels on-change=ctrl.render()></gf-form-switch>\n <gf-form-switch class=gf-form label-class=width-10 switch-class=max-width-6 label="Threshold markers" checked=ctrl.panel.gauge.thresholdMarkers on-change=ctrl.render()></gf-form-switch>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/panel/singlestat/mappings.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=editor-row>\n <div class=gf-form-group>\n <div class=gf-form>\n <span class=gf-form-label>\n Type\n </span>\n <div class=gf-form-select-wrapper>\n <select class=gf-form-input ng-model=ctrl.panel.mappingType ng-options="f.value as f.name for f in ctrl.panel.mappingTypes" ng-change=ctrl.render()></select>\n </div>\n </div>\n </div>\n</div>\n<div class=editor-row ng-if="ctrl.panel.mappingType==1">\n <h5 class=page-heading>Set value mappings</h5>\n <div class=gf-form-group>\n <div class=gf-form ng-repeat="map in ctrl.panel.valueMaps">
8\n <span class=gf-form-label>\n <i class="fa fa-remove pointer" ng-click=ctrl.removeValueMap(map)></i>\n </span>\n <input type=text ng-model=map.value placeholder=value class="gf-form-input max-width-6" ng-blur=ctrl.render()>\n <span class=gf-form-label>\n <i class="fa fa-arrow-right"></i>\n </span>\n <input type=text placeholder=text ng-model=map.text class="gf-form-input max-width-8" ng-blur=ctrl.render()>\n </div>\n\n <div class=gf-form-button-row>\n <button class="btn btn-inverse" ng-click=ctrl.addValueMap();>\n <i class="fa fa-plus"></i>\n Add a value mapping\n </button>\n </div>\n </div>\n</div>\n<div class=editor-row ng-if="ctrl.panel.mappingType==2">\n <h5 class=page-heading>Set range mappings</h5>\n <div class=gf-form-group>\n <div class=gf-form ng-repeat="rangeMap in ctrl.panel.rangeMaps">\n <span class=gf-form-label>\n <i class="fa fa-remove pointer" ng-click=ctrl.removeRangeMap(rangeMap)></i>\n </span>\n <span class=gf-form-label>From</span>\n <input type=text ng-model=rangeMap.from class="gf-form-input max-width-6" ng-blur=ctrl.render()>\n <span class=gf-form-label>To</span>\n <input type=text ng-model=rangeMap.to class="gf-form-input max-width-6" ng-blur=ctrl.render()>\n <span class=gf-form-label>Text</span>\n <input type=text ng-model=rangeMap.text class="gf-form-input max-width-8" ng-blur=ctrl.render()>\n </div>\n\n <div class=gf-form-button-row>\n <button class="btn btn-inverse" ng-click=ctrl.addRangeMap()>\n <i class="fa fa-plus"></i>\n Add a range mapping\n </button>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/panel/singlestat/module.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,"<div class=singlestat-panel>\n\n</div>\n")}]),e.exports=n},function(e,t){var n="public/app/plugins/panel/table/column_options.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=edit-tab-with-sidemenu>\n <aside class=edit-sidemenu-aside>\n <ul class=edit-sidemenu>\n <li ng-repeat="style in editor.panel.styles" ng-class="{active: editor.activeStyleIndex === $index}">\n <a ng-click="editor.activeStyleIndex = $index">{{style.pattern || \'New rule\'}}</a>\n </li>\n <li>\n <a class=pointer ng-click=editor.addColumnStyle()>\n <i class="fa fa-plus"></i> Add\n </a>\n </li>\n </ul>\n </aside>\n\n <div class=edit-tab-content ng-repeat="style in editor.panel.styles" ng-if="editor.activeStyleIndex === $index">\n\n <div class="section gf-form-group">\n <h5 class=section-heading>Options</h5>\n <div class=gf-form-inline>\n <div class=gf-form>\n <label class="gf-form-label width-13">Apply to columns named</label>\n <input type=text placeholder="Name or regex" class="gf-form-input width-13" ng-model=style.pattern bs-tooltip="\'Specify regex using /my.*regex/ syntax\'" bs-typeahead=editor.getColumnNames ng-blur=editor.render() data-min-length=0 data-items=100 ng-model-onblur data-placement=right>\n </div>\n </div>\n <div class=gf-form ng-if="style.type !== \'hidden\'">\n <label class="gf-form-label width-13">Column Header</label>\n <input type=text class="gf-form-input width-13" ng-model=style.alias ng-change=editor.render() ng-model-onblur placeholder="Override header label">\n </div>\n <gf-form-switch class=gf-form label-class=width-13 label="Render value as link" checked=style.link change=editor.render()></gf-form-switch>\n </div>\n\n <div class="section gf-form-group">\n <h5 class=section-heading>Type</h5>\n\n <div class=gf-form>\n <label class="gf-form-label width-11">Type</label>\n <div class="gf-form-select-wrapper width-16">\n <select class=gf-form-input ng-model=style.type ng-options="c.value as c.text for c in editor.columnTypes" ng-change=editor.render()></select>\n </div>\n </div>\n <div class=gf-form ng-if="style.type === \'date\'">\n <label class="gf-form-label width-11">Date Format</label>\n <gf-form-dropdown model=style.dateFormat css-class="gf-form-input width-16" lookup-text=true get-options=editor.dateFormats on-change=editor.render() allow-custom=true>\n </gf-form-dropdown>\n </div>\n\n <div ng-if="style.type === \'string\'">\n <gf-form-switch class=gf-form label-class=width-11 ng-if="style.type === \'string\'" label="Sanitize HTML" checked=style.sanitize change=editor.render()>
8</gf-form-switch>\n </div>\n <div ng-if="style.type === \'string\'">\n <gf-form-switch class=gf-form label-class=width-11 ng-if="style.type === \'string\'" label="Preserve Formatting" checked=style.preserveFormat change=editor.render()></gf-form-switch>\n </div>\n\n <div ng-if="style.type === \'number\'">\n <div class=gf-form>\n <label class="gf-form-label width-11">Unit</label>\n <div class="gf-form-dropdown-typeahead width-16" ng-model=style.unit dropdown-typeahead2=editor.unitFormats dropdown-typeahead-on-select="editor.setUnitFormat(style, $subItem)"></div>\n </div>\n <div class=gf-form>\n <label class="gf-form-label width-11">Decimals</label>\n <input type=number class="gf-form-input width-4" data-placement=right ng-model=style.decimals ng-change=editor.render() ng-model-onblur>\n </div>\n </div>\n </div>\n\n <div class="section gf-form-group" ng-if="style.type === \'string\'">\n <h5 class=section-heading>Value Mappings</h5>\n <div class=editor-row>\n <div class=gf-form-group>\n <div class=gf-form>\n <span class=gf-form-label>\n Type\n </span>\n <div class=gf-form-select-wrapper>\n <select class=gf-form-input ng-model=style.mappingType ng-options="c.value as c.text for c in editor.mappingTypes" ng-change=editor.render()></select>\n </div>\n </div>\n <div class=gf-form-group ng-if="style.mappingType==1">\n <div class=gf-form ng-repeat="map in style.valueMaps">\n <span class=gf-form-label>\n <i class="fa fa-remove pointer" ng-click="editor.removeValueMap(style, $index)"></i>\n </span>\n <input type=text class="gf-form-input max-width-6" ng-model=map.value placeholder=Value ng-blur=editor.render()>\n <label class=gf-form-label>\n <i class="fa fa-arrow-right"></i>\n </label>\n <input type=text class="gf-form-input max-width-8" ng-model=map.text placeholder=Text ng-blur=editor.render()>\n </div>\n <div class=gf-form>\n <label class=gf-form-label>\n <a class=pointer ng-click=editor.addValueMap(style)><i class="fa fa-plus"></i></a>\n </label>\n </div>\n </div>\n <div class=gf-form-group ng-if="style.mappingType==2">\n <div class=gf-form ng-repeat="rangeMap in style.rangeMaps">\n <span class=gf-form-label>\n <i class="fa fa-remove pointer" ng-click="editor.removeRangeMap(style, $index)"></i>\n </span>\n <span class=gf-form-label>From</span>\n <input type=text ng-model=rangeMap.from class="gf-form-input max-width-6" ng-blur=editor.render()>\n <span class=gf-form-label>To</span>\n <input type=text ng-model=rangeMap.to class="gf-form-input max-width-6" ng-blur=editor.render()>\n <span class=gf-form-label>Text</span>\n <input type=text ng-model=rangeMap.text class="gf-form-input max-width-8" ng-blur=editor.render()>\n </div>\n <div class=gf-form>\n <label class=gf-form-label>\n <a class=pointer ng-click=editor.addRangeMap(style)><i class="fa fa-plus"></i></a>\n </label>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div class="section gf-form-group" ng-if="[\'number\', \'string\'].indexOf(style.type) !== -1">\n <h5 class=section-heading>Thresholds</h5>\n <div class=gf-form>\n <label class="gf-form-label width-8">Thresholds\n <tip>Comma separated values</tip>\n </label>\n <input type=text class="gf-form-input width-10" ng-model=style.thresholds placeholder=50,80 ng-blur=editor.render() array-join>\n </div>\n <div class=gf-form>\n <label class="gf-form-label width-8">Color Mode</label>\n <div class="gf-form-select-wrapper width-10">\n <select class=gf-form-input ng-model=style.colorMode ng-options="c.value as c.text for c in editor.colorModes" ng-change=editor.render()></select>\n </div>\n </div>\n <div class=gf-form>\n <label class="gf-form-label width-8">Colors</label>
8\n <span class=gf-form-label>\n <color-picker color=style.colors[0] onchange=editor.onColorChange($index,0)></color-picker>\n </span>\n <span class=gf-form-label>\n <color-picker color=style.colors[1] onchange=editor.onColorChange($index,1)></color-picker>\n </span>\n <span class=gf-form-label>\n <color-picker color=style.colors[2] onchange=editor.onColorChange($index,2)></color-picker>\n </span>\n <div class=gf-form-label>\n <a class=pointer ng-click=editor.invertColorOrder($index)>Invert</a>\n </div>\n </div>\n </div>\n\n <div class="section gf-form-group" ng-if=style.link>\n <h5 class=section-heading>Link</h5>\n <div class=gf-form>\n <label class="gf-form-label width-9">Url</label>\n <input type=text class="gf-form-input width-29" ng-model=style.linkUrl ng-blur=editor.render() ng-model-onblur data-placement=right>\n <info-popover mode=right-absolute>\n <p>Specify an URL (relative or absolute)</p>\n <span>\n Use special variables to specify cell values:\n <br>\n <em>${__cell}</em> refers to current cell value\n <br>\n <em>${__cell_n}</em> refers to Nth column value in current row. Column indexes are started from 0. For instance,\n <em>${__cell_1}</em> refers to second column\'s value.\n </span>\n </info-popover>\n </div>\n <div class=gf-form>\n <label class="gf-form-label width-9">Tooltip</label>\n <input type=text class="gf-form-input width-29" ng-model=style.linkTooltip ng-blur=editor.render() ng-model-onblur data-placement=right>\n <info-popover mode=right-absolute>\n <p>Specify text for link tooltip.</p>\n <span>\n This title appears when user hovers pointer over the cell with link. Use the same variables as for URL.\n </span>\n </info-popover>\n </div>\n <gf-form-switch class=gf-form label-class=width-9 label="Open in new tab" checked=style.linkTargetBlank></gf-form-switch>\n </div>\n\n <div class=clearfix></div>\n\n <button class="btn btn-danger btn-small" ng-click=editor.removeColumnStyle(style)>\n <i class="fa fa-trash"></i> Remove Rule\n </button>\n <br/>\n <br/>\n\n </div>\n</div>')}]),e.exports=n},function(e,t){var n="public/app/plugins/panel/table/editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class=editor-row>\n\t<div class="section gf-form-group">\n\t\t<h5 class=section-heading>Data</h5>\n <div class=gf-form>\n <label class="gf-form-label width-10">Table Transform</label>\n <div class="gf-form-select-wrapper max-width-15">\n <select class=gf-form-input ng-model=editor.panel.transform ng-options="k as v.description for (k, v) in editor.transformers" ng-change=editor.transformChanged()></select>\n </div>\n </div>\n <div class=gf-form-inline>\n <div class=gf-form>\n <label class="gf-form-label width-10">Columns</label>\n </div>\n\t\t\t<div class=gf-form ng-repeat="column in editor.panel.columns">\n\t\t\t\t<label class=gf-form-label>\n\t\t\t\t\t<i class="pointer fa fa-remove" ng-click=editor.removeColumn(column)></i>\n\t\t\t\t\t<span>{{column.text}}</span>\n\t\t\t\t</label>\n\t\t\t</div>\n\t\t\t<div class=gf-form ng-show=editor.canSetColumns>\n\t\t\t\t<metric-segment segment=editor.addColumnSegment get-options=editor.getColumnOptions() on-change=editor.addColumn()></metric-segment>\n\t\t\t</div>\n\t\t\t<div class=gf-form ng-hide=editor.canSetColumns>\n\t\t\t\t<label class=gf-form-label>\n\t\t\t\t\tAuto\n\t\t\t\t\t<info-popover mode=right-normal ng-if=editor.columnsHelpMessage>\n\t\t\t\t\t\t{{editor.columnsHelpMessage}}\n\t\t\t\t\t</info-popover>\n\t\t\t\t</label>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\n\t<div class="section gf-form-group">\n\t\t<h5 class=section-heading>Paging</h5>\n <div class=gf-form>\n <label class="gf-form-label width-8">Rows per page</label>\n <input type=number class="gf-form-input width-7" placeholder=100 data-placement=right ng-model=editor.panel.pageSize ng-change=editor.render() ng-model-onblur>\n </div>\n <gf-form-switch class=gf-form label-class=width-8 switch-class=max-width-7 label=Scroll checked=editor.panel.scroll on-change=editor.render()>
8</gf-form-switch>\n <div class="gf-form max-width-17">\n <label class="gf-form-label width-8">Font size</label>\n <div class="gf-form-select-wrapper width-7">\n <select class=gf-form-input ng-model=editor.panel.fontSize ng-options="f for f in editor.fontSizes" ng-change=editor.render()></select>\n </div>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/panel/table/module.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'\n<div class=table-panel-container>\n\t<div class=table-panel-header-bg ng-show=ctrl.table.rows.length></div>\n\t<div class=table-panel-scroll ng-show=ctrl.table.rows.length>\n\t\t<table class=table-panel-table>\n\t\t\t<thead>\n\t\t\t\t<tr>\n\t\t\t\t\t<th ng-repeat="col in ctrl.table.columns" ng-hide=col.hidden>\n\t\t\t\t\t\t<div class="table-panel-table-header-inner pointer" ng-click="ctrl.toggleColumnSort(col, $index)">\n\t\t\t\t\t\t\t{{col.title}}\n\t\t\t\t\t\t\t<span class=table-panel-table-header-controls ng-if=col.sort>\n\t\t\t\t\t\t\t\t<i class="fa fa-caret-down" ng-show=col.desc></i>\n\t\t\t\t\t\t\t\t<i class="fa fa-caret-up" ng-hide=col.desc></i>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</th>\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t\t<tbody>\n\t\t\t</tbody>\n\t\t</table>\n\t</div>\n</div>\n<div class=datapoints-warning ng-show="ctrl.table.rows.length===0">\n\t<span class=small>\n\t\tNo data to show <tip>Nothing returned by data query</tip>\n\t</span>\n</div>\n<div class=table-panel-footer>\n</div>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/panel/text/editor.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,"<div class=gf-form-group>\n\t<div class=gf-form-inline>\n\t\t<div class=gf-form>\n\t\t\t<span class=gf-form-label>
8Mode</span>\n\t\t\t<span class=gf-form-select-wrapper>\n\t\t\t\t<select class=gf-form-input ng-model=ctrl.panel.mode ng-options=\"f for f in ['html','markdown']\"></select>\n\t\t\t</span>\n\t\t</div>\n\t</div>\n</div>\n\n<h3 class=page-heading>Content</h3>\n\n<span ng-show=\"ctrl.panel.mode == 'markdown'\">\n\t(This area uses <a target=_blank href=http://en.wikipedia.org/wiki/Markdown>Markdown</a>. HTML is not supported)\n</span>\n\n<div class=gf-form-inline>\n\t<div class=\"gf-form gf-form--grow\">\n\t\t<code-editor content=ctrl.panel.content on-change=ctrl.render() data-mode=markdown data-max-lines=20 code-editor-focus=true>\n\t\t</code-editor>\n\t</div>\n</div>\n")}]),e.exports=n},function(e,t){var n="public/app/plugins/panel/text/module.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<p class="markdown-html panel-text-content" ng-bind-html=ctrl.content ng-show=ctrl.content>\n</p>\n')}]),e.exports=n},function(e,t){var n="public/app/plugins/panel/unknown/module.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,"<div class=text-center style=padding-top:2rem>\n\tUnknown panel type: <strong>{{ctrl.panel.type}}</strong>\n</div>\n\n\n")}]),e.exports=n},function(e,t,n){"use strict";var r=n(2),a=n(508);r.a.directive("jsonTree",[function(){return{restrict:"E",scope:{object:"=",startExpanded:"@",rootName:"@"},link:function(e,t){var n=new a.a(e.object,3,{animateOpen:!0}),r=n.render(!0);t.html(r)}}}])},function(e,t,n){"use strict";function r(e){return e.replace('"','"')}function a(e){var t=typeof e;return!!e&&"object"===t}function i(e){if(void 0===e)return"";if(null===e)return"Object";if("object"==typeof e&&!e.constructor)return"Object";var t=/function ([^(]*)/,n=t.exec(e.constructor.toString());return n&&n.length>1?n[1]:""}function o(e){return null===e?"null":typeof e}function s(e,t){var n=o(e);return"null"===n||"undefined"===n?n:("string"===n&&(t='"'+r(t)+'"'),"function"===n?e.toString().replace(/[\r\n]/g,"").replace(/\{.*\}/,"")+"{â¦}":t)}function l(e){return"json-formatter-"+e}function c(e,t,n){var r=document.createElement(e);return t&&r.classList.add(l(t)),void 0!==n&&(n instanceof Node?r.appendChild(n):r.appendChild(document.createTextNode(String(n)))),r}t.f=a,t.c=i,t.d=o,t.e=s,t.b=l,t.a=c},function(e,t,n){"use strict";function r(e,t,n){function r(e){f.setValue(e),f.clearSelection()}var a=n.mode||E,i=n.maxLines||T,s=void 0!==n.showGutter,c=n.tabSize||S,d=n.behavioursEnabled?"true"===n.behavioursEnabled:C,u=n.snippetsEnabled?"true"===n.snippetsEnabled:A,p=t.get(0),f=l.a.edit(p),m=f.getSession(),h={maxLines:i,showGutter:s,tabSize:c,behavioursEnabled:d,highlightActiveLine:!1,showPrintMargin:!1,autoScrollEditorIntoView:!0};f.setOptions(h),f.$blockScrolling=1/0,f.renderer.setScrollMargin(15,15),f.renderer.setPadding(10),function(){var e=k;o.a.bootData.user.lightTheme&&(e=_),f.setTheme(e)}(),function(t){if(l.a.acequire("ace/ext/language_tools"),f.setOptions({enableBasicAutocompletion:!0,enableLiveAutocompletion:!0,enableSnippets:u}),e.getCompleter()){var n=f;n.completers=n.completers.slice(),n.completers.push(e.getCompleter())}var r="ace/mode/"+t;m.setMode(r)}(a),r(e.content),t.addClass("gf-code-editor");var g=t.find("textarea");g.addClass("gf-form-input"),e.codeEditorFocus&&setTimeout(function(){g.focus();var e=g[0];if(e.setSelectionRange){var t=2*g.val().length;e.setSelectionRange(t,t)}},100),m.on("change",function(t){e.$apply(function(){var t=f.getValue();e.content=t})}),e.$watch("content",function(t,n){var a=f.getValue();t!==a&&t!==n&&e.$$postDigest(function(){r(t)})}),f.on("blur",function(){e.onChange()}),e.$on("$destroy",function(){f.destroy()}),f.commands.addCommand({name:"executeQuery",bindKey:{win:"Ctrl-Enter",mac:"Command-Enter"},exec:function(){e.onChange()}})}function a(){return{restrict:"E",template:N,scope:{content:"=",datasource:"=",codeEditorFocus:"<",onChange:"&",getCompleter:"&"},link:r}}var i=n(2),o=n(23),s=n(509),l=n.n(s),c=n(1177),d=(n.n(c),n(1178)),u=(n.n(d),n(1179)),p=(n.n(u),n(1180)),f=(n.n(p),n(1181)),m=(n.n(f),n(1182)),h=(n.n(m),n(1183)),g=(n.n(h),n(1184)),b=(n.n(g),n(1185)),v=(n.n(b),n(1186)
8),y=(n.n(v),n(1191)),w=(n.n(y),n(1192)),x=(n.n(w),n(1194)),k=(n.n(x),"ace/theme/grafana-dark"),_="ace/theme/textmate",E="text",T=10,S=2,C=!0,A=!0,N="<div></div>";i.a.directive("codeEditor",a)},,function(e,t){ace.define("ace/theme/grafana-dark",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";t.isDark=!0,t.cssClass="gf-code-dark",t.cssText=".gf-code-dark .ace_gutter { background: #2f3129; color: #8f908a } .gf-code-dark .ace_print-margin { width: 1px; background: #555651 } .gf-code-dark { background-color: #111; color: #e0e0e0 } .gf-code-dark .ace_cursor { color: #f8f8f0 } .gf-code-dark .ace_marker-layer .ace_selection { background: #49483e } .gf-code-dark.ace_multiselect .ace_selection.ace_start { box-shadow: 0 0 3px 0px #272822; } .gf-code-dark .ace_marker-layer .ace_step { background: rgb(102, 82, 0) } .gf-code-dark .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid #49483e } .gf-code-dark .ace_marker-layer .ace_active-line { background: #202020 } .gf-code-dark .ace_gutter-active-line { background-color: #272727 } .gf-code-dark .ace_marker-layer .ace_selected-word { border: 1px solid #49483e } .gf-code-dark .ace_invisible { color: #52524d } .gf-code-dark .ace_entity.ace_name.ace_tag, .gf-code-dark .ace_keyword, .gf-code-dark .ace_meta.ace_tag, .gf-code-dark .ace_storage { color: #66d9ef } .gf-code-dark .ace_punctuation, .gf-code-dark .ace_punctuation.ace_tag { color: #fff } .gf-code-dark .ace_constant.ace_character, .gf-code-dark .ace_constant.ace_language, .gf-code-dark .ace_constant.ace_numeric, .gf-code-dark .ace_constant.ace_other { color: #fe85fc } .gf-code-dark .ace_invalid { color: #f8f8f0; background-color: #f92672 } .gf-code-dark .ace_invalid.ace_deprecated { color: #f8f8f0; background-color: #ae81ff } .gf-code-dark .ace_support.ace_constant, .gf-code-dark .ace_support.ace_function { color: #59e6e3 } .gf-code-dark .ace_fold { background-color: #a6e22e; border-color: #f8f8f2 } .gf-code-dark .ace_storage.ace_type, .gf-code-dark .ace_support.ace_class, .gf-code-dark .ace_support.ace_type { font-style: italic; color: #66d9ef } .gf-code-dark .ace_entity.ace_name.ace_function, .gf-code-dark .ace_entity.ace_other, .gf-code-dark .ace_entity.ace_other.ace_attribute-name, .gf-code-dark .ace_variable { color: #a6e22e } .gf-code-dark .ace_variable.ace_parameter { font-style: italic; color: #fd971f } .gf-code-dark .ace_string { color: #74e680 } .gf-code-dark .ace_paren { color: #f0a842 } .gf-code-dark .ace_operator { color: #FFF } .gf-code-dark .ace_comment { color: #75715e } .gf-code-dark .ace_indent-guide { background: url(data:image/png;base64,ivborw0kggoaaaansuheugaaaaeaaaaccayaaaczgbynaaaaekleqvqimwpq0fd0zxbzd/wpaajvaoxesgneaaaaaelftksuqmcc) right repeat-y }",e("../lib/dom").importCssString(t.cssText,t.cssClass)})},function(e,t){ace.define("ace/snippets",["require","exports","module","ace/lib/oop","ace/lib/event_emitter","ace/lib/lang","ace/range","ace/anchor","ace/keyboard/hash_handler","ace/tokenizer","ace/lib/dom","ace/editor"],function(e,t,n){"use strict";var r=e("./lib/oop"),a=e("./lib/event_emitter").EventEmitter,i=e("./lib/lang"),o=e("./range").Range,s=e("./anchor").Anchor,l=e("./keyboard/hash_handler").HashHandler,c=e("./tokenizer").Tokenizer,d=o.comparePoints,u=function(){this.snippetMap={},this.snippetNameMap={}};(function(){r.implement(this,a),this.getTokenizer=function(){function e(e,t,n){return e=e.substr(1),/^\d+$/.test(e)&&!n.inFormatString?[{tabstopId:parseInt(e,10)}]:[{text:e}]}function t(e){return"(?:[^\\\\"+e+"]|\\\\.)"}return u.$tokenizer=new c({start:[{regex:/:/,onMatch:function(e,t,n){return n.length&&n[0].expectIf?(n[0].expectIf=!1,n[0].elseBranch=n[0],[n[0]]):":"}},{regex:/\\./,onMatch:function(e,t,n){var r=e[1];return"}"==r&&n.length?e=r:-1!="`$\\".indexOf(r)?e=r:n.inFormatString&&("n"==r?e="\n":"t"==r?e="\n":-1!="ulULE".indexOf(r)&&(e={changeCase:r,local:r>"a"})),[e]}},{regex:/}/,onMatch:function(e,t,n){return[n.length?n.shift():e]}},{regex:/\$(?:\d+|\w+)/,onMatch:e},{regex:/\$\{[\dA-Z_a-z]+/,onMatch:function(t,n,r){var a=e(t.substr(1),n,r);return r.unshift(a[0]),a},next:"snippetVar"},{regex:/\n/,token:"newline",merge:!1}],snippetVar:[{regex:"\\|"+t("\\|")+"*\\|",onMatch:function(e,t,n){n[0].choices=e.slice(1,-1).split(",")},next:"start"},{regex:"/("+t("/")+"+)/(?:("+t("/")+"*)/)(\\w*):?",onMatch:function(e,t,n){var r=n[0];return r.fmtString=e,e=this.splitRegex.exec(e),r.guard=e[1],r.fmt=e[2],r.flag=e[3],""},next:"start"}
8,{regex:"`"+t("`")+"*`",onMatch:function(e,t,n){return n[0].code=e.splice(1,-1),""},next:"start"},{regex:"\\?",onMatch:function(e,t,n){n[0]&&(n[0].expectIf=!0)},next:"start"},{regex:"([^:}\\\\]|\\\\.)*:?",token:"",next:"start"}],formatString:[{regex:"/("+t("/")+"+)/",token:"regex"},{regex:"",onMatch:function(e,t,n){n.inFormatString=!0},next:"start"}]}),u.prototype.getTokenizer=function(){return u.$tokenizer},u.$tokenizer},this.tokenizeTmSnippet=function(e,t){return this.getTokenizer().getLineTokens(e,t).tokens.map(function(e){return e.value||e})},this.$getDefaultValue=function(e,t){if(/^[A-Z]\d+$/.test(t)){var n=t.substr(1);return(this.variables[t[0]+"__"]||{})[n]}if(/^\d+$/.test(t))return(this.variables.__||{})[t];if(t=t.replace(/^TM_/,""),e){var r=e.session;switch(t){case"CURRENT_WORD":var a=r.getWordRange();case"SELECTION":case"SELECTED_TEXT":return r.getTextRange(a);case"CURRENT_LINE":return r.getLine(e.getCursorPosition().row);case"PREV_LINE":return r.getLine(e.getCursorPosition().row-1);case"LINE_INDEX":return e.getCursorPosition().column;case"LINE_NUMBER":return e.getCursorPosition().row+1;case"SOFT_TABS":return r.getUseSoftTabs()?"YES":"NO";case"TAB_SIZE":return r.getTabSize();case"FILENAME":case"FILEPATH":return"";case"FULLNAME":return"Ace"}}},this.variables={},this.getVariableValue=function(e,t){return this.variables.hasOwnProperty(t)?this.variables[t](e,t)||"":this.$getDefaultValue(e,t)||""},this.tmStrFormat=function(e,t,n){var r=t.flag||"",a=t.guard;a=new RegExp(a,r.replace(/[^gi]/,""));var i=this.tokenizeTmSnippet(t.fmt,"formatString"),o=this,s=e.replace(a,function(){o.variables.__=arguments;for(var e=o.resolveVariables(i,n),t="E",r=0;r<e.length;r++){var a=e[r];if("object"==typeof a)if(e[r]="",a.changeCase&&a.local){var s=e[r+1];s&&"string"==typeof s&&("u"==a.changeCase?e[r]=s[0].toUpperCase():e[r]=s[0].toLowerCase(),e[r+1]=s.substr(1))}else a.changeCase&&(t=a.changeCase);else"U"==t?e[r]=a.toUpperCase():"L"==t&&(e[r]=a.toLowerCase())}return e.join("")});return this.variables.__=null,s},this.resolveVariables=function(e,t){function n(t){var n=e.indexOf(t,a+1);-1!=n&&(a=n)}for(var r=[],a=0;a<e.length;a++){var i=e[a];if("string"==typeof i)r.push(i);else{if("object"!=typeof i)continue;if(i.skip)n(i);else{if(i.processed<a)continue;if(i.text){var o=this.getVariableValue(t,i.text);o&&i.fmtString&&(o=this.tmStrFormat(o,i)),i.processed=a,null==i.expectIf?o&&(r.push(o),n(i)):o?i.skip=i.elseBranch:n(i)}else null!=i.tabstopId?r.push(i):null!=i.changeCase&&r.push(i)}}}return r},this.insertSnippetForSelection=function(e,t){var n=e.getCursorPosition(),r=e.session.getLine(n.row),a=e.session.getTabString(),i=r.match(/^\s*/)[0];n.column<i.length&&(i=i.slice(0,n.column)),t=t.replace(/\r/g,"");var o=this.tokenizeTmSnippet(t);o=this.resolveVariables(o,e),o=o.map(function(e){return"\n"==e?e+i:"string"==typeof e?e.replace(/\t/g,a):e});var s=[];o.forEach(function(e,t){if("object"==typeof e){var n=e.tabstopId,r=s[n];if(r||(r=s[n]=[],r.index=n,r.value=""),-1===r.indexOf(e)){r.push(e);var a=o.indexOf(e,t+1);if(-1!==a){var i=o.slice(t+1,a);i.some(function(e){return"object"==typeof e})&&!r.value?r.value=i:!i.length||r.value&&"string"==typeof r.value||(r.value=i.join(""))}}}}),s.forEach(function(e){e.length=0});for(var l={},c=0;c<o.length;c++){var d=o[c];if("object"==typeof d){var u=d.tabstopId,f=o.indexOf(d,c+1);if(l[u])l[u]===d&&(l[u]=null);
8else{var m=s[u],h="string"==typeof m.value?[m.value]:function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];if("object"==typeof r){if(l[r.tabstopId])continue;r=t[e.lastIndexOf(r,n-1)]||{tabstopId:r.tabstopId}}t[n]=r}return t}(m.value);h.unshift(c+1,Math.max(0,f-c)),h.push(d),l[u]=d,o.splice.apply(o,h),-1===m.indexOf(d)&&m.push(d)}}}var g=0,b=0,v="";o.forEach(function(e){if("string"==typeof e){var t=e.split("\n");t.length>1?(b=t[t.length-1].length,g+=t.length-1):b+=e.length,v+=e}else e.start?e.end={row:g,column:b}:e.start={row:g,column:b}});var y=e.getSelectionRange(),w=e.session.replace(y,v),x=new p(e),k=e.inVirtualSelectionMode&&e.selection.index;x.addTabstops(s,y.start,w,k)},this.insertSnippet=function(e,t){var n=this;if(e.inVirtualSelectionMode)return n.insertSnippetForSelection(e,t);e.forEachSelection(function(){n.insertSnippetForSelection(e,t)},null,{keepOrder:!0}),e.tabstopManager&&e.tabstopManager.tabNext()},this.$getScope=function(e){var t=e.session.$mode.$id||"";if("html"===(t=t.split("/").pop())||"php"===t){"php"!==t||e.session.$mode.inlinePhp||(t="html");var n=e.getCursorPosition(),r=e.session.getState(n.row);"object"==typeof r&&(r=r[0]),r.substring&&("js-"==r.substring(0,3)?t="javascript":"css-"==r.substring(0,4)?t="css":"php-"==r.substring(0,4)&&(t="php"))}return t},this.getActiveScopes=function(e){var t=this.$getScope(e),n=[t],r=this.snippetMap;return r[t]&&r[t].includeScopes&&n.push.apply(n,r[t].includeScopes),n.push("_"),n},this.expandWithTab=function(e,t){var n=this,r=e.forEachSelection(function(){return n.expandSnippetForSelection(e,t)},null,{keepOrder:!0});return r&&e.tabstopManager&&e.tabstopManager.tabNext(),r},this.expandSnippetForSelection=function(e,t){var n,r=e.getCursorPosition(),a=e.session.getLine(r.row),i=a.substring(0,r.column),o=a.substr(r.column),s=this.snippetMap;return this.getActiveScopes(e).some(function(e){var t=s[e];return t&&(n=this.findMatchingSnippet(t,i,o)),!!n},this),!!n&&(!(!t||!t.dryRun)||(e.session.doc.removeInLine(r.row,r.column-n.replaceBefore.length,r.column+n.replaceAfter.length),this.variables.M__=n.matchBefore,this.variables.T__=n.matchAfter,this.insertSnippetForSelection(e,n.content),this.variables.M__=this.variables.T__=null,!0))},this.findMatchingSnippet=function(e,t,n){for(var r=e.length;r--;){var a=e[r];if((!a.startRe||a.startRe.test(t))&&((!a.endRe||a.endRe.test(n))&&(a.startRe||a.endRe)))return a.matchBefore=a.startRe?a.startRe.exec(t):[""],a.matchAfter=a.endRe?a.endRe.exec(n):[""],a.replaceBefore=a.triggerRe?a.triggerRe.exec(t)[0]:"",a.replaceAfter=a.endTriggerRe?a.endTriggerRe.exec(n)[0]:"",a}},this.snippetMap={},this.snippetNameMap={},this.register=function(e,t){function n(e){return e&&!/^\^?\(.*\)\$?$|^\\b$/.test(e)&&(e="(?:"+e+")"),e||""}function r(e,t,r){return e=n(e),t=n(t),r?(e=t+e)&&"$"!=e[e.length-1]&&(e+="$"):(e+=t)&&"^"!=e[0]&&(e="^"+e),new RegExp(e)}function a(e){e.scope||(e.scope=t||"_"),t=e.scope,o[t]||(o[t]=[],s[t]={});var n=s[t];if(e.name){var a=n[e.name];a&&l.unregister(a),n[e.name]=e}o[t].push(e),e.tabTrigger&&!e.trigger&&(!e.guard&&/^\w/.test(e.tabTrigger)&&(e.guard="\\b"),e.trigger=i.escapeRegExp(e.tabTrigger)),(e.trigger||e.guard||e.endTrigger||e.endGuard)&&(e.startRe=r(e.trigger,e.guard,!0),e.triggerRe=new RegExp(e.trigger,"",!0),e.endRe=r(e.endTrigger,e.endGuard,!0),e.endTriggerRe=new RegExp(e.endTrigger,"",!0))}var o=this.snippetMap,s=this.snippetNameMap,l=this;e||(e=[]),e&&e.content?a(e):Array.isArray(e)&&e.forEach(a),this._signal("registerSnippets",{scope:t})},this.unregister=function(e,t){function n(e){var n=a[e.scope||t];if(n&&n[e.name]){delete n[e.name];var i=r[e.scope||t],o=i&&i.indexOf(e);o>=0&&i.splice(o,1)}}var r=this.snippetMap,a=this.snippetNameMap;e.content?n(e):Array.isArray(e)&&e.forEach(n)},this.parseSnippetFile=function(e){e=e.replace(/\r/g,"");for(var t,n=[],r={},a=/^#.*|^({[\s\S]*})\s*$|^(\S+) (.*)$|^((?:\n*\t.*)+)/gm;t=a.exec(e);){if(t[1])try{r=JSON.parse(t[1]),n.push(r)}catch(e){}if(t[4])r.content=t[4].replace(/^\t/gm,""),n.push(r),r={};else{var i=t[2],o=t[3];if("regex"==i){var s=/\/((?:[^\/\\]|\\.)*)|$/g;r.guard=s.exec(o)[1],r.trigger=s.exec(o)[1],r.endTrigger=s.exec(o)[1],r.endGuard=s.exec(o)[1]}else"snippet"==i?(r.tabTrigger=o.match(/^\S*/)[0],r.name||(r.name=o)):r[i]=o}}return n}
8,this.getSnippetByName=function(e,t){var n,r=this.snippetNameMap;return this.getActiveScopes(t).some(function(t){var a=r[t];return a&&(n=a[e]),!!n},this),n}}).call(u.prototype);var p=function(e){if(e.tabstopManager)return e.tabstopManager;e.tabstopManager=this,this.$onChange=this.onChange.bind(this),this.$onChangeSelection=i.delayedCall(this.onChangeSelection.bind(this)).schedule,this.$onChangeSession=this.onChangeSession.bind(this),this.$onAfterExec=this.onAfterExec.bind(this),this.attach(e)};(function(){this.attach=function(e){this.index=0,this.ranges=[],this.tabstops=[],this.$openTabstops=null,this.selectedTabstop=null,this.editor=e,this.editor.on("change",this.$onChange),this.editor.on("changeSelection",this.$onChangeSelection),this.editor.on("changeSession",this.$onChangeSession),this.editor.commands.on("afterExec",this.$onAfterExec),this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)},this.detach=function(){this.tabstops.forEach(this.removeTabstopMarkers,this),this.ranges=null,this.tabstops=null,this.selectedTabstop=null,this.editor.removeListener("change",this.$onChange),this.editor.removeListener("changeSelection",this.$onChangeSelection),this.editor.removeListener("changeSession",this.$onChangeSession),this.editor.commands.removeListener("afterExec",this.$onAfterExec),this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.tabstopManager=null,this.editor=null},this.onChange=function(e){var t="r"==e.action[0],n=e.start,r=e.end,a=n.row,i=r.row,o=i-a,s=r.column-n.column;if(t&&(o=-o,s=-s),!this.$inChange&&t){var l=this.selectedTabstop;if(l&&!l.some(function(e){return d(e.start,n)<=0&&d(e.end,r)>=0}))return this.detach()}for(var c=this.ranges,u=0;u<c.length;u++){var p=c[u];p.end.row<n.row||(t&&d(n,p.start)<0&&d(r,p.end)>0?(this.removeRange(p),u--):(p.start.row==a&&p.start.column>n.column&&(p.start.column+=s),p.end.row==a&&p.end.column>=n.column&&(p.end.column+=s),p.start.row>=a&&(p.start.row+=o),p.end.row>=a&&(p.end.row+=o),d(p.start,p.end)>0&&this.removeRange(p)))}c.length||this.detach()},this.updateLinkedFields=function(){var e=this.selectedTabstop;if(e&&e.hasLinkedRanges){this.$inChange=!0;for(var n=this.editor.session,r=n.getTextRange(e.firstNonLinked),a=e.length;a--;){var i=e[a];if(i.linked){var o=t.snippetManager.tmStrFormat(r,i.original);n.replace(i,o)}}this.$inChange=!1}},this.onAfterExec=function(e){e.command&&!e.command.readOnly&&this.updateLinkedFields()},this.onChangeSelection=function(){if(this.editor){for(var e=this.editor.selection.lead,t=this.editor.selection.anchor,
8n=this.editor.selection.isEmpty(),r=this.ranges.length;r--;)if(!this.ranges[r].linked){var a=this.ranges[r].contains(e.row,e.column),i=n||this.ranges[r].contains(t.row,t.column);if(a&&i)return}this.detach()}},this.onChangeSession=function(){this.detach()},this.tabNext=function(e){var t=this.tabstops.length,n=this.index+(e||1);n=Math.min(Math.max(n,1),t),n==t&&(n=0),this.selectTabstop(n),0===n&&this.detach()},this.selectTabstop=function(e){this.$openTabstops=null;var t=this.tabstops[this.index];if(t&&this.addTabstopMarkers(t),this.index=e,(t=this.tabstops[this.index])&&t.length){if(this.selectedTabstop=t,this.editor.inVirtualSelectionMode)this.editor.selection.setRange(t.firstNonLinked);else{var n=this.editor.multiSelect;n.toSingleRange(t.firstNonLinked.clone());for(var r=t.length;r--;)t.hasLinkedRanges&&t[r].linked||n.addRange(t[r].clone(),!0);n.ranges[0]&&n.addRange(n.ranges[0].clone())}this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)}},this.addTabstops=function(e,t,n){if(this.$openTabstops||(this.$openTabstops=[]),!e[0]){var r=o.fromPoints(n,n);h(r.start,t),h(r.end,t),e[0]=[r],e[0].index=0}var a=this.index,i=[a+1,0],s=this.ranges;e.forEach(function(e,n){for(var r=this.$openTabstops[n]||e,a=e.length;a--;){var l=e[a],c=o.fromPoints(l.start,l.end||l.start);m(c.start,t),m(c.end,t),c.original=l,c.tabstop=r,s.push(c),r!=e?r.unshift(c):r[a]=c,l.fmtString?(c.linked=!0,r.hasLinkedRanges=!0):r.firstNonLinked||(r.firstNonLinked=c)}r.firstNonLinked||(r.hasLinkedRanges=!1),r===e&&(i.push(r),this.$openTabstops[n]=r),this.addTabstopMarkers(r)},this),i.length>2&&(this.tabstops.length&&i.push(i.splice(2,1)[0]),this.tabstops.splice.apply(this.tabstops,i))},this.addTabstopMarkers=function(e){var t=this.editor.session;e.forEach(function(e){e.markerId||(e.markerId=t.addMarker(e,"ace_snippet-marker","text"))})},this.removeTabstopMarkers=function(e){var t=this.editor.session;e.forEach(function(e){t.removeMarker(e.markerId),e.markerId=null})},this.removeRange=function(e){var t=e.tabstop.indexOf(e);e.tabstop.splice(t,1),t=this.ranges.indexOf(e),this.ranges.splice(t,1),this.editor.session.removeMarker(e.markerId),e.tabstop.length||(t=this.tabstops.indexOf(e.tabstop),-1!=t&&this.tabstops.splice(t,1),this.tabstops.length||this.detach())},this.keyboardHandler=new l,this.keyboardHandler.bindKeys({Tab:function(e){t.snippetManager&&t.snippetManager.expandWithTab(e)||e.tabstopManager.tabNext(1)},"Shift-Tab":function(e){e.tabstopManager.tabNext(-1)},Esc:function(e){e.tabstopManager.detach()},Return:function(e){return!1}})}).call(p.prototype);var f={};f.onChange=s.prototype.onChange,f.setPosition=function(e,t){this.pos.row=e,this.pos.column=t},f.update=function(e,t,n){this.$insertRight=n,this.pos=e,this.onChange(t)};var m=function(e,t){0==e.row&&(e.column+=t.column),e.row+=t.row},h=function(e,t){e.row==t.row&&(e.column-=t.column),e.row-=t.row};e("./lib/dom").importCssString(".ace_snippet-marker { -moz-box-sizing: border-box; box-sizing: border-box; background: rgba(194, 193, 208, 0.09); border: 1px dotted rgba(211, 208, 235, 0.62); position: absolute;}"),t.snippetManager=new u;var g=e("./editor").Editor;(function(){this.insertSnippet=function(e,n){return t.snippetManager.insertSnippet(this,e,n)},this.expandSnippet=function(e){return t.snippetManager.expandWithTab(this,e)}}).call(g.prototype)}),ace.define("ace/autocomplete/popup",["require","exports","module","ace/virtual_renderer","ace/editor","ace/range","ace/lib/event","ace/lib/lang","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../virtual_renderer").VirtualRenderer,a=e("../editor").Editor,i=e("../range").Range,o=e("../lib/event"),s=e("../lib/lang"),l=e("../lib/dom"),c=function(e){var t=new r(e);t.$maxLines=4;var n=new a(t);return n.setHighlightActiveLine(!1),n.setShowPrintMargin(!1),n.renderer.setShowGutter(!1),n.renderer.setHighlightGutterLine(!1),n.$mouseHandler.$focusWaitTimout=0,n.$highlightTagPending=!0,n},d=function(e){var t=l.createElement("div"),n=new c(t);e&&e.appendChild(t),t.style.display="none",n.renderer.content.style.cursor="default",n.renderer.setStyle("ace_autocomplete"),n.setOption("displayIndentGuides",!1),n.setOption("dragDelay",150);var r=function(){};n.focus=r,n.$isFocused=!0,n.renderer.$cursorLayer.restartTimer=r,n.renderer.$cursorLayer.element.style.opacity=0,n.renderer.$maxLines=8,n.renderer.$keepTextAreaAtCurs
8or=!1,n.setHighlightActiveLine(!1),n.session.highlight(""),n.session.$searchHighlight.clazz="ace_highlight-marker",n.on("mousedown",function(e){var t=e.getDocumentPosition();n.selection.moveToPosition(t),u.start.row=u.end.row=t.row,e.stop()});var a,d=new i(-1,0,-1,1/0),u=new i(-1,0,-1,1/0);u.id=n.session.addMarker(u,"ace_active-line","fullLine"),n.setSelectOnHover=function(e){e?d.id&&(n.session.removeMarker(d.id),d.id=null):d.id=n.session.addMarker(d,"ace_line-hover","fullLine")},n.setSelectOnHover(!1),n.on("mousemove",function(e){if(!a)return void(a=e);if(a.x!=e.x||a.y!=e.y){a=e,a.scrollTop=n.renderer.scrollTop;var t=a.getDocumentPosition().row;d.start.row!=t&&(d.id||n.setRow(t),f(t))}}),n.renderer.on("beforeRender",function(){if(a&&-1!=d.start.row){a.$pos=null;var e=a.getDocumentPosition().row;d.id||n.setRow(e),f(e,!0)}}),n.renderer.on("afterRender",function(){var e=n.getRow(),t=n.renderer.$textLayer,r=t.element.childNodes[e-t.config.firstRow];r!=t.selectedNode&&(t.selectedNode&&l.removeCssClass(t.selectedNode,"ace_selected"),t.selectedNode=r,r&&l.addCssClass(r,"ace_selected"))});var p=function(){f(-1)},f=function(e,t){e!==d.start.row&&(d.start.row=d.end.row=e,t||n.session._emit("changeBackMarker"),n._emit("changeHoverMarker"))};n.getHoveredRow=function(){return d.start.row},o.addListener(n.container,"mouseout",p),n.on("hide",p),n.on("changeSelection",p),n.session.doc.getLength=function(){return n.data.length},n.session.doc.getLine=function(e){var t=n.data[e];return"string"==typeof t?t:t&&t.value||""};var m=n.session.bgTokenizer;return m.$tokenizeRow=function(e){var t=n.data[e],r=[];if(!t)return r;"string"==typeof t&&(t={value:t}),t.caption||(t.caption=t.value||t.name);for(var a,i,o=-1,s=0;s<t.caption.length;s++)i=t.caption[s],a=t.matchMask&1<<s?1:0,o!==a?(r.push({type:t.className||(a?"completion-highlight":""),value:i}),o=a):r[r.length-1].value+=i;if(t.meta){var l=n.renderer.$size.scrollerWidth/n.renderer.layerConfig.characterWidth,c=t.meta;c.length+t.caption.length>l-2&&(c=c.substr(0,l-t.caption.length-3)+"â¦"),r.push({type:"rightAlignedText",value:c})}return r},m.$updateOnChange=r,m.start=r,n.session.$computeWidth=function(){return this.screenWidth=0},n.$blockScrolling=1/0,n.isOpen=!1,n.isTopdown=!1,n.data=[],n.setData=function(e){n.setValue(s.stringRepeat("\n",e.length),-1),n.data=e||[],n.setRow(0)},n.getData=function(e){return n.data[e]},n.getRow=function(){return u.start.row},n.setRow=function(e){e=Math.max(0,Math.min(this.data.length,e)),u.start.row!=e&&(n.selection.clearSelection(),u.start.row=u.end.row=e||0,n.session._emit("changeBackMarker"),n.moveCursorTo(e||0,0),n.isOpen&&n._signal("select"))},n.on("changeSelection",function(){n.isOpen&&n.setRow(n.selection.lead.row),n.renderer.scrollCursorIntoView()}),n.hide=function(){this.container.style.display="none",this._signal("hide"),n.isOpen=!1},n.show=function(e,t,r){var i=this.container,o=window.innerHeight,s=window.innerWidth,l=this.renderer,c=l.$maxLines*t*1.4,d=e.top+this.$borderSize;d>o/2&&!r&&d+t+c>o?(l.$maxPixelHeight=d-2*this.$borderSize,i.style.top="",i.style.bottom=o-d+"px",n.isTopdown=!1):(d+=t,l.$maxPixelHeight=o-d-.2*t,i.style.top=d+"px",i.style.bottom="",n.isTopdown=!0),i.style.display="",this.renderer.$textLayer.checkForSizeChanges();var u=e.left;u+i.offsetWidth>s&&(u=s-i.offsetWidth),i.style.left=u+"px",this._signal("show"),a=null,n.isOpen=!0},n.getTextLeftOffset=function(){return this.$borderSize+this.renderer.$padding+this.$imageSize},n.$imageSize=0,n.$borderSize=1,n};l.importCssString(".ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line { background-color: #CAD6FA; z-index: 1;}.ace_editor.ace_autocomplete .ace_line-hover { border: 1px solid #abbffe; margin-top: -1px; background: rgba(233,233,253,0.4);}.ace_editor.ace_autocomplete .ace_line-hover { position: absolute; z-index: 2;}.ace_editor.ace_autocomplete .ace_scroller { background: none; border: none; box-shadow: none;}.ace_rightAlignedText { color: gray; display: inline-block; position: absolute; right: 4px; text-align: right; z-index: -1;}
8.ace_editor.ace_autocomplete .ace_completion-highlight{ color: #000; text-shadow: 0 0 0.01em;}.ace_editor.ace_autocomplete { width: 280px; z-index: 200000; background: #fbfbfb; color: #444; border: 1px lightgray solid; position: fixed; box-shadow: 2px 3px 5px rgba(0,0,0,.2); line-height: 1.4;}"),t.AcePopup=d}),ace.define("ace/autocomplete/util",["require","exports","module"],function(e,t,n){"use strict";t.parForEach=function(e,t,n){var r=0,a=e.length;0===a&&n();for(var i=0;i<a;i++)t(e[i],function(e,t){++r===a&&n(e,t)})};var r=/[a-zA-Z_0-9\$\-\u00A2-\uFFFF]/;t.retrievePrecedingIdentifier=function(e,t,n){n=n||r;for(var a=[],i=t-1;i>=0&&n.test(e[i]);i--)a.push(e[i]);return a.reverse().join("")},t.retrieveFollowingIdentifier=function(e,t,n){n=n||r;for(var a=[],i=t;i<e.length&&n.test(e[i]);i++)a.push(e[i]);return a},t.getCompletionPrefix=function(e){var t,n=e.getCursorPosition(),r=e.session.getLine(n.row);return e.completers.forEach(function(e){e.identifierRegexps&&e.identifierRegexps.forEach(function(e){!t&&e&&(t=this.retrievePrecedingIdentifier(r,n.column,e))}.bind(this))}.bind(this)),t||this.retrievePrecedingIdentifier(r,n.column)}}),ace.define("ace/autocomplete",["require","exports","module","ace/keyboard/hash_handler","ace/autocomplete/popup","ace/autocomplete/util","ace/lib/event","ace/lib/lang","ace/lib/dom","ace/snippets"],function(e,t,n){"use strict";var r=e("./keyboard/hash_handler").HashHandler,a=e("./autocomplete/popup").AcePopup,i=e("./autocomplete/util"),o=(e("./lib/event"),e("./lib/lang")),s=e("./lib/dom"),l=e("./snippets").snippetManager,c=function(){this.autoInsert=!1,this.autoSelect=!0,this.exactMatch=!1,this.gatherCompletionsId=0,this.keyboardHandler=new r,this.keyboardHandler.bindKeys(this.commands),this.blurListener=this.blurListener.bind(this),this.changeListener=this.changeListener.bind(this),this.mousedownListener=this.mousedownListener.bind(this),this.mousewheelListener=this.mousewheelListener.bind(this),this.changeTimer=o.delayedCall(function(){this.updateCompletions(!0)}.bind(this)),this.tooltipTimer=o.delayedCall(this.updateDocTooltip.bind(this),50)};(function(){this.$init=function(){return this.popup=new a(document.body||document.documentElement),this.popup.on("click",function(e){this.insertMatch(),e.stop()}.bind(this)),this.popup.focus=this.editor.focus.bind(this.editor),this.popup.on("show",this.tooltipTimer.bind(null,null)),this.popup.on("select",this.tooltipTimer.bind(null,null)),this.popup.on("changeHoverMarker",this.tooltipTimer.bind(null,null)),this.popup},this.getPopup=function(){return this.popup||this.$init()},this.openPopup=function(e,t,n){this.popup||this.$init(),this.popup.setData(this.completions.filtered),e.keyBinding.addKeyboardHandler(this.keyboardHandler);var r=e.renderer;if(this.popup.setRow(this.autoSelect?0:-1),n)n&&!t&&this.detach();else{this.popup.setTheme(e.getTheme()),this.popup.setFontSize(e.getFontSize());var a=r.layerConfig.lineHeight,i=r.$cursorLayer.getPixelPosition(this.base,!0);i.left-=this.popup.getTextLeftOffset();var o=e.container.getBoundingClientRect();i.top+=o.top-r.layerConfig.offset,i.left+=o.left-e.renderer.scrollLeft,i.left+=r.gutterWidth,this.popup.show(i,a)}},this.detach=function(){this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.off("changeSelection",this.changeListener),this.editor.off("blur",this.blurListener),this.editor.off("mousedown",this.mousedownListener),this.editor.off("mousewheel",this.mousewheelListener),this.changeTimer.cancel(),this.hideDocTooltip(),this.gatherCompletionsId+=1,this.popup&&this.popup.isOpen&&this.popup.hide(),this.base&&this.base.detach(),this.activated=!1,this.completions=this.base=null},this.changeListener=function(e){var t=this.editor.selection.lead;(t.row!=this.base.row||t.column<this.base.column)&&this.detach(),this.activated?this.changeTimer.schedule():this.detach()},this.blurListener=function(e){e.relatedTarget&&"A"==e.relatedTarget.nodeName&&e.relatedTarget.href&&window.open(e.relatedTarget.href,"_blank");var t=document.activeElement,n=this.editor.textInput.getElement(),r=e.relatedTarget&&e.relatedTarget==this.tooltipNode,a=this.popup&&this.popup.container;t==n||t.parentNode==a||r||t==this.tooltipNode||e.relatedTarget==n||this.detach()},this.mousedownListener=function(e){this.detach()},this.mousewheelListener=function(e){this.detach()},this.goTo=function(e){var t=this.popup.getRow(),n=this.popup.session.getLength()-1;switch(e){case"up":t=t<=0?n:t-1;break;case"down":t=t>=n?-1:t+1;break;case"start":t=0;break;case"end":t=n}this.popup.setRow(t)},this.insertMatch=function(e,t){if(e||(e=this.popup.getData(this.popup.getRow())),!e)return!1;if(e.completer&&e.completer.insertMatch)e.completer.insertMatch(this.editor,e);else{if(this.completions.filterText)for(var n,r=this.editor.selection.getAllRanges(),a=0;n=r[a];a++)n.start.column-=this.completions.filterText.length,this.editor.session.remove(n);e.snippet?l.insertSnippet(this.editor,e.snippet):this.editor.execCommand("insertstring",e.value||e)}this.detach()},this.commands={Up:function(e){e.completer.goTo("up")},Down:function(e){e.completer.goTo("down")},"Ctrl-Up|Ctrl-Home":function(e){e.completer.goTo("start")},"Ctrl-Down|Ctrl-End":function(e){e.completer.goTo("end")},Esc:function(e){e.completer.detach()},Return:function(e){return e.completer.insertMatch()},"Shift-Return":function(e){e.completer.insertMatch(null,{deleteSuffix:!0})},Tab:function(e){var t=e.completer.insertMatch();if(t||e.tabstopManager)return t;e.completer.goTo("down")},PageUp:function(e){e.completer.popup.gotoPageUp()},PageDown:function(e){e.completer.popup.gotoPageDown()}},this.gatherCompletions=function(e,t){var n=e.getSession(),r=e.getCursorPosition(),a=(n.getLine(r.row),i.getCompletionPrefix(e));this.base=n.doc.createAnchor(r.row,r.column-a.length),this.base.$insertRight=!0;var o=[],s=e.completers.length;
8return e.completers.forEach(function(i,l){i.getCompletions(e,n,r,a,function(r,i){!r&&i&&(o=o.concat(i));var l=e.getCursorPosition();n.getLine(l.row);t(null,{prefix:a,matches:o,finished:0==--s})})}),!0},this.showPopup=function(e){this.editor&&this.detach(),this.activated=!0,this.editor=e,e.completer!=this&&(e.completer&&e.completer.detach(),e.completer=this),e.on("changeSelection",this.changeListener),e.on("blur",this.blurListener),e.on("mousedown",this.mousedownListener),e.on("mousewheel",this.mousewheelListener),this.updateCompletions()},this.updateCompletions=function(e){if(e&&this.base&&this.completions){var t=this.editor.getCursorPosition(),n=this.editor.session.getTextRange({start:this.base,end:t});if(n==this.completions.filterText)return;return this.completions.setFilter(n),this.completions.filtered.length?1!=this.completions.filtered.length||this.completions.filtered[0].value!=n||this.completions.filtered[0].snippet?void this.openPopup(this.editor,n,e):this.detach():this.detach()}var r=this.gatherCompletionsId;this.gatherCompletions(this.editor,function(t,n){var a=function(){if(n.finished)return this.detach()}.bind(this),i=n.prefix,o=n&&n.matches;if(!o||!o.length)return a();if(0===i.indexOf(n.prefix)&&r==this.gatherCompletionsId){this.completions=new d(o),this.exactMatch&&(this.completions.exactMatch=!0),this.completions.setFilter(i);var s=this.completions.filtered;return s.length&&(1!=s.length||s[0].value!=i||s[0].snippet)?this.autoInsert&&1==s.length&&n.finished?this.insertMatch(s[0]):void this.openPopup(this.editor,i,e):a()}}.bind(this))},this.cancelContextMenu=function(){this.editor.$mouseHandler.cancelContextMenu()},this.updateDocTooltip=function(){var e=this.popup,t=e.data,n=t&&(t[e.getHoveredRow()]||t[e.getRow()]),r=null;return n&&this.editor&&this.popup.isOpen?(this.editor.completers.some(function(e){return e.getDocTooltip&&(r=e.getDocTooltip(n)),r}),r||(r=n),"string"==typeof r&&(r={docText:r}),r&&(r.docHTML||r.docText)?void this.showDocTooltip(r):this.hideDocTooltip()):this.hideDocTooltip()},this.showDocTooltip=function(e){this.tooltipNode||(this.tooltipNode=s.createElement("div"),this.tooltipNode.className="ace_tooltip ace_doc-tooltip",this.tooltipNode.style.margin=0,this.tooltipNode.style.pointerEvents="auto",this.tooltipNode.tabIndex=-1,this.tooltipNode.onblur=this.blurListener.bind(this));var t=this.tooltipNode;e.docHTML?t.innerHTML=e.docHTML:e.docText&&(t.textContent=e.docText),t.parentNode||document.body.appendChild(t);var n=this.popup,r=n.container.getBoundingClientRect();t.style.top=n.container.style.top,t.style.bottom=n.container.style.bottom,window.innerWidth-r.right<320?(t.style.right=window.innerWidth-r.left+"px",t.style.left=""):(t.style.left=r.right+1+"px",t.style.right=""),t.style.display="block"},this.hideDocTooltip=function(){if(this.tooltipTimer.cancel(),this.tooltipNode){var e=this.tooltipNode;this.editor.isFocused()||document.activeElement!=e||this.editor.focus(),this.tooltipNode=null,e.parentNode&&e.parentNode.removeChild(e)}}}).call(c.prototype),c.startCommand={name:"startAutocomplete",exec:function(e){e.completer||(e.completer=new c),e.completer.autoInsert=!1,e.completer.autoSelect=!0,e.completer.showPopup(e),e.completer.cancelContextMenu()},bindKey:"Ctrl-Space|Ctrl-Shift-Space|Alt-Space"};var d=function(e,t){this.all=e,this.filtered=e,this.filterText=t||"",this.exactMatch=!1};(function(){this.setFilter=function(e){if(e.length>this.filterText&&0===e.lastIndexOf(this.filterText,0))var t=this.filtered;else var t=this.all;this.filterText=e,t=this.filterCompletions(t,this.filterText),t=t.sort(function(e,t){return t.exactMatch-e.exactMatch||t.score-e.score});var n=null;t=t.filter(function(e){var t=e.snippet||e.caption||e.value;return t!==n&&(n=t,!0)}),this.filtered=t},this.filterCompletions=function(e,t){var n=[],r=t.toUpperCase(),a=t.toLowerCase();e:for(var i,o=0;i=e[o];o++){var s=i.value||i.caption||i.snippet;if(s){var l,c,d=-1,u=0,p=0;if(this.exactMatch){if(t!==s.substr(0,t.length))continue e}else for(var f=0;f<t.length;f++){var m=s.indexOf(a[f],d+1),h=s.indexOf(r[f],d+1);if((l=m>=0&&(h<0||m<h)?m:h)<0)continue e;c=l-d-1,c>0&&(-1===d&&(p+=10),p+=c),u|=1<<l,d=l}i.matchMask=u,i.exactMatch=p?0:1,i.score=(i.score||0)-p,n.push(i)}}return n}}).call(d.prototype),t.Autocomplete=c,t.FilteredList=d}),ace.define("ace/autocomplete/text_completer",["require","exports","module","ace/range"],function(e,t,n){function r(e,t){return e.getTextRange(i.fromPoints({row:0,column:0},t)).split(o).length-1}function a(e,t){var n=r(e,t),a=e.getValue().split(o),i=Object.create(null),s=a[n];return a.forEach(function(e,t){if(e&&e!==s){var r=Math.abs(n-t),o=a.length-r;i[e]?i[e]=Math.max(o,i[e]):i[e]=o}}),i}var i=e("../range").Range,o=/[^a-zA-Z_0-9\$\-\u00C0-\u1FFF\u2C00-\uD7FF\w]+/;t.getCompletions=function(e,t,n,r,i){var o=a(t,n);i(null,Object.keys(o).map(function(e){return{caption:e,value:e,score:o[e],meta:"local"}}))}}),ace.define("ace/ext/language_tools",["require","exports","module","ace/snippets","ace/autocomplete","ace/config","ace/lib/lang","ace/autocomplete/util","ace/autocomplete/text_completer","ace/editor","ace/config"],function(e,t,n){"use strict";var r=e("../snippets").snippetManager,a=e("../autocomplete").Autocomplete,i=e("../config"),o=e("../lib/lang"),s=e("../autocomplete/util"),l=e("../autocomplete/text_completer"),c={getCompletions:function(e,t,n,r,a){if(t.$mode.completer)return t.$mode.completer.getCompletions(e,t,n,r,a);var i=e.session.getState(n.row);a(null,t.$mode.getCompletions(i,t,n,r))}},d={getCompletions:function(e,t,n,a,i){var o=r.snippetMap,s=[];r.getActiveScopes(e).forEach(function(e){for(var t=o[e]||[],n=t.length;n--;){var r=t[n],a=r.name||r.tabTrigger;a&&s.push({caption:a,snippet:r.content,meta:r.tabTrigger&&!r.name?r.tabTrigger+"⥠":"snippet",type:"snippet"})}},this),i(null,s)},getDocTooltip:function(e){"snippet"!=e.type||e.docHTML||(e.docHTML=["<b>",o.escapeHTML(e.caption),"</b>","<hr></hr>",o.escapeHTML(e.snippet)].join(""))}},u=[d,l,c];t.setCompleters=function(e){u.length=0,e&&u.push.apply(u,e)},t.addCompleter=function(e){u.push(e)}
8,t.textCompleter=l,t.keyWordCompleter=c,t.snippetCompleter=d;var p={name:"expandSnippet",exec:function(e){return r.expandWithTab(e)},bindKey:"Tab"},f=function(e,t){m(t.session.$mode)},m=function(e){var t=e.$id;r.files||(r.files={}),h(t),e.modes&&e.modes.forEach(m)},h=function(e){if(e&&!r.files[e]){var t=e.replace("mode","snippets");r.files[e]={},i.loadModule(t,function(t){t&&(r.files[e]=t,!t.snippets&&t.snippetText&&(t.snippets=r.parseSnippetFile(t.snippetText)),r.register(t.snippets||[],t.scope),t.includeScopes&&(r.snippetMap[t.scope].includeScopes=t.includeScopes,t.includeScopes.forEach(function(e){h("ace/mode/"+e)})))})}},g=function(e){var t=e.editor,n=t.completer&&t.completer.activated;if("backspace"===e.command.name)n&&!s.getCompletionPrefix(t)&&t.completer.detach();else if("insertstring"===e.command.name){var r=s.getCompletionPrefix(t);r&&!n&&(t.completer||(t.completer=new a),t.completer.autoInsert=!1,t.completer.showPopup(t))}},b=e("../editor").Editor;e("../config").defineOptions(b.prototype,"editor",{enableBasicAutocompletion:{set:function(e){e?(this.completers||(this.completers=Array.isArray(e)?e:u),this.commands.addCommand(a.startCommand)):this.commands.removeCommand(a.startCommand)},value:!1},enableLiveAutocompletion:{set:function(e){e?(this.completers||(this.completers=Array.isArray(e)?e:u),this.commands.on("afterExec",g)):this.commands.removeListener("afterExec",g)},value:!1},enableSnippets:{set:function(e){e?(this.commands.addCommand(p),this.on("changeMode",f),f(0,this)):(this.commands.removeCommand(p),this.off("changeMode",f))},value:!1}})}),function(){ace.acequire(["ace/ext/language_tools"],function(){})}()},function(e,t){ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";t.isDark=!1,t.cssClass="ace-tm",t.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4b
8Lly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}',e("../lib/dom").importCssString(t.cssText,t.cssClass)})},function(e,t){},function(e,t){ace.define("ace/snippets/text",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=void 0,t.scope="text"})},function(e,t){ace.define("ace/mode/sql_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),a=e("./text_highlight_rules").TextHighlightRules,i=function(){var e=this.createKeywordMapper({"support.function":"avg|count|first|last|max|min|sum|ucase|lcase|mid|len|round|rank|now|format|coalesce|ifnull|isnull|nvl",keyword:"select|insert|update|delete|from|where|and|or|group|by|order|limit|offset|having|as|case|when|else|end|type|left|right|join|on|outer|desc|asc|union|create|table|primary|key|if|foreign|not|references|default|null|inner|cross|natural|database|drop|grant","constant.language":"true|false","storage.type":"int|numeric|decimal|date|varchar|char|bigint|float|double|bit|binary|text|set|timestamp|money|real|number|integer"},"identifier",!0);this.$rules={start:[{token:"comment",regex:"--.*$"},{token:"comment",start:"/\\*",end:"\\*/"},{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:e,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\/|\\/\\/|%|<@>|@>|<@|&|\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"paren.lparen",regex:"[\\(]"},{token:"paren.rparen",regex:"[\\)]"},{token:"text",regex:"\\s+"}]},this.normalizeRules()};r.inherits(i,a),t.SqlHighlightRules=i}),ace.define("ace/mode/sql",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/sql_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),a=e("./text").Mode,i=e("./sql_highlight_rules").SqlHighlightRules,o=function(){this.HighlightRules=i,this.$behaviour=this.$defaultBehaviour};r.inherits(o,a),function(){this.lineCommentStart="--",this.$id="ace/mode/sql"}.call(o.prototype),t.Mode=o})},function(e,t){ace.define("ace/snippets/sql",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="snippet tbl\n\tcreate table ${1:table} (\n\t\t${2:columns}\n\t);\nsnippet col\n\t${1:name}\t${2:type}\t${3:default ''}\t${4:not null}\nsnippet ccol\n\t${1:name}\tvarchar2(${2:size})\t${3:default ''}\t${4:not null}\nsnippet ncol\n\t${1:name}\tnumber\t${3:default 0}\t${4:not null}\nsnippet dcol\n\t${1:name}\tdate\t${3:default sysdate}\t${4:not null}\nsnippet ind\n\tcreate index ${3:$1_$2} on ${1:table}(${2:column});\nsnippet uind\n\tcreate unique index ${1:name} on ${2:table}(${3:column});\nsnippet tblcom\n\tcomment on table ${1:table} is '${2:comment}';\nsnippet colcom\n\tcomment on column ${1:table}.${2:column} is '${3:comment}';\nsnippet addcol\n\talter table ${1:table} add (${2:column} ${3:type});\nsnippet seq\n\tcreate sequence ${1:name} start with ${2:1} increment by ${3:1} minvalue ${4:1};\nsnippet s*\n\tselect * from ${1:table}\n",t.scope="sql"})},function(e,t){ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),a=e("./text_highlight_rules").TextHighlightRules,i=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},i.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(i,a),i.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},i.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},i.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=i}),ace.define("ace/mode/sqlserver_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),a=e("./doc_comment_highlight_rules").DocCommentHighlightRules,i=e("./text_highlight_rules").TextHighlightRules,o=function(){var e="ALL|AND|ANY|BETWEEN|EXISTS|IN|LIKE|NOT|OR|SOME";e+="|NULL|IS|APPLY|INNER|OUTER|LEFT|RIGHT|JOIN|CROSS";var t="OPENDATASOURCE|OPENQUERY|OPENROWSET|OPENXML|AVG|CHECKSUM_AGG|COUNT|COUNT_BIG|GROUPING|GROUPING_ID|MAX|MIN|STDEV|STDEVP|SUM|VAR|VARP|DENSE_RANK|NTILE|RANK|ROW_NUMBER@@DATEFIRST|@@DBTS|@@LANGID|@@LANGUAGE|@@LOCK_TIMEOUT|@@MAX_CONNECTIONS|@@MAX_PRECISION|@@NESTLEVEL|@@OPTIONS|@@REMSERVER|@@SERVERNAME|@@SERVICENAME|@@SPID|@@TEXTSIZE|@@VERSION|CAST|CONVERT|PARSE|TRY_CAST|TRY_CONVERT|TRY_PARSE@@CURSOR_ROWS|@@FETCH_STATUS|CURSOR_STATUS|@@DATEFIRST|@@LANGUAGE|CURRENT_TIMESTAMP|DATEADD|DATEDIFF|DATEFROMPARTS|DATENAME|DATEPART|DATETIME2FROMPARTS|DATETIMEFROMPARTS|DATETIMEOFFSETFROMPARTS|DAY|EOMONTH|G
8ETDATE|GETUTCDATE|ISDATE|MONTH|SET DATEFIRST|SET DATEFORMAT|SET LANGUAGE|SMALLDATETIMEFROMPARTS|SP_HELPLANGUAGE|SWITCHOFFSET|SYSDATETIME|SYSDATETIMEOFFSET|SYSUTCDATETIME|TIMEFROMPARTS|TODATETIMEOFFSET|YEAR|CHOOSE|IIF|ABS|ACOS|ASIN|ATAN|ATN2|CEILING|COS|COT|DEGREES|EXP|FLOOR|LOG|LOG10|PI|POWER|RADIANS|RAND|ROUND|SIGN|SIN|SQRT|SQUARE|TAN|@@PROCID|APPLOCK_MODE|APPLOCK_TEST|APP_NAME|ASSEMBLYPROPERTY|COLUMNPROPERTY|COL_LENGTH|COL_NAME|DATABASEPROPERTYEX|DATABASE_PRINCIPAL_ID|DB_ID|DB_NAME|FILEGROUPPROPERTY|FILEGROUP_ID|FILEGROUP_NAME|FILEPROPERTY|FILE_ID|FILE_IDEX|FILE_NAME|FULLTEXTCATALOGPROPERTY|FULLTEXTSERVICEPROPERTY|INDEXKEY_PROPERTY|INDEXPROPERTY|INDEX_COL|OBJECTPROPERTY|OBJECTPROPERTYEX|OBJECT_DEFINITION|OBJECT_ID|OBJECT_NAME|OBJECT_SCHEMA_NAME|ORIGINAL_DB_NAME|PARSENAME|SCHEMA_ID|SCHEMA_NAME|SCOPE_IDENTITY|SERVERPROPERTY|STATS_DATE|TYPEPROPERTY|TYPE_ID|TYPE_NAME|CERTENCODED|CERTPRIVATEKEY|CURRENT_USER|DATABASE_PRINCIPAL_ID|HAS_PERMS_BY_NAME|IS_MEMBER|IS_ROLEMEMBER|IS_SRVROLEMEMBER|ORIGINAL_LOGIN|PERMISSIONS|PWDCOMPARE|PWDENCRYPT|SCHEMA_ID|SCHEMA_NAME|SESSION_USER|SUSER_ID|SUSER_NAME|SUSER_SID|SUSER_SNAME|SYS.FN_BUILTIN_PERMISSIONS|SYS.FN_GET_AUDIT_FILE|SYS.FN_MY_PERMISSIONS|SYSTEM_USER|USER_ID|USER_NAME|ASCII|CHAR|CHARINDEX|CONCAT|DIFFERENCE|FORMAT|LEN|LOWER|LTRIM|NCHAR|PATINDEX|QUOTENAME|REPLACE|REPLICATE|REVERSE|RTRIM|SOUNDEX|SPACE|STR|STUFF|SUBSTRING|UNICODE|UPPER|$PARTITION|@@ERROR|@@IDENTITY|@@PACK_RECEIVED|@@ROWCOUNT|@@TRANCOUNT|BINARY_CHECKSUM|CHECKSUM|CONNECTIONPROPERTY|CONTEXT_INFO|CURRENT_REQUEST_ID|ERROR_LINE|ERROR_MESSAGE|ERROR_NUMBER|ERROR_PROCEDURE|ERROR_SEVERITY|ERROR_STATE|FORMATMESSAGE|GETANSINULL|GET_FILESTREAM_TRANSACTION_CONTEXT|HOST_ID|HOST_NAME|ISNULL|ISNUMERIC|MIN_ACTIVE_ROWVERSION|NEWID|NEWSEQUENTIALID|ROWCOUNT_BIG|XACT_STATE|@@CONNECTIONS|@@CPU_BUSY|@@IDLE|@@IO_BUSY|@@PACKET_ERRORS|@@PACK_RECEIVED|@@PACK_SENT|@@TIMETICKS|@@TOTAL_ERRORS|@@TOTAL_READ|@@TOTAL_WRITE|FN_VIRTUALFILESTATS|PATINDEX|TEXTPTR|TEXTVALID|COALESCE|NULLIF",n="BIGINT|BINARY|BIT|CHAR|CURSOR|DATE|DATETIME|DATETIME2|DATETIMEOFFSET|DECIMAL|FLOAT|HIERARCHYID|IMAGE|INTEGER|INT|MONEY|NCHAR|NTEXT|NUMERIC|NVARCHAR|REAL|SMALLDATETIME|SMALLINT|SMALLMONEY|SQL_VARIANT|TABLE|TEXT|TIME|TIMESTAMP|TINYINT|UNIQUEIDENTIFIER|VARBINARY|VARCHAR|XML",r="sp_addextendedproc|sp_addextendedproperty|sp_addmessage|sp_addtype|sp_addumpdevice|sp_add_data_file_recover_suspect_db|sp_add_log_file_recover_suspect_db|sp_altermessage|sp_attach_db|sp_attach_single_file_db|sp_autostats|sp_bindefault|sp_bindrule|sp_bindsession|sp_certify_removable|sp_clean_db_file_free_space|sp_clean_db_free_space|sp_configure|sp_control_plan_guide|sp_createstats|sp_create_plan_guide|sp_create_plan_guide_from_handle|sp_create_removable|sp_cycle_errorlog|sp_datatype_info|sp_dbcmptlevel|sp_dbmmonitoraddmonitoring|sp_dbmmonitorchangealert|sp_dbmmonitorchangemonitoring|sp_dbmmonitordropalert|sp_dbmmonitordropmonitoring|sp_dbmmonitorhelpalert|sp_dbmmonitorhelpmonitoring|sp_dbmmonitorresults|sp_db_increased_partitions|sp_delete_backuphistory|sp_depends|sp_describe_first_result_set|sp_describe_undeclared_parameters|sp_detach_db|sp_dropdevice|sp_dropextendedproc|sp_dropextendedproperty|sp_dropmessage|sp_droptype|sp_execute|sp_executesql|sp_getapplock|sp_getbindtoken|sp_help|sp_helpconstraint|sp_helpdb|sp_helpdevice|sp_helpextendedproc|sp_helpfile|sp_helpfilegroup|sp_helpindex|sp_helplanguage|sp_helpserver|sp_helpsort|sp_helpstats|sp_helptext|sp_helptrigger|sp_indexoption|sp_invalidate_textptr|sp_lock|sp_monitor|sp_prepare|sp_prepexec|sp_prepexecrpc|sp_procoption|sp_recompile|sp_refreshview|sp_releaseapplock|sp_rename|sp_renamedb|sp_resetstatus|sp_sequence_get_range|sp_serveroption|sp_setnetname|sp_settriggerorder|sp_spaceused|sp_tableoption|sp_unbindefault|sp_unbindrule|sp_unprepare|sp_updateextendedproperty|sp_updatestats|sp_validname|sp_who|sys.sp_merge_xtp_checkpoint_files|sys.sp_xtp_bind_db_resource_pool|sys.sp_xtp_checkpoint_force_garbage_collection|sys.sp_xtp_control_proc_exec_stats|sys.sp_xtp_control_query_exec_stats|sys.sp_xtp_unbind_db_resource_pool",i="ABSOLUTE|ACTION|ADA|ADD|ADMIN|AFTER|AGGREGATE|ALIAS|ALL|ALLOCATE|ALTER|AND|ANY|ARE|ARRAY|AS|ASC|ASENSITIVE|ASSERTION|ASYMMETRIC|AT|ATOMIC|AUTHORIZATION|BACKUP|BEFORE|BEGIN|BETWEEN|BIT_LENGTH|BLOB|BOOLEAN|BOTH|BREADTH|BREAK|BROWSE|BULK|BY|CALL|CALLED|CARDINALITY|CASCADE|CASCADED|CASE|CATALOG|CHARACTER|CHARACTER_LENGTH|CHAR_LENGTH|CHECK|CHECKPOINT|CLASS|CLOB|CLOSE|CLUSTERED|COALESCE|COLLATE|COLLATION|COLLECT|COLUMN|COMM
8IT|COMPLETION|COMPUTE|CONDITION|CONNECT|CONNECTION|CONSTRAINT|CONSTRAINTS|CONSTRUCTOR|CONTAINS|CONTAINSTABLE|CONTINUE|CORR|CORRESPONDING|COVAR_POP|COVAR_SAMP|CREATE|CROSS|CUBE|CUME_DIST|CURRENT|CURRENT_CATALOG|CURRENT_DATE|CURRENT_DEFAULT_TRANSFORM_GROUP|CURRENT_PATH|CURRENT_ROLE|CURRENT_SCHEMA|CURRENT_TIME|CURRENT_TRANSFORM_GROUP_FOR_TYPE|CYCLE|DATA|DATABASE|DBCC|DEALLOCATE|DEC|DECLARE|DEFAULT|DEFERRABLE|DEFERRED|DELETE|DENY|DEPTH|DEREF|DESC|DESCRIBE|DESCRIPTOR|DESTROY|DESTRUCTOR|DETERMINISTIC|DIAGNOSTICS|DICTIONARY|DISCONNECT|DISK|DISTINCT|DISTRIBUTED|DOMAIN|DOUBLE|DROP|DUMP|DYNAMIC|EACH|ELEMENT|ELSE|END|END-EXEC|EQUALS|ERRLVL|ESCAPE|EVERY|EXCEPT|EXCEPTION|EXEC|EXECUTE|EXISTS|EXIT|EXTERNAL|EXTRACT|FETCH|FILE|FILLFACTOR|FILTER|FIRST|FOR|FOREIGN|FORTRAN|FOUND|FREE|FREETEXT|FREETEXTTABLE|FROM|FULL|FULLTEXTTABLE|FUNCTION|FUSION|GENERAL|GET|GLOBAL|GO|GOTO|GRANT|GROUP|HAVING|HOLD|HOLDLOCK|HOST|HOUR|IDENTITY|IDENTITYCOL|IDENTITY_INSERT|IF|IGNORE|IMMEDIATE|IN|INCLUDE|INDEX|INDICATOR|INITIALIZE|INITIALLY|INNER|INOUT|INPUT|INSENSITIVE|INSERT|INTEGER|INTERSECT|INTERSECTION|INTERVAL|INTO|IS|ISOLATION|ITERATE|JOIN|KEY|KILL|LANGUAGE|LARGE|LAST|LATERAL|LEADING|LESS|LEVEL|LIKE|LIKE_REGEX|LIMIT|LINENO|LN|LOAD|LOCAL|LOCALTIME|LOCALTIMESTAMP|LOCATOR|MAP|MATCH|MEMBER|MERGE|METHOD|MINUTE|MOD|MODIFIES|MODIFY|MODULE|MULTISET|NAMES|NATIONAL|NATURAL|NCLOB|NEW|NEXT|NO|NOCHECK|NONCLUSTERED|NONE|NORMALIZE|NOT|NULL|NULLIF|OBJECT|OCCURRENCES_REGEX|OCTET_LENGTH|OF|OFF|OFFSETS|OLD|ON|ONLY|OPEN|OPERATION|OPTION|OR|ORDER|ORDINALITY|OUT|OUTER|OUTPUT|OVER|OVERLAPS|OVERLAY|PAD|PARAMETER|PARAMETERS|PARTIAL|PARTITION|PASCAL|PATH|PERCENT|PERCENTILE_CONT|PERCENTILE_DISC|PERCENT_RANK|PIVOT|PLAN|POSITION|POSITION_REGEX|POSTFIX|PRECISION|PREFIX|PREORDER|PREPARE|PRESERVE|PRIMARY|PRINT|PRIOR|PRIVILEGES|PROC|PROCEDURE|PUBLIC|RAISERROR|RANGE|READ|READS|READTEXT|RECONFIGURE|RECURSIVE|REF|REFERENCES|REFERENCING|REGR_AVGX|REGR_AVGY|REGR_COUNT|REGR_INTERCEPT|REGR_R2|REGR_SLOPE|REGR_SXX|REGR_SXY|REGR_SYY|RELATIVE|RELEASE|REPLICATION|RESTORE|RESTRICT|RESULT|RETURN|RETURNS|REVERT|REVOKE|ROLE|ROLLBACK|ROLLUP|ROUTINE|ROW|ROWCOUNT|ROWGUIDCOL|ROWS|RULE|SAVE|SAVEPOINT|SCHEMA|SCOPE|SCROLL|SEARCH|SECOND|SECTION|SECURITYAUDIT|SELECT|SEMANTICKEYPHRASETABLE|SEMANTICSIMILARITYDETAILSTABLE|SEMANTICSIMILARITYTABLE|SENSITIVE|SEQUENCE|SESSION|SET|SETS|SETUSER|SHUTDOWN|SIMILAR|SIZE|SOME|SPECIFIC|SPECIFICTYPE|SQL|SQLCA|SQLCODE|SQLERROR|SQLEXCEPTION|SQLSTATE|SQLWARNING|START|STATE|STATEMENT|STATIC|STATISTICS|STDDEV_POP|STDDEV_SAMP|STRUCTURE|SUBMULTISET|SUBSTRING_REGEX|SYMMETRIC|SYSTEM|TABLESAMPLE|TEMPORARY|TERMINATE|TEXTSIZE|THAN|THEN|TIMEZONE_HOUR|TIMEZONE_MINUTE|TO|TOP|TRAILING|TRAN|TRANSACTION|TRANSLATE|TRANSLATE_REGEX|TRANSLATION|TREAT|TRIGGER|TRIM|TRUNCATE|TSEQUAL|UESCAPE|UNDER|UNION|UNIQUE|UNKNOWN|UNNEST|UNPIVOT|UPDATE|UPDATETEXT|USAGE|USE|USER|USING|VALUE|VALUES|VARIABLE|VARYING|VAR_POP|VAR_SAMP|VIEW|WAITFOR|WHEN|WHENEVER|WHERE|WHILE|WIDTH_BUCKET|WINDOW|WITH|WITHIN|WITHIN GROUP|WITHOUT|WORK|WRITE|WRITETEXT|XMLAGG|XMLATTRIBUTES|XMLBINARY|XMLCAST|XMLCOMMENT|XMLCONCAT|XMLDOCUMENT|XMLELEMENT|XMLEXISTS|XMLFOREST|XMLITERATE|XMLNAMESPACES|XMLPARSE|XMLPI|XMLQUERY|XMLSERIALIZE|XMLTABLE|XMLTEXT|XMLVALIDATE|ZONE";i+="|KEEPIDENTITY|KEEPDEFAULTS|IGNORE_CONSTRAINTS|IGNORE_TRIGGERS|XLOCK|FORCESCAN|FORCESEEK|HOLDLOCK|NOLOCK|NOWAIT|PAGLOCK|READCOMMITTED|READCOMMITTEDLOCK|READPAST|READUNCOMMITTED|REPEATABLEREAD|ROWLOCK|SERIALIZABLE|SNAPSHOT|SPATIAL_WINDOW_MAX_CELLS|TABLOCK|TABLOCKX|UPDLOCK|XLOCK|IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX|EXPAND|VIEWS|FAST|FORCE|KEEP|KEEPFIXED|MAXDOP|MAXRECURSION|OPTIMIZE|PARAMETERIZATION|SIMPLE|FORCED|RECOMPILE|ROBUST|PLAN|SPATIAL_WINDOW_MAX_CELLS|NOEXPAND|HINT",i+="|LOOP|HASH|MERGE|REMOTE",i+="|TRY|CATCH|THROW",i+="|TYPE",i=i.split("|"),i=i.filter(function(r,a,i){return-1===e.split("|").indexOf(r)&&-1===t.split("|").indexOf(r)&&-1===n.split("|").indexOf(r)}),i=i.sort().join("|");for(var o=this.createKeywordMapper({"constant.language":e,"storage.type":n,"support.function":t,"support.storedprocedure":r,keyword:i},"identifier",!0),s="SET ANSI_DEFAULTS|SET ANSI_NULLS|SET ANSI_NULL_DFLT_OFF|SET ANSI_NULL_DFLT_ON|SET ANSI_PADDING|SET ANSI_WARNINGS|SET ARITHABORT|SET ARITHIGNORE|SET CONCAT_NULL_YIELDS_NULL|SET CURSOR_CLOSE_ON_COMMIT|SET DATEFIRST|SET DATEFORMAT|SET DEADLOCK_PRIORITY|SET FIPS_FLAGGER|SET FMTONLY|SET FORCEPLAN|SET IDENTITY_INSERT|SET IMPLICIT_TRANSACTIONS|SET LANGUAGE|SET LOCK_TIMEOUT|SET NOCOUNT|SET NOEXEC|SET NUMERIC_ROUNDABORT|SET OFFSETS|SET PARSEONLY|SET QUERY_GOVERNOR_COST_LIMIT|SET QUOTED_IDENTIFIER|SET REMOTE_PROC_TRANSACTIONS|SET ROWCOUNT|SET SHOWPLAN_ALL|SET SHOWPLAN_TEXT|SET SHOWPLAN_XML|SET STATISTICS IO|SET STATISTICS PROFILE|SET STATISTICS TIME|SET STATISTICS XML|SET TEXTSIZE|SET XACT_ABORT".split("|"),l="READ UNCOMMITTED|READ COMM
8ITTED|REPEATABLE READ|SNAPSHOP|SERIALIZABLE".split("|"),c=0;c<l.length;c++)s.push("SET TRANSACTION ISOLATION LEVEL "+l[c]);this.$rules={start:[{token:"string.start",regex:"'",next:[{token:"constant.language.escape",regex:/''/},{token:"string.end",next:"start",regex:"'"},{defaultToken:"string"}]},a.getStartRule("doc-start"),{token:"comment",regex:"--.*$"},{token:"comment",start:"/\\*",end:"\\*/"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:o,regex:"@{0,2}[a-zA-Z_$][a-zA-Z0-9_$]*\\b(?!])"},{token:"constant.class",regex:"@@?[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\/|\\/\\/|%|<@>|@>|<@|&|\\^|~|<|>|<=|=>|==|!=|<>|=|\\*"},{token:"paren.lparen",regex:"[\\(]"},{token:"paren.rparen",regex:"[\\)]"},{token:"punctuation",regex:",|;"},{token:"text",regex:"\\s+"}],comment:[a.getTagRule(),{token:"comment",regex:"\\*\\/",next:"no_regex"},{defaultToken:"comment",caseInsensitive:!0}]};for(var c=0;c<s.length;c++)this.$rules.start.unshift({token:"set.statement",regex:s[c]});this.embedRules(a,"doc-",[a.getEndRule("start")]),this.normalizeRules();var d=[],u=function(e,t){e.forEach(function(e){d.push({name:e,value:e,score:0,meta:t})})};u(r.split("|"),"procedure"),u(e.split("|"),"operator"),u(t.split("|"),"function"),u(n.split("|"),"type"),u(s,"statement"),u(i.split("|"),"keyword"),this.completions=d};r.inherits(o,i),t.SqlHighlightRules=o}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),a=e("../../range").Range,i=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,i),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var a=this._getFoldWidgetBase(e,t,n);return!a&&this.startRegionRe.test(r)?"start":a},this.getFoldWidgetRange=function(e,t,n,r){var a=e.getLine(n);if(this.startRegionRe.test(a))return this.getCommentRegionBlock(e,a,n);var i=a.match(this.foldingStartMarker);if(i){var o=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,o);var s=e.getCommentFoldRange(n,o+i[0].length,1);return s&&!s.isMultiLine()&&(r?s=this.getSectionRange(e,n):"all"!=t&&(s=null)),s}if("markbegin"!==t){var i=a.match(this.foldingStopMarker);if(i){var o=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,o):e.getCommentFoldRange(n,o,-1)}}}
8,this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),i=t,o=n.length;t+=1;for(var s=t,l=e.getLength();++t<l;){n=e.getLine(t);var c=n.search(/\S/);if(-1!==c){if(r>c)break;var d=this.getFoldWidgetRange(e,"all",t);if(d){if(d.start.row<=i)break;if(d.isMultiLine())t=d.end.row;else if(r==c)break}s=t}}return new a(i,o,s,e.getLine(s).length)},this.getCommentRegionBlock=function(e,t,n){for(var r=t.search(/\s*$/),i=e.getLength(),o=n,s=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++n<i;){t=e.getLine(n);var c=s.exec(t);if(c&&(c[1]?l--:l++,!l))break}var d=n;if(d>o)return new a(o,r,d,t.length)}}.call(o.prototype)}),ace.define("ace/mode/folding/sqlserver",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../../lib/oop"),a=e("../../range").Range,i=e("./cstyle").FoldMode,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.foldingStartMarker=/(\bCASE\b|\bBEGIN\b)|^\s*(\/\*)/i,this.startRegionRe=/^\s*(\/\*|--)#?region\b/,this.getFoldWidgetRange=function(e,t,n,r){var a=e.getLine(n);if(this.startRegionRe.test(a))return this.getCommentRegionBlock(e,a,n);var i=a.match(this.foldingStartMarker);if(i){var o=i.index;if(i[1])return this.getBeginEndBlock(e,n,o,i[1]);var s=e.getCommentFoldRange(n,o+i[0].length,1);return s&&!s.isMultiLine()&&(r?s=this.getSectionRange(e,n):"all"!=t&&(s=null)),s}},this.getBeginEndBlock=function(e,t,n,r){for(var i,o={row:t,column:n+r.length},s=e.getLength(),l=1,c=/(\bCASE\b|\bBEGIN\b)|(\bEND\b)/i;++t<s;){i=e.getLine(t);var d=c.exec(i);if(d&&(d[1]?l++:l--,!l))break}var u=t;if(u>o.row)return new a(o.row,o.column,u,i.length)}}.call(o.prototype)}),ace.define("ace/mode/sqlserver",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/sqlserver_highlight_rules","ace/mode/folding/sqlserver"],function(e,t,n){"use strict";var r=e("../lib/oop"),a=e("./text").Mode,i=e("./sqlserver_highlight_rules").SqlHighlightRules,o=e("./folding/sqlserver").FoldMode,s=function(){this.HighlightRules=i,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(s,a),function(){this.lineCommentStart="--",this.blockComment={start:"/*",end:"*/"},this.getCompletions=function(e,t,n,r){return t.$mode.$highlightRules.completions},this.$id="ace/mode/sql"}.call(s.prototype),t.Mode=s})},function(e,t){ace.define("ace/snippets/sqlserver",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="# ISNULL\nsnippet isnull\n\tISNULL(${1:check_expression}, ${2:replacement_value})\n# FORMAT\nsnippet format\n\tFORMAT(${1:value}, ${2:format})\n# CAST\nsnippet cast\n\tCAST(${1:expression} AS ${2:data_type})\n# CONVERT\nsnippet convert\n\tCONVERT(${1:data_type}, ${2:expression})\n# DATEPART\nsnippet datepart\n\tDATEPART(${1:datepart}, ${2:date})\n# DATEDIFF\nsnippet datediff\n\tDATEDIFF(${1:datepart}, ${2:startdate}, ${3:enddate})\n# DATEADD\nsnippet dateadd\n\tDATEADD(${1:datepart}, ${2:number}, ${3:date})\n# DATEFROMPARTS \nsnippet datefromparts\n\tDATEFROMPARTS(${1:year}, ${2:month}, ${3:day})\n# OBJECT_DEFINITION\nsnippet objectdef\n\tSELECT OBJECT_DEFINITION(OBJECT_ID('${1:sys.server_permissions /*object name*/}'))\n# STUFF XML\nsnippet stuffxml\n\tSTUFF((SELECT ', ' + ${1:ColumnName}\n\t\tFROM ${2:TableName}\n\t\tWHERE ${3:WhereClause}\n\t\tFOR XML PATH('')), 1, 1, '') AS ${4:Alias}\n\t${5:/*https://msdn.microsoft.com/en-us/library/ms188043.aspx*/}\n# Create Procedure\nsnippet createproc\n\t-- =============================================\n\t-- Author:\t\t${1:Author}\n\t-- Create date: ${2:Date}\n\t-- Description:\t${3:Description}\n\t-- =============================================\n\tCREATE PROCEDURE ${4:Procedure_Name}\n\t\t${5:/*Add the parameters for the stored procedure here*/}\n\tAS\n\tBEGIN\n\t\t-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.\n\t\tSET NOCOUNT ON;\n\t\t\n\t\t${6:/*Add the T-SQL statements to compute the return value here*/}\n\t\t\n\tEND\n\tGO\n# Create Scalar Function\nsnippet createfn\n\t-- =============================================\n\t-- Author:\t\t${1:Author}\n\t-- Create date: ${2:Date}\n\t-- Description:\t${3:Description}\n\t-- =============================================\n\tCREATE FUNCTION ${4:Scalar_Function_Name}\n\t\t-- Add the parameters for the function here\n\tRETURNS ${5:Function_Data_Type}\n\tAS\n\tBEGIN\n\t\tDECLARE @Result ${5:Function_Data_Type}\n\t\t\n\t\t${6:/*Add the T-SQL statements to compute the return value here*/}\n\t\t\n\tEND\n\tGO",t.scope="sqlserver"})},function(e,t,n){ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),a=e("./text_highlight_rules").TextHighlightRules,i=function(){this.$rules={start:[{token:"c
8omment.doc.tag",regex:"@[\\w\\d_]+"},i.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(i,a),i.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},i.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},i.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=i}),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";function r(){var e=l.replace("\\d","\\d\\-"),t={onMatch:function(e,t,n){var r="/"==e.charAt(1)?2:1;return 1==r?(t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++):2==r&&t==this.nextState&&(!--n[1]||n[1]<0)&&(n.shift(),n.shift()),[{type:"meta.tag.punctuation."+(1==r?"":"end-")+"tag-open.xml",value:e.slice(0,r)},{type:"meta.tag.tag-name.xml",value:e.substr(r)}]},regex:"</?"+e,next:"jsxAttributes",nextState:"jsx"};this.$rules.start.unshift(t);var n={regex:"{",token:"paren.quasi.start",push:"start"};this.$rules.jsx=[n,t,{include:"reference"},{defaultToken:"string"}],this.$rules.jsxAttributes=[{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",onMatch:function(e,t,n){return t==n[0]&&n.shift(),2==e.length&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||"start",[{type:this.token,value:e}]},nextState:"jsx"},n,a("jsxAttributes"),{token:"entity.other.attribute-name.xml",regex:e},{token:"keyword.operator.attribute-equals.xml",regex:"="},{token:"text.tag-whitespace.xml",regex:"\\s+"},{token:"string.attribute-value.xml",regex:"'",stateName:"jsx_attr_q",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',stateName:"jsx_attr_qq",push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},t],this.$rules.reference=[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}]}function a(e){return[{token:"comment",regex:/\/\*/,next:[o.getTagRule(),{token:"comment",regex:"\\*\\/",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]},{token:"comment",regex:"\\/\\/",next:[o.getTagRule(),{token:"comment",regex:"$|^",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]}]}var i=e("../lib/oop"),o=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,l="[a-zA-Z\\$_¡-￿][a-zA-Z\\d\\$_¡-￿]*",c=function(e){var t=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},"identifier"),n="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)";this.$rules={no_regex:[o.getStartRule("doc-start"),a("no_regex"),{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/}
8,{token:"constant.numeric",regex:/[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+l+")(\\.)(prototype)(\\.)("+l+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+l+")(\\.)("+l+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+l+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+l+")(\\.)("+l+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+l+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+l+")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:"keyword",regex:"(?:case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void)\\b",next:"start"},{token:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:l},{token:"punctuation.operator",regex:/[.](?![.])/,next:"property"},{token:"keyword.operator",regex:/--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],property:[{token:"text",regex:"\\s+"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+l+")(\\.)("+l+")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()",next:"function_arguments"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"support.function",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:"support.function.dom",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|
8Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:"support.constant",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:"identifier",regex:l},{regex:"",token:"empty",next:"no_regex"}],start:[o.getStartRule("doc-start"),a("start"),{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+|^$",next:"start"},{token:"empty",regex:"",next:"no_regex"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/[sxngimy]*",next:"no_regex"},{token:"invalid",regex:/\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/},{token:"constant.language.delimiter",regex:/\|/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.charclass.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp.charachterclass"}],function_arguments:[{token:"variable.parameter",regex:l},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],qqstring:[{token:"constant.language.escape",regex:n},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:n},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},e&&e.noES6||(this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){if(this.next="{"==e?this.nextState:"","{"==e&&n.length)n.unshift("start",t);else if("}"==e&&n.length&&(n.shift(),this.next=n.shift(),-1!=this.next.indexOf("string")||-1!=this.next.indexOf("jsx")))return"paren.quasi.end";return"{"==e?"paren.lparen":"paren.rparen"},nextState:"start"}
8,{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:n},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),e&&0==e.jsx||r.call(this)),this.embedRules(o,"doc-",[o.getEndRule("no_regex")]),this.normalizeRules()};i.inherits(c,s),t.JavaScriptHighlightRules=c}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,a=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t),a=n.match(/^(\s*\})/);if(!a)return 0;var i=a[1].length,o=e.findMatchingBracket({row:t,column:i});if(!o||o.row==t)return 0;var s=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(a.prototype),t.MatchingBraceOutdent=a}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),a=e("../../range").Range,i=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,i),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var a=this._getFoldWidgetBase(e,t,n);return!a&&this.startRegionRe.test(r)?"start":a},this.getFoldWidgetRange=function(e,t,n,r){var a=e.getLine(n);if(this.startRegionRe.test(a))return this.getCommentRegionBlock(e,a,n);var i=a.match(this.foldingStartMarker);if(i){var o=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,o);var s=e.getCommentFoldRange(n,o+i[0].length,1);return s&&!s.isMultiLine()&&(r?s=this.getSectionRange(e,n):"all"!=t&&(s=null)),s}if("markbegin"!==t){var i=a.match(this.foldingStopMarker);if(i){var o=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,o):e.getCommentFoldRange(n,o,-1)}}}
8,this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),i=t,o=n.length;t+=1;for(var s=t,l=e.getLength();++t<l;){n=e.getLine(t);var c=n.search(/\S/);if(-1!==c){if(r>c)break;var d=this.getFoldWidgetRange(e,"all",t);if(d){if(d.start.row<=i)break;if(d.isMultiLine())t=d.end.row;else if(r==c)break}s=t}}return new a(i,o,s,e.getLine(s).length)},this.getCommentRegionBlock=function(e,t,n){for(var r=t.search(/\s*$/),i=e.getLength(),o=n,s=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++n<i;){t=e.getLine(n);var c=s.exec(t);if(c&&(c[1]?l--:l++,!l))break}var d=n;if(d>o)return new a(o,r,d,t.length)}}.call(o.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,r){"use strict";var a=e("../lib/oop"),i=e("./text").Mode,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,l=e("../worker/worker_client").WorkerClient,c=e("./behaviour/cstyle").CstyleBehaviour,d=e("./folding/cstyle").FoldMode,u=function(){this.HighlightRules=o,this.$outdent=new s,this.$behaviour=new c,this.foldingRules=new d};a.inherits(u,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),a=this.getTokenizer().getLineTokens(t,e),i=a.tokens,o=a.state;if(i.length&&"comment"==i[i.length-1].type)return r;if("start"==e||"no_regex"==e){var s=t.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/);s&&(r+=n)}else if("doc-start"==e){if("start"==o||"no_regex"==o)return"";var s=t.match(/^\s*(\/?)\*/);s&&(s[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new l(["ace"],n(1187),"JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript"}.call(u.prototype),t.Mode=u}),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),a=e("./text_highlight_rules").TextHighlightRules,i=function(e){var t="[_:a-zA-ZÃ-ï¿¿][-_:.a-zA-Z0-9Ã-ï¿¿]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.xml-decl.xml","keyword.xml-decl.xml"],regex:"(<\\?)(xml)(?=[\\s])",next:"xml_decl",caseInsensitive:!0},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"</"},{token:"text.tag-open.xml",regex:"<"},{include:"reference"},{defaultToken:"text.xml"}],xml_decl:[{token:"entity.other.attribute-name.decl-attribute-name.xml",regex:"(?:"+t+":)?"+t},{token:"keyword.operator.decl-attribute-equals.xml",regex:"="},{include:"whitespace"},{include:"string"},{token:"punctuation.xml-decl.xml",regex:"\\?>",next:"start"}],processing_instruction:[{token:"punctuation.instruction.xml",regex:"\\?>",next:"start"},{defaultToken:"instruction.xml"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}
8],comment:[{token:"comment.xml",regex:"--\x3e",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(</))((?:"+t+":)?"+t+")",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:"(?:"+t+":)?"+t},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===i&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(</)("+n+"(?=\\s|>|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(a.prototype),r.inherits(i,a),t.XmlHighlightRules=i}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";function r(e,t){return e.type.lastIndexOf(t+".xml")>-1}var a=e("../../lib/oop"),i=e("../behaviour").Behaviour,o=e("../../token_iterator").TokenIterator,s=(e("../../lib/lang"),function(){this.add("string_dquotes","insertion",function(e,t,n,a,i){if('"'==i||"'"==i){var s=i,l=a.doc.getTextRange(n.getSelectionRange());if(""!==l&&"'"!==l&&'"'!=l&&n.getWrapBehavioursEnabled())return{text:s+l+s,selection:!1};var c=n.getCursorPosition(),d=a.doc.getLine(c.row),u=d.substring(c.column,c.column+1),p=new o(a,c.row,c.column),f=p.getCurrentToken();if(u==s&&(r(f,"attribute-value")||r(f,"string")))return{text:"",selection:[1,1]};if(f||(f=p.stepBackward()),!f)return;for(;r(f,"tag-whitespace")||r(f,"whitespace");)f=p.stepBackward();var m=!u||u.match(/\s/);if(r(f,"attribute-equals")&&(m||">"==u)||r(f,"decl-attribute-equals")&&(m||"?"==u))return{text:s+s,selection:[1,1]}}}),this.add("string_dquotes","deletion",function(e,t,n,r,a){var i=r.doc.getTextRange(a);if(!a.isMultiLine()&&('"'==i||"'"==i)){if(r.doc.getLine(a.start.row).substring(a.start.column+1,a.start.column+2)==i)return a.end.column++,a}}),this.add("autoclosing","insertion",function(e,t,n,a,i){if(">"==i){var s=n.getSelectionRange().start,l=new o(a,s.row,s.column),c=l.getCurrentToken()||l.stepBackward();if(!c||!(r(c,"tag-name")||r(c,"tag-whitespace")||r(c,"attribute-name")||r(c,"attribute-equals")||r(c,"attribute-value")))return;if(r(c,"reference.attribute-value"))return;if(r(c,"attribute-value")){var d=c.value.charAt(0);if('"'==d||"'"==d){var u=c.value.charAt(c.value.length-1),p=l.getCurrentTokenColumn()+c.value.length;if(p>s.column||p==s.column&&d!=u)return}}for(;!r(c,"tag-name");)if(c=l.stepBackward(),"<"==c.value){c=l.stepForward();break}var f=l.getCurrentTokenRow(),m=l.getCurrentTokenColumn();if(r(l.stepBackward(),"end-tag-open"))return;var h=c.value;if(f==s.row&&(h=h.substring(0,s.column-m)),this.voidElements.hasOwnProperty(h.toLowerCase()))return;return{text:"></"+h+">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,a){if("\n"==a){var i=n.getCursorPosition(),s=r.getLine(i.row),l=new o(r,i.row,i.column),c=l.getCurrentToken();if(c&&-1!==c.type.indexOf("tag-close")){if("/>"==c.value)return;for(;c&&-1===c.type.indexOf("tag-name");)c=l.stepBackward();if(!c)return;var d=c.value,u=l.getCurrentTokenRow();if(!(c=l.stepBackward())||-1!==c.type.indexOf("end-tag"))return;if(this.voidElements&&!this.voidElements[d]){var p=r.getTokenAt(i.row,i.column+1),s=r.getLine(u),f=this.$getIndent(s),m=f+r.getTabString();return p&&"</"===p.value?{text:"\n"+m+"\n"+f,selection:[1,m.length,1,m.length]}:{text:"\n"+m}}}}})});a.inherits(s,i),t.XmlBehaviour=s}),ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"],function(e,t,n){"use strict";function r(e,t){return e.type.lastIndexOf(t+".xml")>-1}var a=e("../../lib/oop"),i=(e("../../lib/lang"),e("../../range").Range),o=e("./fold_mode").FoldMode,s=e("../../token_iterator").TokenIterator,l=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=a.mixin({},this.voidElements),t&&a.mixin(this.optionalEndTags,t)};a.inherits(l,o);var c=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?"markbeginend"==t?"end":"":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?"":this._findEndTagInLine(e,n,r.tagName,r.end.column)?"":"start":""},this._getFirstTagInLine=function(e,t){for(var n=e.getTokens(t),a=new c,i=0;i<n.length;i++){var o=n[i];if(r(o,"tag-open")){if(a.end.column=a.start.column+o.value.length,a.closing=r(o,"end-tag-open"),!(o=n[++i]))return null;for(a.tagName=o.value,a.end.column+=o.value.length,i++;i<n.length;i++)if(o=n[i],a.end.column+=o.value.length,r(o,"tag-close")){a.selfClosing="/>"==o.value;break}return a}if(r(o,"tag-close"))return a.selfClosing="/>"==o.value,a;a.start.column+=o.value.length}return null},this._findEndTagInLine=function(e,t,n,a){for(var i=e.getTokens(t),o=0,s=0;s<i.length;s++){var l=i[s];if(!((o+=l.value.length)<a)&&r(l,"end-tag-open")&&(l=i[s+1])&&l.value==n)return!0}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new c;do{if(r(t,"tag-open"))n.closing=r(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(r(t,"tag-name"))n.tagName=t.value;else if(r(t,"tag-close"))return n.selfClosing="/>"==t.value,n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n}while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new c;do{if(r(t,"tag-open"))return n.closing=r(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;r(t,"tag-name")?n.tagName=t.value:r(t,"tag-close")&&(n.selfClosing="/>"==t.value,n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){for(;e.length;){var n=e[e.length-1];if(t&&n.tagName!=t.tagName){if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}return e.pop()}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var a,o=r.closing||r.selfClosing,l=[];if(o)for(var c=new s(e,n,r.end.column),d={row:n,column:r.start.column};a=this._readTagBackward(c);){if(a.selfClosing){if(l.length)continue;return a.start.column+=a.tagName.length+2,a.end.column-=2,i.fromPoints(a.start,a.end)}if(a.closing)l.push(a);else if(this._pop(l,a),0==l.length)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),i.fromPoints(a.start,d)}else{var c=new s(e,n,r.start.column),u={row:n,column:r.start.column+r.tagName.length+2};for(r.start.row==r.end.row&&(u.column=r.end.column);a=this._readTagForward(c);){if(a.selfClosing){if(l.length)continue;return a.start.column+=a.tagName.length+2,a.end.column-=2,i.fromPoints(a.start,a.end)}if(a.closing){if(this._pop(l,a),0==l.length)return i.fromPoints(u,a.start)}else l.push(a)}}}}).call(l.prototype)}),ace.define("ace/mode/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/xml_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/xml","ace/worker/wor
8ker_client"],function(e,t,r){"use strict";var a=e("../lib/oop"),i=e("../lib/lang"),o=e("./text").Mode,s=e("./xml_highlight_rules").XmlHighlightRules,l=e("./behaviour/xml").XmlBehaviour,c=e("./folding/xml").FoldMode,d=e("../worker/worker_client").WorkerClient,u=function(){this.HighlightRules=s,this.$behaviour=new l,this.foldingRules=new c};a.inherits(u,o),function(){this.voidElements=i.arrayToMap([]),this.blockComment={start:"\x3c!--",end:"--\x3e"},this.createWorker=function(e){var t=new d(["ace"],n(1188),"Worker");return t.attachToDocument(e.getDocument()),t.on("error",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/xml"}.call(u.prototype),t.Mode=u}),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),a=(e("../lib/lang"),e("./text_highlight_rules").TextHighlightRules),i=t.supportType="align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index",o=t.supportFunction="rgb|rgba|url|attr|counter|counters",s=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower
8-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",l=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",c=t.supportConstantFonts="arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",d=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",u=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|acequired|root|target|valid|visited)\\b",f=function(){var e=this.createKeywordMapper({"support.function":o,"support.constant":s,"support.type":i,"support.constant.color":l,"support.constant.fonts":c},"text",!0);this.$rules={start:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"@.*?{",push:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"\\}",next:"pop"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],comment:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}],ruleset:[{token:"paren.rparen",regex:"\\}",next:"pop"},{token:"comment",regex:"\\/\\*",push:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+d+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:d},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:u},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:["support.function","string","support.function"],regex:"(url\\()(.*)(\\))"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(f,a),t.CssHighlightRules=f}),ace.define("ace/mode/css_completions",["require","exports","module"],function(e,t,n){"use strict";var r={background:{"#$0":1},"background-color":{"#$0":1,transparent:1,fixed:1},"background-image":{"url('/$0')":1},"background-repeat":{repeat:1,"repeat-x":1,"repeat-y":1,"no-repeat":1,inherit:1},"background-position":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},"background-attachment":{scroll:1,fixed:1},"background-size":{cover:1,contain:1},"background-clip":{"border-box":1,"padding-box":1,"content-box":1},"background-origin":{"border-box":1,"padding-box":1,"content-box":1},border:{"solid $0":1,"dashed $0":1,"dotted $0":1,"#$0":1},"border-color":{"#$0":1},"border-style":{solid:2,dashed:2,dotted:2,double:2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},"border-collapse":{collapse:1,separate:1},bottom:{px:1,em:1,"%":1},clear:{left:1,right:1,both:1,none:1},color:{"#$0":1,"rgb(#$00,0,0)":1},cursor:{default:1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,"n-resize":1,"ne
8-resize":1,"e-resize":1,"se-resize":1,"s-resize":1,"sw-resize":1,"w-resize":1,"nw-resize":1},display:{none:1,block:1,inline:1,"inline-block":1,"table-cell":1},"empty-cells":{show:1,hide:1},float:{left:1,right:1,none:1},"font-family":{Arial:2,"Comic Sans MS":2,Consolas:2,"Courier New":2,Courier:2,Georgia:2,Monospace:2,"Sans-Serif":2,"Segoe UI":2,Tahoma:2,"Times New Roman":2,"Trebuchet MS":2,Verdana:1},"font-size":{px:1,em:1,"%":1},"font-weight":{bold:1,normal:1},"font-style":{italic:1,normal:1},"font-variant":{normal:1,"small-caps":1},height:{px:1,em:1,"%":1},left:{px:1,em:1,"%":1},"letter-spacing":{normal:1},"line-height":{normal:1},"list-style-type":{none:1,disc:1,circle:1,square:1,decimal:1,"decimal-leading-zero":1,"lower-roman":1,"upper-roman":1,"lower-greek":1,"lower-latin":1,"upper-latin":1,georgian:1,"lower-alpha":1,"upper-alpha":1},margin:{px:1,em:1,"%":1},"margin-right":{px:1,em:1,"%":1},"margin-left":{px:1,em:1,"%":1},"margin-top":{px:1,em:1,"%":1},"margin-bottom":{px:1,em:1,"%":1},"max-height":{px:1,em:1,"%":1},"max-width":{px:1,em:1,"%":1},"min-height":{px:1,em:1,"%":1},"min-width":{px:1,em:1,"%":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},"overflow-x":{hidden:1,visible:1,auto:1,scroll:1},"overflow-y":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,"%":1},"padding-top":{px:1,em:1,"%":1},"padding-right":{px:1,em:1,"%":1},"padding-bottom":{px:1,em:1,"%":1},"padding-left":{px:1,em:1,"%":1},"page-break-after":{auto:1,always:1,avoid:1,left:1,right:1},"page-break-before":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,static:1},right:{px:1,em:1,"%":1},"table-layout":{fixed:1,auto:1},"text-decoration":{none:1,underline:1,"line-through":1,blink:1},"text-align":{left:1,right:1,center:1,justify:1},"text-transform":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,"%":1},"vertical-align":{top:1,bottom:1},visibility:{hidden:1,visible:1},"white-space":{nowrap:1,normal:1,pre:1,"pre-line":1,"pre-wrap":1},width:{px:1,em:1,"%":1},"word-spacing":{normal:1},filter:{"alpha(opacity=$0100)":1},"text-shadow":{"$02px 2px 2px #777":1},"text-overflow":{"ellipsis-word":1,clip:1,ellipsis:1},"-moz-border-radius":1,"-moz-border-radius-topright":1,"-moz-border-radius-bottomright":1,"-moz-border-radius-topleft":1,"-moz-border-radius-bottomleft":1,"-webkit-border-radius":1,"-webkit-border-top-right-radius":1,"-webkit-border-top-left-radius":1,"-webkit-border-bottom-right-radius":1,"-webkit-border-bottom-left-radius":1,"-moz-box-shadow":1,"-webkit-box-shadow":1,transform:{"rotate($00deg)":1,"skew($00deg)":1},"-moz-transform":{"rotate($00deg)":1,"skew($00deg)":1},"-webkit-transform":{"rotate($00deg)":1,"skew($00deg)":1}},a=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement("c").style;for(var t in e)if("string"==typeof e[t]){var n=t.replace(/[A-Z]/g,function(e){return"-"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){if(this.completionsDefined||this.defineCompletions(),!t.getTokenAt(n.row,n.column))return[];if("ruleset"===e){var a=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(a)?(/([\w\-]+):[^:]*$/.test(a),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,a){return Object.keys(r).map(function(e){return{caption:e,snippet:e+": $0",meta:"property",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,a){var i=t.getLine(n.row).substr(0,n.column),o=(/([\w\-]+):[^:]*$/.exec(i)||{})[1];if(!o)return[];var s=[];return o in r&&"object"==typeof r[o]&&(s=Object.keys(r[o])),s.map(function(e){return{caption:e,snippet:e,meta:"property value",score:Number.MAX_VALUE}})}}).call(a.prototype),t.CssCompletions=a}),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),a=(e("../behaviour").Behaviour,e("./cstyle").CstyleBehaviour),i=e("../../token_iterator").TokenIterator,o=function(){this.inherit(a),this.add("colon","insertion",function(e,t,n,r,a){if(":"===a){var o=n.getCursorPosition(),s=new i(r,o.row,o.column),l=s.getCurrentToken();if(l&&l.value.match(/\s+/)&&(l=s.stepBackward()),l&&"support.type"===l.type){var c=r.doc.getLine(o.row);if(":"===c.substring(o.column,o.column+1))return{text:"",selection:[1,1]};if(!c.substring(o.column).match(/^\s*;/))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(e,t,n,r,a){var o=r.doc.getTextRange(a);if(!a.isMultiLine()&&":"===o){var s=n.getCursorPosition(),l=new i(r,s.row,s.column),c=l.getCurrentToken();if(c&&c.value.match(/\s+/)&&(c=l.stepBackward()),c&&"support.type"===c.type){if(";"===r.doc.getLine(a.start.row).substring(a.end.column,a.end.column+1))return a.end.column++,a}}}),this.add("semicolon","insertion",function(e,t,n,r,a){if(";"===a){var i=n.getCursorPosition();if(";"===r.doc.getLine(i.row).substring(i.column,i.column+1))return{text:"",selection:[1,1]}}})};r.inherits(o,a),t.CssBehaviour=o}),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/wor
8ker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(e,t,r){"use strict";var a=e("../lib/oop"),i=e("./text").Mode,o=e("./css_highlight_rules").CssHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,l=e("../worker/worker_client").WorkerClient,c=e("./css_completions").CssCompletions,d=e("./behaviour/css").CssBehaviour,u=e("./folding/cstyle").FoldMode,p=function(){this.HighlightRules=o,this.$outdent=new s,this.$behaviour=new d,this.$completer=new c,this.foldingRules=new u};a.inherits(p,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),a=this.getTokenizer().getLineTokens(t,e).tokens;return a.length&&"comment"==a[a.length-1].type?r:(t.match(/^.*\{\s*$/)&&(r+=n),r)},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new l(["ace"],n(1189),"Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/css"}.call(p.prototype),t.Mode=p}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),a=e("../lib/lang"),i=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,s=e("./xml_highlight_rules").XmlHighlightRules,l=a.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",option:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),c=function(){s.call(this),this.addRules({attributes:[{include:"tag_whitespace"},{token:"entity.other.attribute-name.xml",regex:"[-_a-zA-Z0-9:.]+"},{token:"keyword.operator.attribute-equals.xml",regex:"=",push:[{include:"tag_whitespace"},{token:"string.unquoted.attribute-value.html",regex:"[^<>='\"`\\s]+",next:"pop"},{token:"empty",regex:"",next:"pop"}]},{include:"attribute_value"}],tag:[{token:function(e,t){var n=l[t];return["meta.tag.punctuation."+("<"==e?"":"end-")+"tag-open.xml","meta.tag"+(n?"."+n:"")+".tag-name.xml"]},regex:"(</?)([-_a-zA-Z0-9:.]+)",next:"tag_stuff"}],tag_stuff:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}),this.embedTagRules(i,"css-","style"),this.embedTagRules(new o({jsx:!1}).getRules(),"js-","script"),this.constructor===c&&this.normalizeRules()};r.inherits(c,s),t.HtmlHighlightRules=c}),ace.define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),a=e("./fold_mode").FoldMode,i=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(i,a),function(){this.$getMode=function(e){"string"!=typeof e&&(e=e[0]);for(var t in this.subModes)if(0===e.indexOf(t))return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var a=this.$getMode(e);return a?a.getFoldWidget(t,n,r):""},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));return r&&r.getFoldWidget(e,t,n)||(r=this.$getMode(e.getState(n))),r&&r.getFoldWidget(e,t,n)||(r=this.defaultMode),r.getFoldWidgetRange(e,t,n)}}.call(i.prototype)}),ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../../lib/oop"),a=e("./mixed").FoldMode,i=e("./xml").FoldMode,o=e("./cstyle").FoldMode,s=t.FoldMode=function(e,t){a.call(this,new i(e,t),{"js-":new o,"css-":new o})};r.inherits(s,a)}),ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"],function(e,t,n){"use strict";function r(e,t){return e.type.lastIndexOf(t+".xml")>-1}function a(e,t){for(var n=new o(e,t.row,t.column),a=n.getCurrentToken();a&&!r(a,"tag-name");)a=n.stepBackward();if(a)return a.value}function i(e,t){for(var n=new o(e,t.row,t.column),a=n.getCurrentToken();a&&!r(a,"attribute-name");)a=n.stepBackward();if(a)return a.value}var o=e("../token_iterator").TokenIterator,s=["accesskey","class","contenteditable","contextmenu","dir","draggable","dropzone","hidden","id","inert","itemid","itemprop","itemref","itemscope","itemtype","lang","spellcheck","style","tabindex","title","translate"],l=["onabort","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextmenu","oncuechange","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","on
8progress","onratechange","onreset","onscroll","onseeked","onseeking","onselect","onshow","onstalled","onsubmit","onsuspend","ontimeupdate","onvolumechange","onwaiting"],c=s.concat(l),d={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{"text/css":1,"image/png":1,"image/jpeg":1,"image/gif":1},sizes:1},meta:{"http-equiv":{"content-type":1},name:{description:1,keywords:1},content:{"text/html; charset=UTF-8":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{"text/javascript":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},var:{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{"allow-same-origin":1,"allow-top-navigation":1,"allow-forms":1,"allow-scripts":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,default:1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{"accept-charset":1,action:1,autocomplete:1,enctype:{"multipart/form-data":1,"application/x-www-form-urlencoded":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,for:1}
8,input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,"datetime-local":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{"application/x-www-form-urlencoded":1,"multipart/form-data":1,"text/plain":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},acequired:{acequired:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},acequired:{acequired:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{for:1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},u=Object.keys(d),p=function(){};(function(){this.getCompletions=function(e,t,n,a){var i=t.getTokenAt(n.row,n.column);return i?r(i,"tag-name")||r(i,"tag-open")||r(i,"end-tag-open")?this.getTagCompletions(e,t,n,a):r(i,"tag-whitespace")||r(i,"attribute-name")?this.getAttributeCompletions(e,t,n,a):r(i,"attribute-value")?this.getAttributeValueCompletions(e,t,n,a):/&[a-z]*$/i.test(t.getLine(n.row).substr(0,n.column))?this.getHTMLEntityCompletions(e,t,n,a):[]:[]},this.getTagCompletions=function(e,t,n,r){return u.map(function(e){return{value:e,meta:"tag",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=a(t,n);if(!i)return[];var o=c;return i in d&&(o=o.concat(Object.keys(d[i]))),o.map(function(e){return{caption:e,snippet:e+'="$0"',meta:"attribute",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var o=a(t,n),s=i(t,n);if(!o)return[];var l=[];return o in d&&s in d[o]&&"object"==typeof d[o][s]&&(l=Object.keys(d[o][s])),l.map(function(e){return{caption:e,snippet:e,meta:"attribute value",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){return["Aacute;","aacute;","Acirc;","acirc;","acute;","AElig;","aelig;","Agrave;","agrave;","alefsym;","Alpha;","alpha;","amp;","and;","ang;","Aring;","aring;","asymp;","Atilde;","atilde;","Auml;","auml;","bdquo;","Beta;","beta;","brvbar;","bull;","cap;","Ccedil;","ccedil;","cedil;","cent;","Chi;","chi;","circ;","clubs;","cong;","copy;","crarr;","cup;","curren;","Dagger;","dagger;","dArr;","darr;","deg;","Delta;","delta;","diams;","divide;","Eacute;","eacute;","Ecirc;","ecirc;","Egrave;","egrave;","empty;","emsp;","ensp;","Epsilon;","epsilon;","equiv;","Eta;","eta;","ETH;","eth;","Euml;","euml;","euro;","exist;","fnof;","forall;","frac12;","frac14;","frac34;","frasl;","Gamma;","gamma;","ge;","gt;","hArr;","harr;","hearts;","hellip;","Iacute;","iacute;","Icirc;","icirc;","iexcl;","Igrave;","igrave;","image;","infin;","int;","Iota;","iota;","iquest;","isin;","Iuml;","iuml;","Kappa;","kappa;","Lambda;","lambda;","lang;","laquo;","lArr;","larr;","lceil;","ldquo;","le;","lfloor;","lowast;","loz;","lrm;","lsaquo;","lsquo;","lt;","macr;","mdash;","micro;","middot;","minus;","Mu;","mu;","nabla;","nbsp;","ndash;","ne;","ni;","not;","notin;","nsub;","Ntilde;","ntilde;","Nu;","nu;","Oacute;","oacute;","Ocirc;","ocirc;","OElig;","oelig;","Ograve;","ograve;","oline;","Omega;","omega;","Omicron;","omicron;","oplus;","or;","ordf;","ordm;","Oslash;
8","oslash;","Otilde;","otilde;","otimes;","Ouml;","ouml;","para;","part;","permil;","perp;","Phi;","phi;","Pi;","pi;","piv;","plusmn;","pound;","Prime;","prime;","prod;","prop;","Psi;","psi;","quot;","radic;","rang;","raquo;","rArr;","rarr;","rceil;","rdquo;","real;","reg;","rfloor;","Rho;","rho;","rlm;","rsaquo;","rsquo;","sbquo;","Scaron;","scaron;","sdot;","sect;","shy;","Sigma;","sigma;","sigmaf;","sim;","spades;","sub;","sube;","sum;","sup;","sup1;","sup2;","sup3;","supe;","szlig;","Tau;","tau;","there4;","Theta;","theta;","thetasym;","thinsp;","THORN;","thorn;","tilde;","times;","trade;","Uacute;","uacute;","uArr;","uarr;","Ucirc;","ucirc;","Ugrave;","ugrave;","uml;","upsih;","Upsilon;","upsilon;","Uuml;","uuml;","weierp;","Xi;","xi;","Yacute;","yacute;","yen;","Yuml;","yuml;","Zeta;","zeta;","zwj;","zwnj;"].map(function(e){return{caption:e,snippet:e,meta:"html entity",score:Number.MAX_VALUE}})}}).call(p.prototype),t.HtmlCompletions=p}),ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"],function(e,t,r){"use strict";var a=e("../lib/oop"),i=e("../lib/lang"),o=e("./text").Mode,s=e("./javascript").Mode,l=e("./css").Mode,c=e("./html_highlight_rules").HtmlHighlightRules,d=e("./behaviour/xml").XmlBehaviour,u=e("./folding/html").FoldMode,p=e("./html_completions").HtmlCompletions,f=e("../worker/worker_client").WorkerClient,m=["area","base","br","col","embed","hr","img","input","keygen","link","meta","menuitem","param","source","track","wbr"],h=["li","dt","dd","p","rt","rp","optgroup","option","colgroup","td","th"],g=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=c,this.$behaviour=new d,this.$completer=new p,this.createModeDelegates({"js-":s,"css-":l}),this.foldingRules=new u(this.voidElements,i.arrayToMap(h))};a.inherits(g,o),function(){this.blockComment={start:"\x3c!--",end:"--\x3e"},this.voidElements=i.arrayToMap(m),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor==g){var t=new f(["ace"],n(1190),"Worker");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call("setOptions",[{context:this.fragmentContext}]),t.on("error",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t}},this.$id="ace/mode/html"}.call(g.prototype),t.Mode=g}),ace.define("ace/mode/markdown_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules","ace/mode/html_highlight_rules","ace/mode/css_highlight_rules"],function(e,t,n){"use strict";function r(e,t){return{token:"support.function",regex:"^\\s*```"+e+"\\s*$",push:t+"start"}}var a=e("../lib/oop"),i=e("../lib/lang"),o=e("./text_highlight_rules").TextHighlightRules,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,l=e("./xml_highlight_rules").XmlHighlightRules,c=e("./html_highlight_rules").HtmlHighlightRules,d=e("./css_highlight_rules").CssHighlightRules,u=function(e){return"(?:[^"+i.escapeRegExp(e)+"\\\\]|\\\\.)*"},p=function(){c.call(this),this.$rules.start.unshift({token:"empty_line",regex:"^$",next:"allowBlock"},{token:"markup.heading.1",regex:"^=+(?=\\s*$)"},{token:"markup.heading.2",regex:"^\\-+(?=\\s*$)"},{token:function(e){return"markup.heading."+e.length},regex:/^#{1,6}(?=\s*[^ #]|\s+#.)/,next:"header"},r("(?:javascript|js)","jscode-"),r("xml","xmlcode-"),r("html","htmlcode-"),r("css","csscode-"),{token:"support.function",regex:"^\\s*```\\s*\\S*(?:{.*?\\})?\\s*$",next:"githubblock"},{token:"string.blockquote",regex:"^\\s*>\\s*(?:[*+-]|\\d+\\.)?\\s+",next:"blockquote"},{token:"constant",regex:"^ {0,2}(?:(?: ?\\* ?){3,}|(?: ?\\- ?){3,}|(?: ?\\_ ?){3,})\\s*$",next:"allowBlock"},{token:"markup.list",regex:"^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+",next:"listblock-start"},{include:"basic"}
8),this.addRules({basic:[{token:"constant.language.escape",regex:/\\[\\`*_{}\[\]()#+\-.!]/},{token:"support.function",regex:"(`+)(.*?[^`])(\\1)"},{token:["text","constant","text","url","string","text"],regex:'^([ ]{0,3}\\[)([^\\]]+)(\\]:\\s*)([^ ]+)(\\s*(?:["][^"]+["])?(\\s*))$'},{token:["text","string","text","constant","text"],regex:"(\\[)("+u("]")+")(\\]\\s*\\[)("+u("]")+")(\\])"},{token:["text","string","text","markup.underline","string","text"],regex:"(\\[)("+u("]")+')(\\]\\()((?:[^\\)\\s\\\\]|\\\\.|\\s(?=[^"]))*)(\\s*"'+u('"')+'"\\s*)?(\\))'},{token:"string.strong",regex:"([*]{2}|[_]{2}(?=\\S))(.*?\\S[*_]*)(\\1)"},{token:"string.emphasis",regex:"([*]|[_](?=\\S))(.*?\\S[*_]*)(\\1)"},{token:["text","url","text"],regex:"(<)((?:https?|ftp|dict):[^'\">\\s]+|(?:mailto:)?[-.\\w]+\\@[-a-z0-9]+(?:\\.[-a-z0-9]+)*\\.[a-z]+)(>)"}],allowBlock:[{token:"support.function",regex:"^ {4}.+",next:"allowBlock"},{token:"empty_line",regex:"^$",next:"allowBlock"},{token:"empty",regex:"",next:"start"}],header:[{regex:"$",next:"start"},{include:"basic"},{defaultToken:"heading"}],"listblock-start":[{token:"support.variable",regex:/(?:\[[ x]\])?/,next:"listblock"}],listblock:[{token:"empty_line",regex:"^$",next:"start"},{token:"markup.list",regex:"^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+",next:"listblock-start"},{include:"basic",noEscape:!0},{token:"support.function",regex:"^\\s*```\\s*[a-zA-Z]*(?:{.*?\\})?\\s*$",next:"githubblock"},{defaultToken:"list"}],blockquote:[{token:"empty_line",regex:"^\\s*$",next:"start"},{token:"string.blockquote",regex:"^\\s*>\\s*(?:[*+-]|\\d+\\.)?\\s+",next:"blockquote"},{include:"basic",noEscape:!0},{defaultToken:"string.blockquote"}],githubblock:[{token:"support.function",regex:"^\\s*```",next:"start"},{token:"support.function",regex:".+"}]}),this.embedRules(s,"jscode-",[{token:"support.function",regex:"^\\s*```",next:"pop"}]),this.embedRules(c,"htmlcode-",[{token:"support.function",regex:"^\\s*```",next:"pop"}]),this.embedRules(d,"csscode-",[{token:"support.function",regex:"^\\s*```",next:"pop"}]),this.embedRules(l,"xmlcode-",[{token:"support.function",regex:"^\\s*```",next:"pop"}]),this.normalizeRules()};a.inherits(p,o),t.MarkdownHighlightRules=p}),ace.define("ace/mode/folding/markdown",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){"use strict";var r=e("../../lib/oop"),a=e("./fold_mode").FoldMode,i=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,a),function(){this.foldingStartMarker=/^(?:[=-]+\s*$|#{1,6} |`{3})/,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?"`"==r[0]&&"start"==e.bgTokenizer.getState(n)?"end":"start":""},this.getFoldWidgetRange=function(e,t,n){function r(t){return(u=e.getTokens(t)[0])&&0===u.type.lastIndexOf(p,0)}function a(){var e=u.value[0];return"="==e?6:"-"==e?5:7-u.value.search(/[^#]/)}var o=e.getLine(n),s=o.length,l=e.getLength(),c=n,d=n;if(o.match(this.foldingStartMarker)){if("`"==o[0]){if("start"!==e.bgTokenizer.getState(n)){for(;++n<l&&(o=e.getLine(n),!("`"==o[0]&"```"==o.substring(0,3))););return new i(c,s,n,0)}for(;n-- >0&&(o=e.getLine(n),!("`"==o[0]&"```"==o.substring(0,3))););return new i(n,o.length,c,0)}var u,p="markup.heading";if(r(n)){for(var f=a();++n<l;)if(r(n)){var m=a();if(m>=f)break}if((d=n-(u&&-1!=["=","-"].indexOf(u.value[0])?2:1))>c)for(;d>c&&/^\s*$/.test(e.getLine(d));)d--;if(d>c){var h=e.getLine(d).length;return new i(c,s,d,h)}}}}}.call(o.prototype)}),ace.define("ace/mode/markdown",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript","ace/mode/xml","ace/mode/html","ace/mode/markdown_highlight_rules","ace/mode/folding/markdown"],function(e,t,n){"use strict";var r=e("../lib/oop"),a=e("./text").Mode,i=e("./javascript").Mode,o=e("./xml").Mode,s=e("./html").Mode,l=e("./markdown_highlight_rules").MarkdownHighlightRules,c=e("./folding/markdown").FoldMode,d=function(){this.HighlightRules=l,this.createModeDelegates({"js-":i,"xml-":o,"html-":s}),this.foldingRules=new c,this.$behaviour=this.$defaultBehaviour};r.inherits(d,a),function(){this.type="text",this.blockComment={start:"\x3c!--",end:"--\x3e"},this.getNextLineIndent=function(e,t,n){if("listblock"==e){var r=/^(\s*)(?:([-+*])|(\d+)\.)(\s+)/.exec(t);if(!r)return"";var a=r[2];return a||(a=parseInt(r[3],10)+1+"."),r[1]+a+r[4]}return this.$getIndent(t)},this.$id="ace/mode/markdown"}.call(d.prototype),t.Mode=d})},function(e,t){e.exports.id="ace/mode/javascript_worker",e.exports.src='"no use strict";(function(window){function resolveModuleId(id,paths){for(var testPath=id,tail="";testPath;){var alias=paths[testPath];if("string"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,"/")+(tail||alias.main||alias.name);if(alias===!1)return"";var i=testPath.lastIndexOf("/");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:"error",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf("!")){var chunks=moduleName.split("!");return window.normalizeModule(parentId,chunks[0])+"!"+window.normalizeModule(parentId,chunks[1])}if("."==moduleName.charAt(0)){var base=parentId.split("/").slice(0,-1).join("/");for(moduleName=(base?base+"/":"")+moduleName;-1!==moduleName.indexOf(".")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,"").replace(/\\/\\.\\//,"/").replace(/[^\\/]+\\/\\.\\.\\//,"")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error("worker.js acequire() accepts only (parentId, id) as arguments");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports
8),module.exports;if(!window.acequire.tlns)return console.log("unable to load "+id);var path=resolveModuleId(id,window.acequire.tlns);return".js"!=path.slice(-3)&&(path+=".js"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,"string"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),"function"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=["require","exports","module"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case"require":return req;case"exports":return module.exports;case"module":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire("ace/lib/event_emitter").EventEmitter,oop=window.acequire("ace/lib/oop"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:"call",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:"event",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error("Unknown command:"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire("ace/lib/es5-shim"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}})
vendor: 23,285 bytes, line 8
8(this),ace.define("ace/lib/oop",["require","exports","module"],function(acequire,exports){"use strict";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define("ace/range",["require","exports","module"],function(acequire,exports){"use strict";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){"object"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){"object"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define("ace/apply_delta",["require","exports","module"],function(acequire,exports){"use strict";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||"";switch(delta.action){case"insert":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case"remove":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(acequire,exports){"use strict";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){"object"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?"unshift":"push"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),EventEmitter=acequire("./lib/event_emitter").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.column<point2.column;return point1.row<point2.row||point1.row==point2.row&&bColIsAfter}function $getTransformedPoint(delta,point,moveIfEqual){var deltaIsInsert="insert"==delta.action,deltaRowShift=(deltaIsInsert?1:-1)*(delta.end.row-delta.start.row),deltaColShift=(deltaIsInsert?1:-1)*(delta.end.column-delta.start.column),deltaStart=delta.start,deltaEnd=deltaIsInsert?deltaStart:delta.end;return $pointsInOrder(point,deltaStart,moveIfEqual)?{row:point.row,column:point.column}:$pointsInOrder(deltaEnd,point,!moveIfEqual)?{row:point.row+deltaRowShift,column:point.column+(point.row==deltaEnd.row?deltaColShift:0)}:{row:deltaStart.row,column:deltaStart.column}}oop.implement(this,EventEmitter),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(delta){if(!(delta.start.row==delta.end.row&&delta.start.row!=this.row||delta.start.row>this.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal("change",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),applyDelta=acequire("./apply_delta").applyDelta,EventEmitter=acequire("./lib/event_emitter").EventEmitter,Range=acequire("./range").Range,Anchor=acequire("./anchor").Anchor,Document=function(textOrLines){this.$lines=[""],0===textOrLines.length?this.$lines=[""]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==="aaa".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,"\\n").split("\\n")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:"\\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\\r\\n";case"unix":return"\\n";default:return this.$autoNewLine||"\\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return"\\r\\n"==text||"\\r"==text||"\\n"==text},this.getLine=function(row){return this.$lines[row]||""},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||"").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, [\'\', \'\']) instead."),this.insertMergedLines(position,["",""])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:"insert",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([""]),column=0):(lines=[""].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:"insert",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:"remove",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:"remove",lines:["",""]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert="insert"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal("change",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(""),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:"insert"==delta.action?"remove":"insert",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define("ace/lib/lang",["require","exports","module"],function(acequire,exports){"use strict";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split("").reverse().join("")},exports.stringRepeat=function(string,count){for(var result="";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,"")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,"")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&"object"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if("object"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if("[object Object]"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,"\\\\$1")},exports.escapeHTML=function(str){return str.replace(/&/g,"&").replace(/"/g,""").replace(/\'/g,"'").replace(/</g,"<")},exports.getMatchOffsets=function(string,regExp){var matches=[];return string.replace(regExp,function(str){matches.push({offset:arguments[arguments.length-2],length:str.length})}),matches},exports.deferredCall=function(fcn){var timer=null,callback=function(){timer=null,fcn()},deferred=function(timeout){return deferred.cancel(),timer=setTimeout(callback,timeout||0),deferred};return deferred.schedule=deferred,deferred.call=function(){return this.cancel(),fcn(),deferred},deferred.cancel=function(){return clearTimeout(timer),timer=null,deferred},deferred.isPending=function(){return timer},deferred},exports.delayedCall=function(fcn,defaultTimeout){var timer=null,callback=function(){timer=null,fcn()},_self=function(timeout){null==timer&&(timer=setTimeout(callback,timeout||defaultTimeout))};return _self.delay=function(timeout){timer&&clearTimeout(timer),timer=setTimeout(callback,timeout||defaultTimeout)},_self.schedule=_self,_self.call=function(){this.cancel(),fcn()},_self.cancel=function(){timer&&clearTimeout(timer),timer=null},_self.isPending=function(){return timer},_self}}),ace.define("ace/worker/mirror",["require","exports","module","ace/range","ace/document","ace/lib/lang"],function(acequire,exports){"use strict";acequire("../range").Range;var Document=acequire("../document").Document,lang=acequire("../lib/lang"),Mirror=exports.Mirror=function(sender){this.sender=sender;var doc=this.doc=new Document(""),deferredUpdate=this.deferredUpdate=lang.delayedCall(this.onUpdate.bind(this)),_self=this;sender.on("change",function(e){var data=e.data;if(data[0].start)doc.applyDeltas(data);else for(var i=0;data.length>i;i+=2){if(Array.isArray(data[i+1]))var d={action:"insert",start:data[i],lines:data[i+1]};else var d={action:"remove",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define("ace/mode/j
8avascript/jshint",["require","exports","module"],function(acequire,exports,module){module.exports=function outer(modules,cache,entry){function newRequire(name,jumped){if(!cache[name]){if(!modules[name]){var currentRequire="function"==typeof acequire&&acequire;if(!jumped&¤tRequire)return currentRequire(name,!0);if(previousRequire)return previousRequire(name,!0);var err=Error("Cannot find module \'"+name+"\'");throw err.code="MODULE_NOT_FOUND",err}var m=cache[name]={exports:{}};modules[name][0].call(m.exports,function(x){var id=modules[name][1][x];return newRequire(id?id:x)},m,m.exports,outer,modules,cache,entry)}return cache[name].exports}for(var previousRequire="function"==typeof acequire&&acequire,i=0;entry.length>i;i++)newRequire(entry[i]);return newRequire(entry[0])}({"/node_modules/browserify/node_modules/events/events.js":[function(_dereq_,module){function EventEmitter(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function isFunction(arg){return"function"==typeof arg}function isNumber(arg){return"number"==typeof arg}function isObject(arg){return"object"==typeof arg&&null!==arg}function isUndefined(arg){return void 0===arg}module.exports=EventEmitter,EventEmitter.EventEmitter=EventEmitter,EventEmitter.prototype._events=void 0,EventEmitter.prototype._maxListeners=void 0,EventEmitter.defaultMaxListeners=10,EventEmitter.prototype.setMaxListeners=function(n){if(!isNumber(n)||0>n||isNaN(n))throw TypeError("n must be a positive number");return this._maxListeners=n,this},EventEmitter.prototype.emit=function(type){var er,handler,len,args,i,listeners;if(this._events||(this._events={}),"error"===type&&(!this._events.error||isObject(this._events.error)&&!this._events.error.length)){if(er=arguments[1],er instanceof Error)throw er;throw TypeError(\'Uncaught, unspecified "error" event.\')}if(handler=this._events[type],isUndefined(handler))return!1;if(isFunction(handler))switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:for(len=arguments.length,args=Array(len-1),i=1;len>i;i++)args[i-1]=arguments[i];handler.apply(this,args)}else if(isObject(handler)){for(len=arguments.length,args=Array(len-1),i=1;len>i;i++)args[i-1]=arguments[i];for(listeners=handler.slice(),len=listeners.length,i=0;len>i;i++)listeners[i].apply(this,args)}return!0},EventEmitter.prototype.addListener=function(type,listener){var m;if(!isFunction(listener))throw TypeError("listener must be a function");if(this._events||(this._events={}),this._events.newListener&&this.emit("newListener",type,isFunction(listener.listener)?listener.listener:listener),this._events[type]?isObject(this._events[type])?this._events[type].push(listener):this._events[type]=[this._events[type],listener]:this._events[type]=listener,isObject(this._events[type])&&!this._events[type].warned){var m;m=isUndefined(this._maxListeners)?EventEmitter.defaultMaxListeners:this._maxListeners,m&&m>0&&this._events[type].length>m&&(this._events[type].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[type].length),"function"==typeof console.trace&&console.trace())}return this},EventEmitter.prototype.on=EventEmitter.prototype.addListener,EventEmitter.prototype.once=function(type,listener){function g(){this.removeListener(type,g),fired||(fired=!0,listener.apply(this,arguments))}if(!isFunction(listener))throw TypeError("listener must be a function");var fired=!1;return g.listener=listener,this.on(type,g),this},EventEmitter.prototype.removeListener=function(type,listener){var list,position,length,i;if(!isFunction(listener))throw TypeError("listener must be a function");if(!this._events||!this._events[type])return this;if(list=this._events[type],length=list.length,position=-1,list===listener||isFunction(list.listener)&&list.listener===listener)delete this._events[type],this._events.removeListener&&this.emit("removeListener",type,listener);else if(isObject(list)){for(i=length;i--\x3e0;)if(list[i]===listener||list[i].listener&&list[i].listener===listener){position=i;break}if(0>position)return this;1===list.length?(list.length=0,delete this._events[type]):list.splice(position,1),this._events.removeListener&&this.emit
8("removeListener",type,listener)}return this},EventEmitter.prototype.removeAllListeners=function(type){var key,listeners;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[type]&&delete this._events[type],this;if(0===arguments.length){for(key in this._events)"removeListener"!==key&&this.removeAllListeners(key);return this.removeAllListeners("removeListener"),this._events={},this\n}if(listeners=this._events[type],isFunction(listeners))this.removeListener(type,listeners);else for(;listeners.length;)this.removeListener(type,listeners[listeners.length-1]);return delete this._events[type],this},EventEmitter.prototype.listeners=function(type){var ret;return ret=this._events&&this._events[type]?isFunction(this._events[type])?[this._events[type]]:this._events[type].slice():[]},EventEmitter.listenerCount=function(emitter,type){var ret;return ret=emitter._events&&emitter._events[type]?isFunction(emitter._events[type])?1:emitter._events[type].length:0}},{}],"/node_modules/jshint/data/ascii-identifier-data.js":[function(_dereq_,module){for(var identifierStartTable=[],i=0;128>i;i++)identifierStartTable[i]=36===i||i>=65&&90>=i||95===i||i>=97&&122>=i;for(var identifierPartTable=[],i=0;128>i;i++)identifierPartTable[i]=identifierStartTable[i]||i>=48&&57>=i;module.exports={asciiIdentifierStartTable:identifierStartTable,asciiIdentifierPartTable:identifierPartTable}},{}],"/node_modules/jshint/lodash.js":[function(_dereq_,module,exports){(function(global){(function(){function baseFindIndex(array,predicate,fromRight){for(var length=array.length,index=fromRight?length:-1;fromRight?index--:length>++index;)if(predicate(array[index],index,array))return index;return-1}function baseIndexOf(array,value,fromIndex){if(value!==value)return indexOfNaN(array,fromIndex);for(var index=fromIndex-1,length=array.length;length>++index;)if(array[index]===value)return index;return-1}function baseIsFunction(value){return"function"==typeof value||!1}function baseToString(value){return"string"==typeof value?value:null==value?"":value+""}function indexOfNaN(array,fromIndex,fromRight){for(var length=array.length,index=fromIndex+(fromRight?0:-1);fromRight?index--:length>++index;){var other=array[index];if(other!==other)return index}return-1}function isObjectLike(value){return!!value&&"object"==typeof value}function lodash(){}function arrayCopy(source,array){var index=-1,length=source.length;for(array||(array=Array(length));length>++index;)array[index]=source[index];return array}function arrayEach(array,iteratee){for(var index=-1,length=array.length;length>++index&&iteratee(array[index],index,array)!==!1;);return array}function arrayFilter(array,predicate){for(var index=-1,length=array.length,resIndex=-1,result=[];length>++index;){var value=array[index];predicate(value,index,array)&&(result[++resIndex]=value)}return result}function arrayMap(array,iteratee){for(var index=-1,length=array.length,result=Array(length);length>++index;)result[index]=iteratee(array[index],index,array);return result}function arrayMax(array){for(var index=-1,length=array.length,result=NEGATIVE_INFINITY;length>++index;){var value=array[index];value>result&&(result=value)}return result}function arraySome(array,predicate){for(var index=-1,length=array.length;length>++index;)if(predicate(array[index],index,array))return!0;return!1}function assignWith(object,source,customizer){var props=keys(source);push.apply(props,getSymbols(source));for(var index=-1,length=props.length;length>++index;){var key=props[index],value=object[key],result=customizer(value,source[key],key,object,source);(result===result?result===value:value!==value)&&(value!==undefined||key in object)||(object[key]=result)}return object}function baseCopy(source,props,object){object||(object={});for(var index=-1,length=props.length;length>++index;){var key=props[index];object[key]=source[key]}return object}function baseCallback(func,thisArg,argCount){var type=typeof func;return"function"==type?thisArg===undefined?func:bindCallback(func,thisArg,argCount):null==func?identity:"object"==type?baseMatches(func):thisArg===undefined?property(func):baseMatchesProperty(func,thisArg)}function baseClone(value,isDeep,customizer,key,object,stackA,stackB){var result;if(customizer&&(result=object?customizer(value,key,object):customizer(value)),result!==undefined)return result;if(!isObject(value))return value;var isArr=isArray(value);if(isArr){if(result=initCloneArray(value),!isDeep)return arrayCopy(value,result)}else{var tag=objToString.call(value),isFunc=tag==funcTag;if(tag!=objectTag&&tag!=argsTag&&(!isFunc||object))return cloneableTags[tag]?initCloneByTag(value,tag,isDeep):object?value:{};if(result=initCloneObject(isFunc?{}:value),!isDeep)return baseAssign(result,value)}stackA||(stackA=[]),stackB||(stackB=[]);for(var length=stackA.length;length--;)if(stackA[length]==value)return stackB[length];
8return stackA.push(value),stackB.push(result),(isArr?arrayEach:baseForOwn)(value,function(subValue,key){result[key]=baseClone(subValue,isDeep,customizer,key,value,stackA,stackB)}),result}function baseFilter(collection,predicate){var result=[];return baseEach(collection,function(value,index,collection){predicate(value,index,collection)&&result.push(value)}),result}function baseForIn(object,iteratee){return baseFor(object,iteratee,keysIn)}function baseForOwn(object,iteratee){return baseFor(object,iteratee,keys)}function baseGet(object,path,pathKey){if(null!=object){pathKey!==undefined&&pathKey in toObject(object)&&(path=[pathKey]);for(var index=-1,length=path.length;null!=object&&length>++index;)var result=object=object[path[index]];return result}}function baseIsEqual(value,other,customizer,isLoose,stackA,stackB){if(value===other)return 0!==value||1/value==1/other;var valType=typeof value,othType=typeof other;return"function"!=valType&&"object"!=valType&&"function"!=othType&&"object"!=othType||null==value||null==other?value!==value&&other!==other:baseIsEqualDeep(value,other,baseIsEqual,customizer,isLoose,stackA,stackB)}function baseIsEqualDeep(object,other,equalFunc,customizer,isLoose,stackA,stackB){var objIsArr=isArray(object),othIsArr=isArray(other),objTag=arrayTag,othTag=arrayTag;objIsArr||(objTag=objToString.call(object),objTag==argsTag?objTag=objectTag:objTag!=objectTag&&(objIsArr=isTypedArray(object))),othIsArr||(othTag=objToString.call(other),othTag==argsTag?othTag=objectTag:othTag!=objectTag&&(othIsArr=isTypedArray(other)));var objIsObj=objTag==objectTag,othIsObj=othTag==objectTag,isSameTag=objTag==othTag;if(isSameTag&&!objIsArr&&!objIsObj)return equalByTag(object,other,objTag);if(!isLoose){var valWrapped=objIsObj&&hasOwnProperty.call(object,"__wrapped__"),othWrapped=othIsObj&&hasOwnProperty.call(other,"__wrapped__");
8if(valWrapped||othWrapped)return equalFunc(valWrapped?object.value():object,othWrapped?other.value():other,customizer,isLoose,stackA,stackB)}if(!isSameTag)return!1;stackA||(stackA=[]),stackB||(stackB=[]);for(var length=stackA.length;length--;)if(stackA[length]==object)return stackB[length]==other;stackA.push(object),stackB.push(other);var result=(objIsArr?equalArrays:equalObjects)(object,other,equalFunc,customizer,isLoose,stackA,stackB);return stackA.pop(),stackB.pop(),result}function baseIsMatch(object,props,values,strictCompareFlags,customizer){for(var index=-1,length=props.length,noCustomizer=!customizer;length>++index;)if(noCustomizer&&strictCompareFlags[index]?values[index]!==object[props[index]]:!(props[index]in object))return!1;for(index=-1;length>++index;){var key=props[index],objValue=object[key],srcValue=values[index];if(noCustomizer&&strictCompareFlags[index])var result=objValue!==undefined||key in object;else result=customizer?customizer(objValue,srcValue,key):undefined,result===undefined&&(result=baseIsEqual(srcValue,objValue,customizer,!0));if(!result)return!1}return!0}function baseMatches(source){var props=keys(source),length=props.length;if(!length)return constant(!0);if(1==length){var key=props[0],value=source[key];if(isStrictComparable(value))return function(object){return null==object?!1:object[key]===value&&(value!==undefined||key in toObject(object))}}for(var values=Array(length),strictCompareFlags=Array(length);length--;)value=source[props[length]],values[length]=value,strictCompareFlags[length]=isStrictComparable(value);return function(object){return null!=object&&baseIsMatch(toObject(object),props,values,strictCompareFlags)}}function baseMatchesProperty(path,value){var isArr=isArray(path),isCommon=isKey(path)&&isStrictComparable(value),pathKey=path+"";return path=toPath(path),function(object){if(null==object)return!1;var key=pathKey;if(object=toObject(object),!(!isArr&&isCommon||key in object)){if(object=1==path.length?object:baseGet(object,baseSlice(path,0,-1)),null==object)return!1;key=last(path),object=toObject(object)}return object[key]===value?value!==undefined||key in object:baseIsEqual(value,object[key],null,!0)}}function baseMerge(object,source,customizer,stackA,stackB){if(!isObject(object))return object;var isSrcArr=isLength(source.length)&&(isArray(source)||isTypedArray(source));if(!isSrcArr){var props=keys(source);push.apply(props,getSymbols(source))}return arrayEach(props||source,function(srcValue,key){if(props&&(key=srcValue,srcValue=source[key]),isObjectLike(srcValue))stackA||(stackA=[]),stackB||(stackB=[]),baseMergeDeep(object,source,key,baseMerge,customizer,stackA,stackB);else{var value=object[key],result=customizer?customizer(value,srcValue,key,object,source):undefined,isCommon=result===undefined;isCommon&&(result=srcValue),!isSrcArr&&result===undefined||!isCommon&&(result===result?result===value:value!==value)||(object[key]=result)}}),object}function baseMergeDeep(object,source,key,mergeFunc,customizer,stackA,stackB){for(var length=stackA.length,srcValue=source[key];length--;)if(stackA[length]==srcValue)return object[key]=stackB[length],undefined;var value=object[key],result=customizer?customizer(value,srcValue,key,object,source):undefined,isCommon=result===undefined;isCommon&&(result=srcValue,isLength(srcValue.length)&&(isArray(srcValue)||isTypedArray(srcValue))?result=isArray(value)?value:getLength(value)?arrayCopy(value):[]:isPlainObject(srcValue)||isArguments(srcValue)?result=isArguments(value)?toPlainObject(value):isPlainObject(value)?value:{}:isCommon=!1),stackA.push(srcValue),stackB.push(result),isCommon?object[key]=mergeFunc(result,srcValue,customizer,stackA,stackB):(result===result?result!==value:value===value)&&(object[key]=result)}function baseProperty(key){return function(object){return null==object?undefined:object[key]}}function basePropertyDeep(path){var pathKey=path+"";return path=toPath(path),function(object){return baseGet(object,path,pathKey)}}function baseSlice(array,start,end){var index=-1,length=array.length;start=null==start?0:+start||0,0>start&&(start=-start>
8length?0:length+start),end=end===undefined||end>length?length:+end||0,0>end&&(end+=length),length=start>end?0:end-start>>>0,start>>>=0;for(var result=Array(length);length>++index;)result[index]=array[index+start];return result}function baseSome(collection,predicate){var result;return baseEach(collection,function(value,index,collection){return result=predicate(value,index,collection),!result}),!!result}function baseValues(object,props){for(var index=-1,length=props.length,result=Array(length);length>++index;)result[index]=object[props[index]];return result}function binaryIndex(array,value,retHighest){var low=0,high=array?array.length:low;if("number"==typeof value&&value===value&&HALF_MAX_ARRAY_LENGTH>=high){for(;high>low;){var mid=low+high>>>1,computed=array[mid];(retHighest?value>=computed:value>computed)?low=mid+1:high=mid}return high}return binaryIndexBy(array,value,identity,retHighest)}function binaryIndexBy(array,value,iteratee,retHighest){value=iteratee(value);for(var low=0,high=array?array.length:0,valIsNaN=value!==value,valIsUndef=value===undefined;high>low;){var mid=floor((low+high)/2),computed=iteratee(array[mid]),isReflexive=computed===computed;if(valIsNaN)var setLow=isReflexive||retHighest;else setLow=valIsUndef?isReflexive&&(retHighest||computed!==undefined):retHighest?value>=computed:value>computed;setLow?low=mid+1:high=mid}return nativeMin(high,MAX_ARRAY_INDEX)}function bindCallback(func,thisArg,argCount){if("function"!=typeof func)return identity;if(thisArg===undefined)return func;switch(argCount){case 1:return function(value){return func.call(thisArg,value)};case 3:return function(value,index,collection){return func.call(thisArg,value,index,collection)};case 4:return function(accumulator,value,index,collection){return func.call(thisArg,accumulator,value,index,collection)};case 5:return function(value,other,key,object,source){return func.call(thisArg,value,other,key,object,source)}}return function(){return func.apply(thisArg,arguments)}}function bufferClone(buffer){return bufferSlice.call(buffer,0)}function createAssigner(assigner){return restParam(function(object,sources){var index=-1,length=null==object?0:sources.length,customizer=length>2&&sources[length-2],guard=length>2&&sources[2],thisArg=length>1&&sources[length-1];for("function"==typeof customizer?(customizer=bindCallback(customizer,thisArg,5),length-=2):(customizer="function"==typeof thisArg?thisArg:null,length-=customizer?1:0),guard&&isIterateeCall(sources[0],sources[1],guard)&&(customizer=3>length?null:customizer,length=1);length>++index;){var source=sources[index];source&&assigner(object,source,customizer)}return object})}function createBaseEach(eachFunc,fromRight){return function(collection,iteratee){var length=collection?getLength(collection):0;if(!isLength(length))return eachFunc(collection,iteratee);for(var index=fromRight?length:-1,iterable=toObject(collection);(fromRight?index--:length>++index)&&iteratee(iterable[index],index,iterable)!==!1;);return collection}}function createBaseFor(fromRight){return function(object,iteratee,keysFunc){for(var iterable=toObject(object),props=keysFunc(object),length=props.length,index=fromRight?length:-1;fromRight?index--:length>++index;){var key=props[index];if(iteratee(iterable[key],key,iterable)===!1)break}return object}}function createFindIndex(fromRight){return function(array,predicate,thisArg){return array&&array.length?(predicate=getCallback(predicate,thisArg,3),baseFindIndex(array,predicate,fromRight)):-1}}function createForEach(arrayFunc,eachFunc){return function(collection,iteratee,thisArg){return"function"==typeof iteratee&&thisArg===undefined&&isArray(collection)?arrayFunc(collection,iteratee):eachFunc(collection,bindCallback(iteratee,thisArg,3))}}function equalArrays(array,other,equalFunc,customizer,isLoose,stackA,stackB){var index=-1,arrLength=array.length,othLength=other.length,result=!0;if(arrLength!=othLength&&!(isLoose&&othLength>arrLength))return!1;for(;result&&arrLength>++index;){var arrValue=array[index],othValue=other[index];if(result=undefined,customizer&&(result=isLoose?customizer(othValue,arrValue,index):customizer(arrValue,othValue,index)),result===undefined)if(isLoose)for(var othIndex=othLength;othIndex--&&(othValue=other[othIndex],!(result=arrValue&&arrValue===othValue||equalFunc(arrValue,othValue,customizer,isLoose,stackA,stackB))););else result=arrValue&&arrValue===othValue||equalFunc(arrValue,othValue,customizer,isLoose,stackA,stackB)}return!!result}function equalByTag(object,other,tag){switch(tag){case boolTag:case dateTag:return+object==+other;case errorTag:return object.name==other.name&&object.message==other.message;
8case numberTag:return object!=+object?other!=+other:0==object?1/object==1/other:object==+other;case regexpTag:case stringTag:return object==other+""}return!1}function equalObjects(object,other,equalFunc,customizer,isLoose,stackA,stackB){var objProps=keys(object),objLength=objProps.length,othProps=keys(other),othLength=othProps.length;if(objLength!=othLength&&!isLoose)return!1;for(var skipCtor=isLoose,index=-1;objLength>++index;){var key=objProps[index],result=isLoose?key in other:hasOwnProperty.call(other,key);if(result){var objValue=object[key],othValue=other[key];result=undefined,customizer&&(result=isLoose?customizer(othValue,objValue,key):customizer(objValue,othValue,key)),result===undefined&&(result=objValue&&objValue===othValue||equalFunc(objValue,othValue,customizer,isLoose,stackA,stackB))}if(!result)return!1;skipCtor||(skipCtor="constructor"==key)}if(!skipCtor){var objCtor=object.constructor,othCtor=other.constructor;if(objCtor!=othCtor&&"constructor"in object&&"constructor"in other&&!("function"==typeof objCtor&&objCtor instanceof objCtor&&"function"==typeof othCtor&&othCtor instanceof othCtor))return!1}return!0}function getCallback(func,thisArg,argCount){var result=lodash.callback||callback;return result=result===callback?baseCallback:result,argCount?result(func,thisArg,argCount):result}function getIndexOf(collection,target,fromIndex){var result=lodash.indexOf||indexOf;return result=result===indexOf?baseIndexOf:result,collection?result(collection,target,fromIndex):result}function initCloneArray(array){var length=array.length,result=new array.constructor(length);return length&&"string"==typeof array[0]&&hasOwnProperty.call(array,"index")&&(result.index=array.index,result.input=array.input),result}function initCloneObject(object){var Ctor=object.constructor;return"function"==typeof Ctor&&Ctor instanceof Ctor||(Ctor=Object),new Ctor}function initCloneByTag(object,tag,isDeep){var Ctor=object.constructor;switch(tag){case arrayBufferTag:return bufferClone(object);case boolTag:case dateTag:return new Ctor(+object);case float32Tag:case float64Tag:case int8Tag:case int16Tag:case int32Tag:case uint8Tag:case uint8ClampedTag:case uint16Tag:case uint32Tag:var buffer=object.buffer;return new Ctor(isDeep?bufferClone(buffer):buffer,object.byteOffset,object.length);case numberTag:case stringTag:return new Ctor(object);case regexpTag:var result=new Ctor(object.source,reFlags.exec(object));result.lastIndex=object.lastIndex}return result}function isIndex(value,length){return value=+value,length=null==length?MAX_SAFE_INTEGER:length,value>-1&&0==value%1&&length>value}function isIterateeCall(value,index,object){if(!isObject(object))return!1;var type=typeof index;if("number"==type)var length=getLength(object),prereq=isLength(length)&&isIndex(index,length);else prereq="string"==type&&index in object;if(prereq){var other=object[index];return value===value?value===other:other!==other}return!1}function isKey(value,object){var type=typeof value;if("string"==type&&reIsPlainProp.test(value)||"number"==type)return!0;if(isArray(value))return!1;var result=!reIsDeepProp.test(value);return result||null!=object&&value in toObject(object)}function isLength(value){return"number"==typeof value&&value>-1&&0==value%1&&MAX_SAFE_INTEGER>=value}function isStrictComparable(value){return value===value&&(0===value?1/value>0:!isObject(value))}function shimIsPlainObject(value){var Ctor;if(lodash.support,!isObjectLike(value)||objToString.call(value)!=objectTag||!hasOwnProperty.call(value,"constructor")&&(Ctor=value.constructor,"function"==typeof Ctor&&!(Ctor instanceof Ctor)))return!1;var result;return baseForIn(value,function(subValue,key){result=key}),result===undefined||hasOwnProperty.call(value,result)}function shimKeys(object){for(var props=keysIn(object),propsLength=props.length,length=propsLength&&object.length,support=lodash.support,allowIndexes=length&&isLength(length)&&(isArray(object)||support.nonEnumArgs&&isArguments(object)),index=-1,result=[];propsLength>++index;){var key=props[index];(allowIndexes&&isIndex(key,length)||hasOwnProperty.call(object,key))&&result.push(key)}return result}function toObject(value){return isObject(value)?value:Object(value)}function toPath(value){if(isArray(value))return value;var result=[];return baseToString(value).replace(rePropName,function(match,number,quote,string){result.push(quote?string.replace(reEscapeChar,"$1"):number||match)}),result}function indexOf(array,value,fromIndex){var length=array?array.length:0;if(!length)return-1;if("number"==typeof fromIndex)fromIndex=0>fromIndex?nativeMax(length+fromIndex,0):fromIndex;else if(fromIndex){var index=binaryIndex(array,value),other=array[index];return(value===value?value===other:other!==other)?index:-1}
8return baseIndexOf(array,value,fromIndex||0)}function last(array){var length=array?array.length:0;return length?array[length-1]:undefined}function slice(array,start,end){var length=array?array.length:0;return length?(end&&"number"!=typeof end&&isIterateeCall(array,start,end)&&(start=0,end=length),baseSlice(array,start,end)):[]}function unzip(array){for(var index=-1,length=(array&&array.length&&arrayMax(arrayMap(array,getLength)))>>>0,result=Array(length);length>++index;)result[index]=arrayMap(array,baseProperty(index));return result}function includes(collection,target,fromIndex,guard){var length=collection?getLength(collection):0;return isLength(length)||(collection=values(collection),length=collection.length),length?(fromIndex="number"!=typeof fromIndex||guard&&isIterateeCall(target,fromIndex,guard)?0:0>fromIndex?nativeMax(length+fromIndex,0):fromIndex||0,"string"==typeof collection||!isArray(collection)&&isString(collection)?length>fromIndex&&collection.indexOf(target,fromIndex)>-1:getIndexOf(collection,target,fromIndex)>-1):!1}function reject(collection,predicate,thisArg){var func=isArray(collection)?arrayFilter:baseFilter;return predicate=getCallback(predicate,thisArg,3),func(collection,function(value,index,collection){return!predicate(value,index,collection)})}function some(collection,predicate,thisArg){var func=isArray(collection)?arraySome:baseSome;return thisArg&&isIterateeCall(collection,predicate,thisArg)&&(predicate=null),("function"!=typeof predicate||thisArg!==undefined)&&(predicate=getCallback(predicate,thisArg,3)),func(collection,predicate)}function restParam(func,start){if("function"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);return start=nativeMax(start===undefined?func.length-1:+start||0,0),function(){for(var args=arguments,index=-1,length=nativeMax(args.length-start,0),rest=Array(length);length>++index;)rest[index]=args[start+index];switch(start){case 0:return func.call(this,rest);case 1:return func.call(this,args[0],rest);case 2:return func.call(this,args[0],args[1],rest)}var otherArgs=Array(start+1);for(index=-1;start>++index;)otherArgs[index]=args[index];return otherArgs[start]=rest,func.apply(this,otherArgs)}}function clone(value,isDeep,customizer,thisArg){return isDeep&&"boolean"!=typeof isDeep&&isIterateeCall(value,isDeep,customizer)?isDeep=!1:"function"==typeof isDeep&&(thisArg=customizer,customizer=isDeep,isDeep=!1),customizer="function"==typeof customizer&&bindCallback(customizer,thisArg,1),baseClone(value,isDeep,customizer)}function isArguments(value){var length=isObjectLike(value)?value.length:undefined;return isLength(length)&&objToString.call(value)==argsTag}function isEmpty(value){if(null==value)return!0;var length=getLength(value);return isLength(length)&&(isArray(value)||isString(value)||isArguments(value)||isObjectLike(value)&&isFunction(value.splice))?!length:!keys(value).length}function isObject(value){var type=typeof value;return"function"==type||!!value&&"object"==type}function isNative(value){return null==value?!1:objToString.call(value)==funcTag?reIsNative.test(fnToString.call(value)):isObjectLike(value)&&reIsHostCtor.test(value)}function isNumber(value){return"number"==typeof value||isObjectLike(value)&&objToString.call(value)==numberTag}function isString(value){return"string"==typeof value||isObjectLike(value)&&objToString.call(value)==stringTag}function isTypedArray(value){return isObjectLike(value)&&isLength(value.length)&&!!typedArrayTags[objToString.call(value)]}function toPlainObject(value){return baseCopy(value,keysIn(value))}function has(object,path){if(null==object)return!1;var result=hasOwnProperty.call(object,path);return result||isKey(path)||(path=toPath(path),object=1==path.length?object:baseGet(object,baseSlice(path,0,-1)),path=last(path),result=null!=object&&hasOwnProperty.call(object,path)),result}function keysIn(object){if(null==object)return[];isObject(object)||(object=Object(object));var length=object.length;length=length&&isLength(length)&&(isArray(object)||support.nonEnumArgs&&isArguments(object))&&length||0;for(var Ctor=object.constructor,index=-1,isProto="function"==typeof Ctor&&Ctor.prototype===object,result=Array(length),skipIndexes=length>0;length>++index;)result[index]=index+"";for(var key in object)skipIndexes&&isIndex(key,length)||"constructor"==key&&(isProto||!hasOwnProperty.call(object,key))||result.push(key);return result}function values(object){return baseValues(object,keys(object))}function escapeRegExp(string){return string=baseToString(string),string&&reHasRegExpChars.test(string)?string.replace(reRegExpChars,"\\\\$&"):string}function callback(func,thisArg,guard){return guard&&isIterateeCall(func,thisArg,guard)&&(thisArg=null),baseCallback(func,thisArg)}function constant(value){return function(){return value}}function identity(value){return value}function property(path){return isKey(path)?baseProperty(path):basePropertyDeep(path)}var undefined,VERSION="3.7.0",FUNC_ERROR_TEXT="Expected a function",argsTag="[object Arguments]",arrayTag="[object Array]",boolTag="[object Boolean]",dateTag="[object Date]",errorTag="[object Error]",funcTag="[object Function]",mapTag="[object Map]",numberTag="[object Number]",objectTag="[object Object]",regexpTag="[object RegExp]",setTag="[object Set]",stringTag="[object String]",weakMapTag="[object WeakMap]",arrayBufferTag="[object ArrayBuffer]",float32Tag="[object Float32Array]",float64Tag="[object Float64Array
8]",int8Tag="[object Int8Array]",int16Tag="[object Int16Array]",int32Tag="[object Int32Array]",uint8Tag="[object Uint8Array]",uint8ClampedTag="[object Uint8ClampedArray]",uint16Tag="[object Uint16Array]",uint32Tag="[object Uint32Array]",reIsDeepProp=/\\.|\\[(?:[^[\\]]+|(["\'])(?:(?!\\1)[^\\n\\\\]|\\\\.)*?)\\1\\]/,reIsPlainProp=/^\\w*$/,rePropName=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|(["\'])((?:(?!\\2)[^\\n\\\\]|\\\\.)*?)\\2)\\]/g,reRegExpChars=/[.*+?^${}()|[\\]\\/\\\\]/g,reHasRegExpChars=RegExp(reRegExpChars.source),reEscapeChar=/\\\\(\\\\)?/g,reFlags=/\\w*$/,reIsHostCtor=/^\\[object .+?Constructor\\]$/,typedArrayTags={};typedArrayTags[float32Tag]=typedArrayTags[float64Tag]=typedArrayTags[int8Tag]=typedArrayTags[int16Tag]=typedArrayTags[int32Tag]=typedArrayTags[uint8Tag]=typedArrayTags[uint8ClampedTag]=typedArrayTags[uint16Tag]=typedArrayTags[uint32Tag]=!0,typedArrayTags[argsTag]=typedArrayTags[arrayTag]=typedArrayTags[arrayBufferTag]=typedArrayTags[boolTag]=typedArrayTags[dateTag]=typedArrayTags[errorTag]=typedArrayTags[funcTag]=typedArrayTags[mapTag]=typedArrayTags[numberTag]=typedArrayTags[objectTag]=typedArrayTags[regexpTag]=typedArrayTags[setTag]=typedArrayTags[stringTag]=typedArrayTags[weakMapTag]=!1;var cloneableTags={};cloneableTags[argsTag]=cloneableTags[arrayTag]=cloneableTags[arrayBufferTag]=cloneableTags[boolTag]=cloneableTags[dateTag]=cloneableTags[float32Tag]=cloneableTags[float64Tag]=cloneableTags[int8Tag]=cloneableTags[int16Tag]=cloneableTags[int32Tag]=cloneableTags[numberTag]=cloneableTags[objectTag]=cloneableTags[regexpTag]=cloneableTags[stringTag]=cloneableTags[uint8Tag]=cloneableTags[uint8ClampedTag]=cloneableTags[uint16Tag]=cloneableTags[uint32Tag]=!0,cloneableTags[errorTag]=cloneableTags[funcTag]=cloneableTags[mapTag]=cloneableTags[setTag]=cloneableTags[weakMapTag]=!1;var objectTypes={"function":!0,object:!0},freeExports=objectTypes[typeof exports]&&exports&&!exports.nodeType&&exports,freeModule=objectTypes[typeof module]&&module&&!module.nodeType&&module,freeGlobal=freeExports&&freeModule&&"object"==typeof global&&global&&global.Object&&global,freeSelf=objectTypes[typeof self]&&self&&self.Object&&self,freeWindow=objectTypes[typeof window]&&window&&window.Object&&window,moduleExports=freeModule&&freeModule.exports===freeExports&&freeExports,root=freeGlobal||freeWindow!==(this&&this.window)&&freeWindow||freeSelf||this,arrayProto=Array.prototype,objectProto=Object.prototype,fnToString=Function.prototype.toString,hasOwnProperty=objectProto.hasOwnProperty,objToString=objectProto.toString,reIsNative=RegExp("^"+escapeRegExp(objToString).replace(/toString|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,"$1.*?")+"$"),ArrayBuffer=isNative(ArrayBuffer=root.ArrayBuffer)&&ArrayBuffer,bufferSlice=isNative(bufferSlice=ArrayBuffer&&new ArrayBuffer(0).slice)&&bufferSlice,floor=Math.floor,getOwnPropertySymbols=isNative(getOwnPropertySymbols=Object.getOwnPropertySymbols)&&getOwnPropertySymbols,getPrototypeOf=isNative(getPrototypeOf=Object.getPrototypeOf)&&getPrototypeOf,push=arrayProto.push,preventExtensions=isNative(Object.preventExtensions=Object.preventExtensions)&&preventExtensions,propertyIsEnumerable=objectProto.propertyIsEnumerable,Uint8Array=isNative(Uint8Array=root.Uint8Array)&&Uint8Array,Float64Array=function(){try{var func=isNative(func=root.Float64Array)&&func,result=new func(new ArrayBuffer(10),0,1)&&func}catch(e){}return result}(),nativeAssign=function(){var object={1:0},func=preventExtensions&&isNative(func=Object.assign)&&func;try{func(preventExtensions(object),"xo")}catch(e){}return!object[1]&&func}(),nativeIsArray=isNative(nativeIsArray=Array.isArray)&&nativeIsArray,nativeKeys=isNative(nativeKeys=Object.keys)&&nativeKeys,nativeMax=Math.max,nativeMin=Math.min,NEGATIVE_INFINITY=Number.NEGATIVE_INFINITY,MAX_ARRAY_LENGTH=Math.pow(2,32)-1,MAX_ARRAY_INDEX=MAX_ARRAY_LENGTH-1,HALF_MAX_ARRAY_LENGTH=MAX_ARRAY_LENGTH>>>1,FLOAT64_BYTES_PER_ELEMENT=Float64Array?Float64Array.BYTES_PER_ELEMENT:0,MAX_SAFE_INTEGER=Math.pow(2,53)-1,support=lodash.support={};(function(x){var Ctor=function(){this.x=x},props=[];Ctor.prototype={valueOf:x,y:x};for(var key in new Ctor)props.push(key);support.funcDecomp=/\\bthis\\b/.test(function(){return this}),support.funcNames="string"==typeof Function.name;
8try{support.nonEnumArgs=!propertyIsEnumerable.call(arguments,1)}catch(e){support.nonEnumArgs=!0}})(1,0);var baseAssign=nativeAssign||function(object,source){return null==source?object:baseCopy(source,getSymbols(source),baseCopy(source,keys(source),object))},baseEach=createBaseEach(baseForOwn),baseFor=createBaseFor();bufferSlice||(bufferClone=ArrayBuffer&&Uint8Array?function(buffer){var byteLength=buffer.byteLength,floatLength=Float64Array?floor(byteLength/FLOAT64_BYTES_PER_ELEMENT):0,offset=floatLength*FLOAT64_BYTES_PER_ELEMENT,result=new ArrayBuffer(byteLength);if(floatLength){var view=new Float64Array(result,0,floatLength);view.set(new Float64Array(buffer,0,floatLength))}return byteLength!=offset&&(view=new Uint8Array(result,offset),view.set(new Uint8Array(buffer,offset))),result}:constant(null));var getLength=baseProperty("length"),getSymbols=getOwnPropertySymbols?function(object){return getOwnPropertySymbols(toObject(object))}:constant([]),findLastIndex=createFindIndex(!0),zip=restParam(unzip),forEach=createForEach(arrayEach,baseEach),isArray=nativeIsArray||function(value){return isObjectLike(value)&&isLength(value.length)&&objToString.call(value)==arrayTag},isFunction=baseIsFunction(/x/)||Uint8Array&&!baseIsFunction(Uint8Array)?function(value){return objToString.call(value)==funcTag}:baseIsFunction,isPlainObject=getPrototypeOf?function(value){if(!value||objToString.call(value)!=objectTag)return!1;var valueOf=value.valueOf,objProto=isNative(valueOf)&&(objProto=getPrototypeOf(valueOf))&&getPrototypeOf(objProto);return objProto?value==objProto||getPrototypeOf(value)==objProto:shimIsPlainObject(value)}:shimIsPlainObject,assign=createAssigner(function(object,source,customizer){return customizer?assignWith(object,source,customizer):baseAssign(object,source)}),keys=nativeKeys?function(object){if(object)var Ctor=object.constructor,length=object.length;return"function"==typeof Ctor&&Ctor.prototype===object||"function"!=typeof object&&isLength(length)?shimKeys(object):isObject(object)?nativeKeys(object):[]}:shimKeys,merge=createAssigner(baseMerge);lodash.assign=assign,lodash.callback=callback,lodash.constant=constant,lodash.forEach=forEach,lodash.keys=keys,lodash.keysIn=keysIn,lodash.merge=merge,lodash.property=property,lodash.reject=reject,lodash.restParam=restParam,lodash.slice=slice,lodash.toPlainObject=toPlainObject,lodash.unzip=unzip,lodash.values=values,lodash.zip=zip,lodash.each=forEach,lodash.extend=assign,lodash.iteratee=callback,lodash.clone=clone,lodash.escapeRegExp=escapeRegExp,lodash.findLastIndex=findLastIndex,lodash.has=has,lodash.identity=identity,lodash.includes=includes,lodash.indexOf=indexOf,lodash.isArguments=isArguments,lodash.isArray=isArray,lodash.isEmpty=isEmpty,lodash.isFunction=isFunction,lodash.isNative=isNative,lodash.isNumber=isNumber,lodash.isObject=isObject,lodash.isPlainObject=isPlainObject,lodash.isString=isString,lodash.isTypedArray=isTypedArray,lodash.last=last,lodash.some=some,lodash.any=some,lodash.contains=includes,lodash.include=includes,lodash.VERSION=VERSION,freeExports&&freeModule?moduleExports?(freeModule.exports=lodash)._=lodash:freeExports._=lodash:root._=lodash\n}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],"/node_modules/jshint/src/jshint.js":[function(_dereq_,module,exports){var _=_dereq_("../lodash"),events=_dereq_("events"),vars=_dereq_("./vars.js"),messages=_dereq_("./messages.js"),Lexer=_dereq_("./lex.js").Lexer,reg=_dereq_("./reg.js"),state=_dereq_("./state.js").state,style=_dereq_("./style.js"),options=_dereq_("./options.js"),scopeManager=_dereq_("./scope-manager.js"),JSHINT=function(){"use strict";function checkOption(name,t){return name=name.trim(),/^[+-]W\\d{3}$/g.test(name)?!0:-1!==options.validNames.indexOf(name)||"jslint"===t.type||_.has(options.removed,name)?!0:(error("E001",t,name),!1)}function isString(obj){return"[object String]"===Object.prototype.toString.call(obj)}function isIdentifier(tkn,value){return tkn?tkn.identifier&&tkn.value===value?!0:!1:!1}function isReserved(token){if(!token.reserved)return!1;var meta=token.meta;
8if(meta&&meta.isFutureReservedWord&&state.inES5()){if(!meta.es5)return!1;if(meta.strictOnly&&!state.option.strict&&!state.isStrict())return!1;if(token.isProperty)return!1}return!0}function supplant(str,data){return str.replace(/\\{([^{}]*)\\}/g,function(a,b){var r=data[b];return"string"==typeof r||"number"==typeof r?r:a})}function combine(dest,src){Object.keys(src).forEach(function(name){_.has(JSHINT.blacklist,name)||(dest[name]=src[name])})}function processenforceall(){if(state.option.enforceall){for(var enforceopt in options.bool.enforcing)void 0!==state.option[enforceopt]||options.noenforceall[enforceopt]||(state.option[enforceopt]=!0);for(var relaxopt in options.bool.relaxing)void 0===state.option[relaxopt]&&(state.option[relaxopt]=!1)}}function assume(){processenforceall(),state.option.esversion||state.option.moz||(state.option.esversion=state.option.es3?3:state.option.esnext?6:5),state.inES5()&&combine(predefined,vars.ecmaIdentifiers[5]),state.inES6()&&combine(predefined,vars.ecmaIdentifiers[6]),state.option.module&&(state.option.strict===!0&&(state.option.strict="global"),state.inES6()||warning("W134",state.tokens.next,"module",6)),state.option.couch&&combine(predefined,vars.couch),state.option.qunit&&combine(predefined,vars.qunit),state.option.rhino&&combine(predefined,vars.rhino),state.option.shelljs&&(combine(predefined,vars.shelljs),combine(predefined,vars.node)),state.option.typed&&combine(predefined,vars.typed),state.option.phantom&&(combine(predefined,vars.phantom),state.option.strict===!0&&(state.option.strict="global")),state.option.prototypejs&&combine(predefined,vars.prototypejs),state.option.node&&(combine(predefined,vars.node),combine(predefined,vars.typed),state.option.strict===!0&&(state.option.strict="global")),state.option.devel&&combine(predefined,vars.devel),state.option.dojo&&combine(predefined,vars.dojo),state.option.browser&&(combine(predefined,vars.browser),combine(predefined,vars.typed)),state.option.browserify&&(combine(predefined,vars.browser),combine(predefined,vars.typed),combine(predefined,vars.browserify),state.option.strict===!0&&(state.option.strict="global")),state.option.nonstandard&&combine(predefined,vars.nonstandard),state.option.jasmine&&combine(predefined,vars.jasmine),state.option.jquery&&combine(predefined,vars.jquery),state.option.mootools&&combine(predefined,vars.mootools),state.option.worker&&combine(predefined,vars.worker),state.option.wsh&&combine(predefined,vars.wsh),state.option.globalstrict&&state.option.strict!==!1&&(state.option.strict="global"),state.option.yui&&combine(predefined,vars.yui),state.option.mocha&&combine(predefined,vars.mocha)}function quit(code,line,chr){var percentage=Math.floor(100*(line/state.lines.length)),message=messages.errors[code].desc;throw{name:"JSHintError",line:line,character:chr,message:message+" ("+percentage+"% scanned).",raw:message,code:code}}function removeIgnoredMessages(){var ignored=state.ignoredLines;_.isEmpty(ignored)||(JSHINT.errors=_.reject(JSHINT.errors,function(err){return ignored[err.line]}))}function warning(code,t,a,b,c,d){var ch,l,w,msg;if(/^W\\d{3}$/.test(code)){if(state.ignored[code])return;msg=messages.warnings[code]}else/E\\d{3}/.test(code)?msg=messages.errors[code]:/I\\d{3}/.test(code)&&(msg=messages.info[code]);return t=t||state.tokens.next||{},"(end)"===t.id&&(t=state.tokens.curr),l=t.line||0,ch=t.from||0,w={id:"(error)",raw:msg.desc,code:msg.code,evidence:state.lines[l-1]||"",line:l,character:ch,scope:JSHINT.scope,a:a,b:b,c:c,d:d},w.reason=supplant(msg.desc,w),JSHINT.errors.push(w),removeIgnoredMessages(),JSHINT.errors.length>=state.option.maxerr&&quit("E043",l,ch),w}function warningAt(m,l,ch,a,b,c,d){return warning(m,{line:l,from:ch},a,b,c,d)}function error(m,t,a,b,c,d){warning(m,t,a,b,c,d)}function errorAt(m,l,ch,a,b,c,d){return error(m,{line:l,from:ch},a,b,c,d)}function addInternalSrc(elem,src){var i;return i={id:"(internal)",elem:elem,value:src},JSHINT.internals.push(i),i}function doOption(){var nt=state.tokens.next,body=nt.body.match(/(-\\s+)?[^\\s,:]+(?:\\s*:\\s*(-\\s+)?[^\\s,]+)?/g)||[],predef={};if("globals"===nt.type){body.forEach(function(g,idx){g=g.split(":");var key=(g[0]||"").trim(),val=(g[1]||"").trim();if("-"===key||!key.length){if(idx>0&&idx===body.length-1)return;return error("E002",nt),void 0}"-"===key.charAt(0)?(key=key.slice(1),val=!1,JSHINT.blacklist[key]=key,delete predefined[key]):predef[key]="true"===val}),combine(predefined,predef);
8for(var key in predef)_.has(predef,key)&&(declared[key]=nt)}"exported"===nt.type&&body.forEach(function(e,idx){if(!e.length){if(idx>0&&idx===body.length-1)return;return error("E002",nt),void 0}state.funct["(scope)"].addExported(e)}),"members"===nt.type&&(membersOnly=membersOnly||{},body.forEach(function(m){var ch1=m.charAt(0),ch2=m.charAt(m.length-1);ch1!==ch2||\'"\'!==ch1&&"\'"!==ch1||(m=m.substr(1,m.length-2).replace(\'\\\\"\',\'"\')),membersOnly[m]=!1}));var numvals=["maxstatements","maxparams","maxdepth","maxcomplexity","maxerr","maxlen","indent"];("jshint"===nt.type||"jslint"===nt.type)&&(body.forEach(function(g){g=g.split(":");var key=(g[0]||"").trim(),val=(g[1]||"").trim();if(checkOption(key,nt))if(numvals.indexOf(key)>=0)if("false"!==val){if(val=+val,"number"!=typeof val||!isFinite(val)||0>=val||Math.floor(val)!==val)return error("E032",nt,g[1].trim()),void 0;state.option[key]=val}else state.option[key]="indent"===key?4:!1;else{if("validthis"===key)return state.funct["(global)"]?void error("E009"):"true"!==val&&"false"!==val?void error("E002",nt):(state.option.validthis="true"===val,void 0);if("quotmark"!==key)if("shadow"!==key)if("unused"!==key)if("latedef"!==key)if("ignore"!==key)if("strict"!==key){"module"===key&&(hasParsedCode(state.funct)||error("E055",state.tokens.next,"module"));var esversions={es3:3,es5:5,esnext:6};if(!_.has(esversions,key)){if("esversion"===key){switch(val){case"5":state.inES5(!0)&&warning("I003");case"3":case"6":state.option.moz=!1,state.option.esversion=+val;break;case"2015":state.option.moz=!1,state.option.esversion=6;break;default:error("E002",nt)}
8return hasParsedCode(state.funct)||error("E055",state.tokens.next,"esversion"),void 0}var match=/^([+-])(W\\d{3})$/g.exec(key);if(match)return state.ignored[match[2]]="-"===match[1],void 0;var tn;return"true"===val||"false"===val?("jslint"===nt.type?(tn=options.renamed[key]||key,state.option[tn]="true"===val,void 0!==options.inverted[tn]&&(state.option[tn]=!state.option[tn])):state.option[key]="true"===val,"newcap"===key&&(state.option["(explicitNewcap)"]=!0),void 0):(error("E002",nt),void 0)}switch(val){case"true":state.option.moz=!1,state.option.esversion=esversions[key];break;case"false":state.option.moz||(state.option.esversion=5);break;default:error("E002",nt)}}else switch(val){case"true":state.option.strict=!0;break;case"false":state.option.strict=!1;break;case"func":case"global":case"implied":state.option.strict=val;break;default:error("E002",nt)}else switch(val){case"line":state.ignoredLines[nt.line]=!0,removeIgnoredMessages();break;default:error("E002",nt)}else switch(val){case"true":state.option.latedef=!0;break;case"false":state.option.latedef=!1;break;case"nofunc":state.option.latedef="nofunc";break;default:error("E002",nt)}
8else switch(val){case"true":state.option.unused=!0;break;case"false":state.option.unused=!1;break;case"vars":case"strict":state.option.unused=val;break;default:error("E002",nt)}else switch(val){case"true":state.option.shadow=!0;break;case"outer":state.option.shadow="outer";break;case"false":case"inner":state.option.shadow="inner";break;default:error("E002",nt)}else switch(val){case"true":case"false":state.option.quotmark="true"===val;break;case"double":case"single":state.option.quotmark=val;break;default:error("E002",nt)}}}),assume())}function peek(p){var t,i=p||0,j=lookahead.length;if(j>i)return lookahead[i];for(;i>=j;)t=lookahead[j],t||(t=lookahead[j]=lex.token()),j+=1;return t||"(end)"!==state.tokens.next.id?t:state.tokens.next}function peekIgnoreEOL(){var t,i=0;do t=peek(i++);while("(endline)"===t.id);return t}function advance(id,t){switch(state.tokens.curr.id){case"(number)":"."===state.tokens.next.id&&warning("W005",state.tokens.curr);break;case"-":("-"===state.tokens.next.id||"--"===state.tokens.next.id)&&warning("W006");break;case"+":("+"===state.tokens.next.id||"++"===state.tokens.next.id)&&warning("W007")}for(id&&state.tokens.next.id!==id&&(t?"(end)"===state.tokens.next.id?error("E019",t,t.id):error("E020",state.tokens.next,id,t.id,t.line,state.tokens.next.value):("(identifier)"!==state.tokens.next.type||state.tokens.next.value!==id)&&warning("W116",state.tokens.next,id,state.tokens.next.value)),state.tokens.prev=state.tokens.curr,state.tokens.curr=state.tokens.next;;){if(state.tokens.next=lookahead.shift()||lex.token(),state.tokens.next||quit("E041",state.tokens.curr.line),"(end)"===state.tokens.next.id||"(error)"===state.tokens.next.id)return;if(state.tokens.next.check&&state.tokens.next.check(),state.tokens.next.isSpecial)"falls through"===state.tokens.next.type?state.tokens.curr.caseFallsThrough=!0:doOption();else if("(endline)"!==state.tokens.next.id)break}}function isInfix(token){return token.infix||!token.identifier&&!token.template&&!!token.led}function isEndOfExpr(){var curr=state.tokens.curr,next=state.tokens.next;return";"===next.id||"}"===next.id||":"===next.id?!0:isInfix(next)===isInfix(curr)||"yield"===curr.id&&state.inMoz()?curr.line!==startLine(next):!1}function isBeginOfExpr(prev){return!prev.left&&"unary"!==prev.arity}function expression(rbp,initial){var left,isArray=!1,isObject=!1,isLetExpr=!1;state.nameStack.push(),initial||"let"!==state.tokens.next.value||"("!==peek(0).value||(state.inMoz()||warning("W118",state.tokens.next,"let expressions"),isLetExpr=!0,state.funct["(scope)"].stack(),advance("let"),advance("("),state.tokens.prev.fud(),advance(")")),"(end)"===state.tokens.next.id&&error("E006",state.tokens.curr);var isDangerous=state.option.asi&&state.tokens.prev.line!==startLine(state.tokens.curr)&&_.contains(["]",")"],state.tokens.prev.id)&&_.contains(["[","("],state.tokens.curr.id);if(isDangerous&&warning("W014",state.tokens.curr,state.tokens.curr.id),advance(),initial&&(state.funct["(verb)"]=state.tokens.curr.value,state.tokens.curr.beginsStmt=!0),initial===!0&&state.tokens.curr.fud)left=state.tokens.curr.fud();else for(state.tokens.curr.nud?left=state.tokens.curr.nud():error("E030",state.tokens.curr,state.tokens.curr.id);(state.tokens.next.lbp>rbp||"(template)"===state.tokens.next.type)&&!isEndOfExpr();)isArray="Array"===state.tokens.curr.value,isObject="Object"===state.tokens.curr.value,left&&(left.value||left.first&&left.first.value)&&("new"!==left.value||left.first&&left.first.value&&"."===left.first.value)&&(isArray=!1,left.value!==state.tokens.curr.value&&(isObject=!1)),advance(),isArray&&"("===state.tokens.curr.id&&")"===state.tokens.next.id&&warning("W009",state.tokens.curr),isObject&&"("===state.tokens.curr.id&&")"===state.tokens.next.id&&warning("W010",state.tokens.curr),left&&state.tokens.curr.led?left=state.tokens.curr.led(left):error("E033",state.tokens.curr,state.tokens.curr.id);return isLetExpr&&state.funct["(scope)"].unstack(),state.nameStack.pop(),left}function startLine(token){return token.startLine||token.line}function nobreaknonadjacent(left,right){left=left||state.tokens.curr,right=right||state.tokens.next,
8state.option.laxbreak||left.line===startLine(right)||warning("W014",right,right.value)}function nolinebreak(t){t=t||state.tokens.curr,t.line!==startLine(state.tokens.next)&&warning("E022",t,t.value)}function nobreakcomma(left,right){left.line!==startLine(right)&&(state.option.laxcomma||(comma.first&&(warning("I001"),comma.first=!1),warning("W014",left,right.value)))}function comma(opts){if(opts=opts||{},opts.peek?nobreakcomma(state.tokens.prev,state.tokens.curr):(nobreakcomma(state.tokens.curr,state.tokens.next),advance(",")),state.tokens.next.identifier&&(!opts.property||!state.inES5()))switch(state.tokens.next.value){case"break":case"case":case"catch":case"continue":case"default":case"do":case"else":case"finally":case"for":case"if":case"in":case"instanceof":case"return":case"switch":case"throw":case"try":case"var":case"let":case"while":case"with":return error("E024",state.tokens.next,state.tokens.next.value),!1}if("(punctuator)"===state.tokens.next.type)switch(state.tokens.next.value){case"}":case"]":case",":if(opts.allowTrailing)return!0;case")":return error("E024",state.tokens.next,state.tokens.next.value),!1}return!0}function symbol(s,p){var x=state.syntax[s];return x&&"object"==typeof x||(state.syntax[s]=x={id:s,lbp:p,value:s}),x}function delim(s){var x=symbol(s,0);return x.delim=!0,x}function stmt(s,f){var x=delim(s);return x.identifier=x.reserved=!0,x.fud=f,x}function blockstmt(s,f){var x=stmt(s,f);return x.block=!0,x}function reserveName(x){var c=x.id.charAt(0);return(c>="a"&&"z">=c||c>="A"&&"Z">=c)&&(x.identifier=x.reserved=!0),x}function prefix(s,f){var x=symbol(s,150);return reserveName(x),x.nud="function"==typeof f?f:function(){return this.arity="unary",this.right=expression(150),("++"===this.id||"--"===this.id)&&(state.option.plusplus?warning("W016",this,this.id):!this.right||this.right.identifier&&!isReserved(this.right)||"."===this.right.id||"["===this.right.id||warning("W017",this),this.right&&this.right.isMetaProperty?error("E031",this):this.right&&this.right.identifier&&state.funct["(scope)"].block.modify(this.right.value,this)),this},x}function type(s,f){var x=delim(s);return x.type=s,x.nud=f,x}function reserve(name,func){var x=type(name,func);return x.identifier=!0,x.reserved=!0,x}function FutureReservedWord(name,meta){var x=type(name,meta&&meta.nud||function(){return this});return meta=meta||{},meta.isFutureReservedWord=!0,x.value=name,x.identifier=!0,x.reserved=!0,x.meta=meta,x}function reservevar(s,v){return reserve(s,function(){return"function"==typeof v&&v(this),this})}function infix(s,f,p,w){var x=symbol(s,p);return reserveName(x),x.infix=!0,x.led=function(left){return w||nobreaknonadjacent(state.tokens.prev,state.tokens.curr),"in"!==s&&"instanceof"!==s||"!"!==left.id||warning("W018",left,"!"),"function"==typeof f?f(left,this):(this.left=left,this.right=expression(p),this)},x}function application(s){var x=symbol(s,42);return x.led=function(left){return nobreaknonadjacent(state.tokens.prev,state.tokens.curr),this.left=left,this.right=doFunction({type:"arrow",loneArg:left}),this},x}function relation(s,f){var x=symbol(s,100);return x.led=function(left){nobreaknonadjacent(state.tokens.prev,state.tokens.curr),this.left=left;var right=this.right=expression(100);return isIdentifier(left,"NaN")||isIdentifier(right,"NaN")?warning("W019",this):f&&f.apply(this,[left,right]),left&&right||quit("E041",state.tokens.curr.line),"!"===left.id&&warning("W018",left,"!"),"!"===right.id&&warning("W018",right,"!"),this},x}function isPoorRelation(node){return node&&("(number)"===node.type&&0===+node.value||"(string)"===node.type&&""===node.value||"null"===node.type&&!state.option.eqnull||"true"===node.type||"false"===node.type||"undefined"===node.type)}function isTypoTypeof(left,right,state){var values;return state.option.notypeof?!1:left&&right?(values=state.inES6()?typeofValues.es6:typeofValues.es3,"(identifier)"===right.type&&"typeof"===right.value&&"(string)"===left.type?!_.contains(values,left.value):!1):!1}function isGlobalEval(left,state){var isGlobal=!1;return"this"===left.type&&null===state.funct["(context)"]?isGlobal=!0:"(identifier)"===left.type&&(state.option.node&&"global"===left.value?isGlobal=!0:!state.o
8ption.browser||"window"!==left.value&&"document"!==left.value||(isGlobal=!0)),isGlobal}function findNativePrototype(left){function walkPrototype(obj){return"object"==typeof obj?"prototype"===obj.right?obj:walkPrototype(obj.left):void 0}function walkNative(obj){for(;!obj.identifier&&"object"==typeof obj.left;)obj=obj.left;return obj.identifier&&natives.indexOf(obj.value)>=0?obj.value:void 0}var natives=["Array","ArrayBuffer","Boolean","Collator","DataView","Date","DateTimeFormat","Error","EvalError","Float32Array","Float64Array","Function","Infinity","Intl","Int16Array","Int32Array","Int8Array","Iterator","Number","NumberFormat","Object","RangeError","ReferenceError","RegExp","StopIteration","String","SyntaxError","TypeError","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray","URIError"],prototype=walkPrototype(left);return prototype?walkNative(prototype):void 0}function checkLeftSideAssign(left,assignToken,options){var allowDestructuring=options&&options.allowDestructuring;if(assignToken=assignToken||left,state.option.freeze){var nativeObject=findNativePrototype(left);nativeObject&&warning("W121",left,nativeObject)}return left.identifier&&!left.isMetaProperty&&state.funct["(scope)"].block.reassign(left.value,left),"."===left.id?((!left.left||"arguments"===left.left.value&&!state.isStrict())&&warning("E031",assignToken),state.nameStack.set(state.tokens.prev),!0):"{"===left.id||"["===left.id?(allowDestructuring&&state.tokens.curr.left.destructAssign?state.tokens.curr.left.destructAssign.forEac
8h(function(t){t.id&&state.funct["(scope)"].block.modify(t.id,t.token)}):"{"!==left.id&&left.left?"arguments"!==left.left.value||state.isStrict()||warning("E031",assignToken):warning("E031",assignToken),"["===left.id&&state.nameStack.set(left.right),!0):left.isMetaProperty?(error("E031",assignToken),!0):left.identifier&&!isReserved(left)?("exception"===state.funct["(scope)"].labeltype(left.value)&&warning("W022",left),state.nameStack.set(left),!0):(left===state.syntax["function"]&&warning("W023",state.tokens.curr),!1)}function assignop(s,f,p){var x=infix(s,"function"==typeof f?f:function(left,that){return that.left=left,left&&checkLeftSideAssign(left,that,{allowDestructuring:!0})?(that.right=expression(10),that):(error("E031",that),void 0)},p);return x.exps=!0,x.assign=!0,x}function bitwise(s,f,p){var x=symbol(s,p);return reserveName(x),x.led="function"==typeof f?f:function(left){return state.option.bitwise&&warning("W016",this,this.id),this.left=left,this.right=expression(p),this},x}function bitwiseassignop(s){return assignop(s,function(left,that){return state.option.bitwise&&warning("W016",that,that.id),left&&checkLeftSideAssign(left,that)?(that.right=expression(10),that):(error("E031",that),void 0)},20)}function suffix(s){var x=symbol(s,150);return x.led=function(left){return state.option.plusplus?warning("W016",this,this.id):left.identifier&&!isReserved(left)||"."===left.id||"["===left.id||warning("W017",this),left.isMetaProperty?error("E031",this):left&&left.identifier&&state.funct["(scope)"].block.modify(left.value,left),this.left=left,this},x}function optionalidentifier(fnparam,prop,preserve){if(state.tokens.next.identifier){preserve||advance();var curr=state.tokens.curr,val=state.tokens.curr.value;return isReserved(curr)?prop&&state.inES5()?val:fnparam&&"undefined"===val?val:(warning("W024",state.tokens.curr,state.tokens.curr.id),val):val}}function identifier(fnparam,prop){var i=optionalidentifier(fnparam,prop,!1);if(i)return i;if("..."===state.tokens.next.value){if(state.inES6(!0)||warning("W119",state.tokens.next,"spread/rest operator","6"),advance(),checkPunctuator(state.tokens.next,"..."))for(warning("E024",state.tokens.next,"...");checkPunctuator(state.tokens.next,"...");)advance();return state.tokens.next.identifier?identifier(fnparam,prop):(warning("E024",state.tokens.curr,"..."),void 0)}error("E030",state.tokens.next,state.tokens.next.value),";"!==state.tokens.next.id&&advance()}function reachable(controlToken){var t,i=0;if(";"===state.tokens.next.id&&!controlToken.inBracelessBlock)for(;;){do t=peek(i),i+=1;while("(end)"!==t.id&&"(comment)"===t.id);if(t.reach)return;if("(endline)"!==t.id){if("function"===t.id){state.option.latedef===!0&&warning("W026",t);break}warning("W027",t,t.value,controlToken.value);break}}}function parseFinalSemicolon(){if(";"!==state.tokens.next.id){if(state.tokens.next.isUnclosed)return advance();var sameLine=startLine(state.tokens.next)===state.tokens.curr.line&&"(end)"!==state.tokens.next.id,blockEnd=checkPunctuator(state.tokens.next,"}");sameLine&&!blockEnd?errorAt("E058",state.tokens.curr.line,state.tokens.curr.character):state.option.asi||(blockEnd&&!state.option.lastsemic||!sameLine)&&warningAt("W033",state.tokens.curr.line,state.tokens.curr.character)}else advance(";")}function statement(){var r,i=indent,t=state.tokens.next,hasOwnScope=!1;if(";"===t.id)return advance(";"),void 0;var res=isReserved(t);if(res&&t.meta&&t.meta.isFutureReservedWord&&":"===peek().id&&(warning("W024",t,t.id),res=!1),t.identifier&&!res&&":"===peek().id&&(advance(),advance(":"),hasOwnScope=!0,state.funct["(scope)"].stack(),state.funct["(scope)"].block.addBreakLabel(t.value,{token:state.tokens.curr}),state.tokens.next.labelled||"{"===state.tokens.next.value||warning("W028",state.tokens.next,t.value,state.tokens.next.value),state.tokens.next.label=t.value,t=state.tokens.next),"{"===t.id){var iscase="case"===state.funct["(verb)"]&&":"===state.tokens.curr.value;return block(!0,!0,!1,!1,iscase),void 0}return r=expression(0,!0),!r||r.identifier&&"function"===r.value||"(punctuator)"===r.type&&r.left&&r.left.identifier&&"function"===r.left.value||state.isStrict()||"global"!==state.o
8ption.strict||warning("E007"),t.block||(state.option.expr||r&&r.exps?state.option.nonew&&r&&r.left&&"("===r.id&&"new"===r.left.id&&warning("W031",t):warning("W030",state.tokens.curr),parseFinalSemicolon()),indent=i,hasOwnScope&&state.funct["(scope)"].unstack(),r}function statements(){for(var p,a=[];!state.tokens.next.reach&&"(end)"!==state.tokens.next.id;)";"===state.tokens.next.id?(p=peek(),(!p||"("!==p.id&&"["!==p.id)&&warning("W032"),advance(";")):a.push(statement());return a}function directives(){for(var i,p,pn;"(string)"===state.tokens.next.id;){if(p=peek(0),"(endline)"===p.id){i=1;do pn=peek(i++);while("(endline)"===pn.id);if(";"===pn.id)p=pn;else{if("["===pn.value||"."===pn.value)break;state.option.asi&&"("!==pn.value||warning("W033",state.tokens.next)}}else{if("."===p.id||"["===p.id)break;";"!==p.id&&warning("W033",p)}advance();var directive=state.tokens.curr.value;(state.directive[directive]||"use strict"===directive&&"implied"===state.option.strict)&&warning("W034",state.tokens.curr,directive),state.directive[directive]=!0,";"===p.id&&advance(";")}state.isStrict()&&(state.option["(explicitNewcap)"]||(state.option.newcap=!0),state.option.undef=!0)}function block(ordinary,stmt,isfunc,isfatarrow,iscase){var a,m,t,line,d,b=inblock,old_indent=indent;inblock=ordinary,t=state.tokens.next;var metrics=state.funct["(metrics)"];if(metrics.nestedBlockDepth+=1,metrics.verifyMaxNestedBlockDepthPerFunction(),"{"===state.tokens.next.id){if(advance("{"),state.funct["(scope)"].stack(),line=state.tokens.curr.line,"}"!==state.tokens.next.id){for(indent+=state.option.indent;!ordinary&&state.tokens.next.from>indent;)indent+=state.option.indent;if(isfunc){m={};for(d in state.directive)_.has(state.directive,d)&&(m[d]=state.directive[d]);directives(),state.option.strict&&state.funct["(context)"]["(global)"]&&(m["use strict"]||state.isStrict()||warning("E007"))}a=statements(),metrics.statementCount+=a.length,indent-=state.option.indent}advance("}",t),isfunc&&(state.funct["(scope)"].validateParams(),m&&(state.directive=m)),state.funct["(scope)"].unstack(),indent=old_indent}else if(ordinary)state.funct["(noblockscopedvar)"]="for"!==state.tokens.next.id,state.funct["(scope)"].stack(),(!stmt||state.option.curly)&&warning("W116",state.tokens.next,"{",state.tokens.next.value),state.tokens.next.inBracelessBlock=!0,indent+=state.option.indent,a=[statement()],indent-=state.option.indent,state.funct["(scope)"].unstack(),delete state.funct["(noblockscopedvar)"];else if(isfunc){if(state.funct["(scope)"].stack(),m={},!stmt||isfatarrow||state.inMoz()||error("W118",state.tokens.curr,"function closure expressions"),!stmt)for(d in state.directive)_.has(state.directive,d)&&(m[d]=state.directive[d]);expression(10),state.option.strict&&state.funct["(context)"]["(global)"]&&(m["use strict"]||state.isStrict()||warning("E007")),state.funct["(scope)"].unstack()}else error("E021",state.tokens.next,"{",state.tokens.next.value);switch(state.funct["(verb)"]){case"break":case"continue":case"return":case"throw":if(iscase)break;default:state.funct["(verb)"]=null}return inblock=b,!ordinary||!state.option.noempty||a&&0!==a.length||warning("W035",state.tokens.prev),metrics.nestedBlockDepth-=1,a}function countMember(m){membersOnly&&"boolean"!=typeof membersOnly[m]&&warning("W036",state.tokens.curr,m),"number"==typeof member[m]?member[m]+=1:member[m]=1}function comprehensiveArrayExpression(){var res={};res.exps=!0,state.funct["(comparray)"].stack();var reversed=!1;return"for"!==state.tokens.next.value&&(reversed=!0,state.inMoz()||warning("W116",state.tokens.next,"for",state.tokens.next.value),state.funct["(comparray)"].setState("use"),res.right=expression(10)),advance("for"),"each"===state.tokens.next.value&&(advance("each"),state.inMoz()||warning("W118",state.tokens.curr,"for each")),advance("("),state.funct["(comparray)"].setState("define"),res.left=expression(130),_.contains(["in","of"],state.tokens.next.value)?advance():error("E045",state.tokens.curr),state.funct["(comparray)"].setState("generate"),expression(10),advance(")"),"if"===state.tokens.next.value&&(advance("if"),advance("("),state.funct["(comparray)"].setState("filter"),res.filter=expression(10),advance(")")),reversed||(state.funct["(comparray)"].setState("use"),res.right=expression(10)),advance("]"),state.funct["(comparray)"].unstack(),res}function isMethod(){return state.funct["(statement)"]&&"class"===state.funct["(statement)"].type||state.funct["(context)"]&&"class"===state.funct["(context)"]["(verb)"]}function isPropertyName(token){return token.identifier||"(string)"===token.id||"(number)"===token.id}function propertyName(preserveOrToken){var id,preserve=!0;return"object"==typeof preserveOrToken?id=preserveOrToken:(preserve=preserveOrToken,id=optionalidentifier(!1,!0,preserve)),id?"object"==typeof id&&("(string)"===id.id||"(identifier)"===id.id?id=id.value:"(number)"===id.id&&(id=""+id.value)):"(string)"===state.tokens.next.id?(id=state.tokens.next.value,preserve||advance()):"(number)"===state.tokens.next.id&&(id=""+state.tokens.next.value,preserve||advance()),"hasOwnProperty"===id&&warning("W001"),id}function functionparams(options){function addParam(addParamArgs){state.funct["(scope)"].addParam.apply(state.funct["(scope)"],addParamArgs)}var next,ident,t,paramsIds=[],tokens=[],pastDefault=!1,pastRest=!1,arity=0,loneArg=options&&options.loneArg;if(loneArg&&loneArg.identifier===!0)return state.funct["(scope)"].addParam(loneArg.value,loneArg),{arity:1,params:[loneArg.value]};if(next=state.tokens.next,options&&options.parsedOpening||advance("("),")"===state.tokens.next.id)return advance(")"),void 0;for(;;){arity++;
8var currentParams=[];if(_.contains(["{","["],state.tokens.next.id)){tokens=destructuringPattern();for(t in tokens)t=tokens[t],t.id&&(paramsIds.push(t.id),currentParams.push([t.id,t.token]))}else if(checkPunctuator(state.tokens.next,"...")&&(pastRest=!0),ident=identifier(!0))paramsIds.push(ident),currentParams.push([ident,state.tokens.curr]);else for(;!checkPunctuators(state.tokens.next,[",",")"]);)advance();if(pastDefault&&"="!==state.tokens.next.id&&error("W138",state.tokens.current),"="===state.tokens.next.id&&(state.inES6()||warning("W119",state.tokens.next,"default parameters","6"),advance("="),pastDefault=!0,expression(10)),currentParams.forEach(addParam),","!==state.tokens.next.id)return advance(")",next),{arity:arity,params:paramsIds};pastRest&&warning("W131",state.tokens.next),comma()}}function functor(name,token,overwrites){var funct={"(name)":name,"(breakage)":0,"(loopage)":0,"(tokens)":{},"(properties)":{},"(catch)":!1,"(global)":!1,"(line)":null,"(character)":null,"(metrics)":null,"(statement)":null,"(context)":null,"(scope)":null,"(comparray)":null,"(generator)":null,"(arrow)":null,"(params)":null};return token&&_.extend(funct,{"(line)":token.line,"(character)":token.character,"(metrics)":createMetrics(token)}),_.extend(funct,overwrites),funct["(context)"]&&(funct["(scope)"]=funct["(context)"]["(scope)"],funct["(comparray)"]=funct["(context)"]["(comparray)"]),funct}function isFunctor(token){return"(scope)"in token}function hasParsedCode(funct){return funct["(global)"]&&!funct["(verb)"]}function doTemplateLiteral(left){function end(){if(state.tokens.curr.template&&state.tokens.curr.tail&&state.tokens.curr.context===ctx)return!0;var complete=state.tokens.next.template&&state.tokens.next.tail&&state.tokens.next.context===ctx;return complete&&advance(),complete||state.tokens.next.isUnclosed}var ctx=this.context,noSubst=this.noSubst,depth=this.depth;if(!noSubst)for(;!end();)!state.tokens.next.template||state.tokens.next.depth>depth?expression(0):advance();return{id:"(template)",type:"(template)",tag:left}}function doFunction(options){var f,token,name,statement,classExprBinding,isGenerator,isArrow,ignoreLoopFunc,oldOption=state.o
8ption,oldIgnored=state.ignored;options&&(name=options.name,statement=options.statement,classExprBinding=options.classExprBinding,isGenerator="generator"===options.type,isArrow="arrow"===options.type,ignoreLoopFunc=options.ignoreLoopFunc),state.option=Object.create(state.option),state.ignored=Object.create(state.ignored),state.funct=functor(name||state.nameStack.infer(),state.tokens.next,{"(statement)":statement,"(context)":state.funct,"(arrow)":isArrow,"(generator)":isGenerator}),f=state.funct,token=state.tokens.curr,token.funct=state.funct,functions.push(state.funct),state.funct["(scope)"].stack("functionouter");var internallyAccessibleName=name||classExprBinding;internallyAccessibleName&&state.funct["(scope)"].block.add(internallyAccessibleName,classExprBinding?"class":"function",state.tokens.curr,!1),state.funct["(scope)"].stack("functionparams");var paramsInfo=functionparams(options);return paramsInfo?(state.funct["(params)"]=paramsInfo.params,state.funct["(metrics)"].arity=paramsInfo.arity,state.funct["(metrics)"].verifyMaxParametersPerFunction()):state.funct["(metrics)"].arity=0,isArrow&&(state.inES6(!0)||warning("W119",state.tokens.curr,"arrow function syntax (=>)","6"),options.loneArg||advance("=>
8")),block(!1,!0,!0,isArrow),!state.option.noyield&&isGenerator&&"yielded"!==state.funct["(generator)"]&&warning("W124",state.tokens.curr),state.funct["(metrics)"].verifyMaxStatementsPerFunction(),state.funct["(metrics)"].verifyMaxComplexityPerFunction(),state.funct["(unusedOption)"]=state.option.unused,state.option=oldOption,state.ignored=oldIgnored,state.funct["(last)"]=state.tokens.curr.line,state.funct["(lastcharacter)"]=state.tokens.curr.character,state.funct["(scope)"].unstack(),state.funct["(scope)"].unstack(),state.funct=state.funct["(context)"],ignoreLoopFunc||state.option.loopfunc||!state.funct["(loopage)"]||f["(isCapturing)"]&&warning("W083",token),f}function createMetrics(functionStartToken){return{statementCount:0,nestedBlockDepth:-1,ComplexityCount:1,arity:0,verifyMaxStatementsPerFunction:function(){state.option.maxstatements&&this.statementCount>state.option.maxstatements&&warning("W071",functionStartToken,this.statementCount)\n},verifyMaxParametersPerFunction:function(){_.isNumber(state.option.maxparams)&&this.arity>state.option.maxparams&&warning("W072",functionStartToken,this.arity)},verifyMaxNestedBlockDepthPerFunction:function(){state.option.maxdepth&&this.nestedBlockDepth>0&&this.nestedBlockDepth===state.option.maxdepth+1&&warning("W073",null,this.nestedBlockDepth)},verifyMaxComplexityPerFunction:function(){var max=state.option.maxcomplexity,cc=this.ComplexityCount;max&&cc>max&&warning("W074",functionStartToken,cc)}}}function increaseComplexityCount(){state.funct["(metrics)"].ComplexityCount+=1}function checkCondAssignment(expr){var id,paren;
8switch(expr&&(id=expr.id,paren=expr.paren,","===id&&(expr=expr.exprs[expr.exprs.length-1])&&(id=expr.id,paren=paren||expr.paren)),id){case"=":case"+=":case"-=":case"*=":case"%=":case"&=":case"|=":case"^=":case"/=":paren||state.option.boss||warning("W084")}}function checkProperties(props){if(state.inES5())for(var name in props)props[name]&&props[name].setterToken&&!props[name].getterToken&&warning("W078",props[name].setterToken)}function metaProperty(name,c){if(checkPunctuator(state.tokens.next,".")){var left=state.tokens.curr.id;advance(".");var id=identifier();return state.tokens.curr.isMetaProperty=!0,name!==id?error("E057",state.tokens.prev,left,id):c(),state.tokens.curr}}function destructuringPattern(options){var isAssignment=options&&options.assignment;return state.inES6()||warning("W104",state.tokens.curr,isAssignment?"destructuring assignment":"destructuring binding","6"),destructuringPatternRecursive(options)}function destructuringPatternRecursive(options){var ids,identifiers=[],openingParsed=options&&options.openingParsed,isAssignment=options&&options.assignment,recursiveOptions=isAssignment?{assignment:isAssignment}:null,firstToken=openingParsed?state.tokens.curr:state.tokens.next,nextInnerDE=function(){var ident;if(checkPunctuators(state.tokens.next,["[","{"])){ids=destructuringPatternRecursive(recursiveOptions);for(var id in ids)id=ids[id],identifiers.push({id:id.id,token:id.token})}else if(checkPunctuator(state.tokens.next,","))identifiers.push({id:null,token:state.tokens.curr});else{if(!checkPunctuator(state.tokens.next,"(")){var is_rest=checkPunctuator(state.tokens.next,"...");if(isAssignment){var identifierToken=is_rest?peek(0):state.tokens.next;identifierToken.identifier||warning("E030",identifierToken,identifierToken.value);var assignTarget=expression(155);assignTarget&&(checkLeftSideAssign(assignTarget),assignTarget.identifier&&(ident=assignTarget.value))}else ident=identifier();return ident&&identifiers.push({id:ident,token:state.tokens.curr}),is_rest}advance("("),nextInnerDE(),advance(")")}return!1},assignmentProperty=function(){var id;checkPunctuator(state.tokens.next,"[")?(advance("["),expression(10),advance("]"),advance(":"),nextInnerDE()):"(string)"===state.tokens.next.id||"(number)"===state.tokens.next.id?(advance(),advance(":"),nextInnerDE()):(id=identifier(),checkPunctuator(state.tokens.next,":")?(advance(":"),nextInnerDE()):id&&(isAssignment&&checkLeftSideAssign(state.tokens.curr),identifiers.push({id:id,token:state.tokens.curr})))};if(checkPunctuator(firstToken,"[")){openingParsed||advance("["),checkPunctuator(state.tokens.next,"]")&&warning("W137",state.tokens.curr);for(var element_after_rest=!1;!checkPunctuator(state.tokens.next,"]");)nextInnerDE()&&!element_after_rest&&checkPunctuator(state.tokens.next,",")&&(warning("W130",state.tokens.next),element_after_rest=!0),checkPunctuator(state.tokens.next,"=")&&(checkPunctuator(state.tokens.prev,"...")?advance("]"):advance("="),"undefined"===state.tokens.next.id&&warning("W080",state.tokens.prev,state.tokens.prev.value),expression(10)),checkPunctuator(state.tokens.next,"]")||advance(",");advance("]")}else if(checkPunctuator(firstToken,"{")){for(openingParsed||advance("{"),checkPunctuator(state.tokens.next,"}")&&warning("W137",state.tokens.curr);!checkPunctuator(state.tokens.next,"}")&&(assignmentProperty(),checkPunctuator(state.tokens.next,"=")&&(advance("="),"undefined"===state.tokens.next.id&&warning("W080",state.tokens.prev,state.tokens.prev.value),expression(10)),checkPunctuator(state.tokens.next,"}")||(advance(","),!checkPunctuator(state.tokens.next,"}"))););advance("}")}return identifiers}function destructuringPatternMatch(tokens,value){var first=value.first;
8first&&_.zip(tokens,Array.isArray(first)?first:[first]).forEach(function(val){var token=val[0],value=val[1];token&&value?token.first=value:token&&token.first&&!value&&warning("W080",token.first,token.first.value)})}function blockVariableStatement(type,statement,context){var tokens,lone,value,letblock,prefix=context&&context.prefix,inexport=context&&context.inexport,isLet="let"===type,isConst="const"===type;for(state.inES6()||warning("W104",state.tokens.curr,type,"6"),isLet&&"("===state.tokens.next.value?(state.inMoz()||warning("W118",state.tokens.next,"let block"),advance("("),state.funct["(scope)"].stack(),letblock=!0):state.funct["(noblockscopedvar)"]&&error("E048",state.tokens.curr,isConst?"Const":"Let"),statement.first=[];;){var names=[];_.contains(["{","["],state.tokens.next.value)?(tokens=destructuringPattern(),lone=!1):(tokens=[{id:identifier(),token:state.tokens.curr}],lone=!0),!prefix&&isConst&&"="!==state.tokens.next.id&&warning("E012",state.tokens.curr,state.tokens.curr.value);for(var t in tokens)tokens.hasOwnProperty(t)&&(t=tokens[t],state.funct["(scope)"].block.isGlobal()&&predefined[t.id]===!1&&warning("W079",t.token,t.id),t.id&&!state.funct["(noblockscopedvar)"]&&(state.funct["(scope)"].addlabel(t.id,{type:type,token:t.token}),names.push(t.token),lone&&inexport&&state.funct["(scope)"].setExported(t.token.value,t.token)));if("="===state.tokens.next.id&&(advance("="),prefix||"undefined"!==state.tokens.next.id||warning("W080",state.tokens.prev,state.tokens.prev.value),!prefix&&"="===peek(0).id&&state.tokens.next.identifier&&warning("W120",state.tokens.next,state.tokens.next.value),value=expression(prefix?120:10),lone?tokens[0].first=value:destructuringPatternMatch(names,value)),statement.first=statement.first.concat(names),","!==state.tokens.next.id)break;comma()}return letblock&&(advance(")"),block(!0,!0),statement.block=!0,state.funct["(scope)"].unstack()),statement}function classdef(isStatement){return state.inES6()||warning("W104",state.tokens.curr,"class","6"),isStatement?(this.name=identifier(),state.funct["(scope)"].addlabel(this.name,{type:"class",token:state.tokens.curr})):state.tokens.next.identifier&&"extends"!==state.tokens.next.value?(this.name=identifier(),this.namedExpr=!0):this.name=state.nameStack.infer(),classtail(this),this}function classtail(c){var wasInClassBody=state.inClassBody;"extends"===state.tokens.next.value&&(advance("extends"),c.heritage=expression(10)),state.inClassBody=!0,advance("{"),c.body=classbody(c),advance("}"),state.inClassBody=wasInClassBody}function classbody(c){for(var name,isStatic,isGenerator,getset,computed,props=Object.create(null),staticProps=Object.create(null),i=0;"}"!==state.tokens.next.id;++i)if(name=state.tokens.next,isStatic=!1,isGenerator=!1,getset=null,";"!==name.id){if("*"===name.id&&(isGenerator=!0,advance("*"),name=state.tokens.next),"["===name.id)name=computedPropertyName(),computed=!0;else{if(!isPropertyName(name)){warning("W052",state.tokens.next,state.tokens.next.value||state.tokens.next.type),advance();continue}advance(),computed=!1,name.identifier&&"static"===name.value&&(checkPunctuator(state.tokens.next,"*")&&(isGenerator=!0,advance("*")),(isPropertyName(state.tokens.next)||"["===state.tokens.next.id)&&(computed="["===state.tokens.next.id,isStatic=!0,name=state.tokens.next,"["===state.tokens.next.id?name=computedPropertyName():advance())),!name.identifier||"get"!==name.value&&"set"!==name.value||(isPropertyName(state.tokens.next)||"["===state.tokens.next.id)&&(computed="["===state.tokens.next.id,getset=name,name=state.tokens.next,"["===state.tokens.next.id?name=computedPropertyName():advance())}if(!checkPunctuator(state.tokens.next,"(")){for(error("E054",state.tokens.next,state.tokens.next.value);"}"!==state.tokens.next.id&&!checkPunctuator(state.tokens.next,"(");)advance();"("!==state.tokens.next.value&&doFunction({statement:c})}if(computed||(getset?saveAccessor(getset.value,isStatic?staticProps:props,name.value,name,!0,isStatic):("constructor"===name.value?state.nameStack.set(c):state.nameStack.set(name),saveProperty(isStatic?staticProps:props,name.value,name,!0,isStatic))),getset&&"constructor"===name.value){var propDesc="get"===getset.value?"class getter method":"class setter method";error("E049",name,propDesc,"constructor")}else"prototype"===name.value&&error("E049",name,"class method","prototype");propertyName(name),doFunction({statement:c,type:isGenerator?"generator":null,classExprBinding:c.namedExpr?c.name:null})}else warning("W032"),advance(";");checkProperties(props)}function saveProperty(props,name,tkn,isClass,isStatic){var msg=["key","class method","static class method"];msg=msg[(isClass||!1)+(isStatic||!1)],tkn.identifier&&(name=tkn.value),props[name]&&"__proto__"!==name?warning("W075",state.tokens.next,msg,name):props[name]=Object.create(null),props[name].basic=!0,props[name].basictkn=tkn}
8function saveAccessor(accessorType,props,name,tkn,isClass,isStatic){var flagName="get"===accessorType?"getterToken":"setterToken",msg="";isClass?(isStatic&&(msg+="static "),msg+=accessorType+"ter method"):msg="key",state.tokens.curr.accessorType=accessorType,state.nameStack.set(tkn),props[name]?(props[name].basic||props[name][flagName])&&"__proto__"!==name&&warning("W075",state.tokens.next,msg,name):props[name]=Object.create(null),props[name][flagName]=tkn}function computedPropertyName(){advance("["),state.inES6()||warning("W119",state.tokens.curr,"computed property names","6");var value=expression(10);return advance("]"),value}function checkPunctuators(token,values){return"(punctuator)"===token.type?_.contains(values,token.value):!1}function checkPunctuator(token,value){return"(punctuator)"===token.type&&token.value===value}function destructuringAssignOrJsonValue(){var block=lookupBlockType();block.notJson?(!state.inES6()&&block.isDestAssign&&warning("W104",state.tokens.curr,"destructuring assignment","6"),statements()):(state.option.laxbreak=!0,state.jsonMode=!0,jsonValue())}function jsonValue(){function jsonObject(){var o={},t=state.tokens.next;if(advance("{"),"}"!==state.tokens.next.id)for(;;){if("(end)"===state.tokens.next.id)error("E026",state.tokens.next,t.line);else{if("}"===state.tokens.next.id){warning("W094",state.tokens.curr);break}","===state.tokens.next.id?error("E028",state.tokens.next):"(string)"!==state.tokens.next.id&&warning("W095",state.tokens.next,state.tokens.next.value)}if(o[state.tokens.next.value]===!0?warning("W075",state.tokens.next,"key",state.tokens.next.value):"__proto__"===state.tokens.next.value&&!state.option.proto||"__iterator__"===state.tokens.next.value&&!state.option.iterator?warning("W096",state.tokens.next,state.tokens.next.value):o[state.tokens.next.value]=!0,advance(),advance(":"),jsonValue(),","!==state.tokens.next.id)break;advance(",")}advance("}")}function jsonArray(){var t=state.tokens.next;if(advance("["),"]"!==state.tokens.next.id)for(;;){if("(end)"===state.tokens.next.id)error("E027",state.tokens.next,t.line);else{if("]"===state.tokens.next.id){warning("W094",state.tokens.curr);break}","===state.tokens.next.id&&error("E028",state.tokens.next)}if(jsonValue(),","!==state.tokens.next.id)break;advance(",")}advance("]")}switch(state.tokens.next.id){case"{":jsonObject();break;case"[":jsonArray();break;case"true":case"false":case"null":case"(number)":case"(string)":advance();break;case"-":advance("-"),advance("(number)");break;default:error("E003",state.tokens.next)}}var api,declared,functions,inblock,indent,lookahead,lex,member,membersOnly,predefined,stack,urls,bang={"<":!0,"<=":!0,"==":!0,"===":!0,"!==":!0,"!=":!0,">":!0,">=":!0,"+":!0,"-":!0,"*":!0,"/":!0,"%":!0},functionicity=["closure","exception","global","label","outer","unused","var"],extraModules=[],emitter=new events.EventEmitter,typeofValues={};typeofValues.legacy=["xml","unknown"],typeofValues.es3=["undefined","boolean","number","string","function","object"],typeofValues.es3=typeofValues.es3.concat(typeofValues.legacy),typeofValues.es6=typeofValues.es3.concat("symbol"),type("(number)",function(){return this}),type("(string)",function(){return this}),state.syntax["(identifier)"]={type:"(identifier)",lbp:0,identifier:!0,nud:function(){var v=this.value;return"=>"===state.tokens.next.id?this:(state.funct["(comparray)"].check(v)||state.funct["(scope)"].block.use(v,state.tokens.curr),this)},led:function(){error("E033",state.tokens.next,state.tokens.next.value)}};var baseTemplateSyntax={lbp:0,identifier:!1,template:!0};state.syntax["(template)"]=_.extend({type:"(template)",nud:doTemplateLiteral,led:doTemplateLiteral,noSubst:!1},baseTemplateSyntax),state.syntax["(template middle)"]=_.extend({type:"(template middle)",middle:!0,noSubst:!1},baseTemplateSyntax),state.syntax["(template tail)"]=_.extend({type:"(template tail)",tail:!0,noSubst:!1},baseTemplateSyntax),state.syntax["(no subst template)"]=_.extend({type:"(template)",nud:doTemplateLiteral,led:doTemplateLiteral,noSubst:!0,tail:!0},baseTemplateSyntax),type("(regexp)",function(){return this}),delim("(endline)"),delim("(begin)"),delim("(end)").reach=!0,delim("(error)").reach=!0,delim("}").reach=!0,delim(")"),delim("]"),delim(\'"\').reach=!0,delim("\'").reach=!0,delim(";"),delim(":").reach=!0,delim("#"),reserve("else"),reserve("case").reach=!0,reserve("cat
8ch"),reserve("default").reach=!0,reserve("finally"),reservevar("arguments",function(x){state.isStrict()&&state.funct["(global)"]&&warning("E008",x)}),reservevar("eval"),reservevar("false"),reservevar("Infinity"),reservevar("null"),reservevar("this",function(x){state.isStrict()&&!isMethod()&&!state.option.validthis&&(state.funct["(statement)"]&&state.funct["(name)"].charAt(0)>"Z"||state.funct["(global)"])&&warning("W040",x)}),reservevar("true"),reservevar("undefined"),assignop("=","assign",20),assignop("+=","assignadd",20),assignop("-=","assignsub",20),assignop("*=","assignmult",20),assignop("/=","assigndiv",20).nud=function(){error("E014")},assignop("%=","assignmod",20),bitwiseassignop("&="),bitwiseassignop("|="),bitwiseassignop("^="),bitwiseassignop("<<="),bitwiseassignop(">>="),bitwiseassignop(">>>="),infix(",",function(left,that){var expr;if(that.exprs=[left],state.option.nocomma&&warning("W127"),!comma({peek:!0}))return that;for(;;){if(!(expr=expression(10)))break;if(that.exprs.push(expr),","!==state.tokens.next.value||!comma())break}return that},10,!0),infix("?",function(left,that){return increaseComplexityCount(),that.left=left,that.right=expression(10),advance(":"),that["else"]=expression(10),that},30);var orPrecendence=40;infix("||",function(left,that){return increaseComplexityCount(),that.left=left,that.right=expression(orPrecendence),that},orPrecendence),infix("&&","and",50),bitwise("|","bitor",70),bitwise("^","bitxor",80),bitwise("&","bitand",90),relation("==",function(left,right){var eqnull=state.option.eqnull&&("null"===(left&&left.value)||"null"===(right&&right.value));switch(!0){case!eqnull&&state.option.eqeqeq:this.from=this.character,warning("W116",this,"===","==");break;case isPoorRelation(left):warning("W041",this,"===",left.value);break;case isPoorRelation(right):warning("W041",this,"===",right.value);break;case isTypoTypeof(right,left,state):warning("W122",this,right.value);break;case isTypoTypeof(left,right,state):warning("W122",this,left.value)}return this}),relation("===",function(left,right){return isTypoTypeof(right,left,state)?warning("W122",this,right.value):isTypoTypeof(left,right,state)&&warning("W122",this,left.value),this}),relation("!=",function(left,right){var eqnull=state.option.eqnull&&("null"===(left&&left.value)||"null"===(right&&right.value));return!eqnull&&state.option.eqeqeq?(this.from=this.character,warning("W116",this,"!==","!=")):isPoorRelation(left)?warning("W041",this,"!==",left.value):isPoorRelation(right)?warning("W041",this,"!==",right.value):isTypoTypeof(right,left,state)?warning("W122",this,right.value):isTypoTypeof(left,right,state)&&warning("W122",this,left.value),this}),relation("!==",function(left,right){return isTypoTypeof(right,left,state)?warning("W122",this,right.value):isTypoTypeof(left,right,state)&&warning("W122",this,left.value),this}),relation("<"),relation(">"),relation("<="),relation(">="),bitwise("<<","shiftleft",120),bitwise(">>","shiftright",120),bitwise(">>>","shiftrightunsigned",120),infix("in","in",120),infix("instanceof","instanceof",120),infix("+",function(left,that){var right;return that.left=left,that.right=right=expression(130),left&&right&&"(string)"===left.id&&"(string)"===right.id?(left.value+=right.value,left.character=right.character,!state.option.scripturl&®.javascriptURL.test(left.value)&&warning("W050",left),left):that},130),prefix("+","num"),prefix("+++",function(){return warning("W007"),this.arity="unary",this.right=expression(150),this}),infix("+++",function(left){return warning("W007"),this.left=left,this.right=expression(130),this},130),infix("-","sub",130),prefix("-","neg"),prefix("---",function(){return warning("W006"),this.arity="unary",this.right=expression(150),this}),infix("---",function(left){return warning("W006"),this.left=left,this.right=expression(130),this},130),infix("*","mult",140),infix("/","div",140),infix("%","mod",140),suffix("++"),prefix("++","preinc"),state.syntax["++"].exps=!0,suffix("--"),prefix("--","predec"),state.syntax["--"].exps=!0,prefix("delete",function(){var p=expression(10);return p?("."!==p.id&&"["!==p.id&&warning("W051"),this.first=p,p.identifier&&!state.isStrict()&&(p.forgiveUndef=!0),this):this}).exps=!0,prefix("~",function(){return state.option.bitwise&&warning("W016",this,"~"),this.arity="unary",this.right=expression(150),this}),prefix("...",function(){return state.inES6(!0)||warning("W119",this,"spread/rest operator","6"),state.tokens.next.identifier||"(string)"===state.tokens.next.type||checkPunctuators(state.tokens.next,["[","("])||error("E030",state.tokens.next,
8state.tokens.next.value),expression(150),this}),prefix("!",function(){return this.arity="unary",this.right=expression(150),this.right||quit("E041",this.line||0),bang[this.right.id]===!0&&warning("W018",this,"!"),this}),prefix("typeof",function(){var p=expression(150);return this.first=this.right=p,p||quit("E041",this.line||0,this.character||0),p.identifier&&(p.forgiveUndef=!0),this}),prefix("new",function(){var mp=metaProperty("target",function(){state.inES6(!0)||warning("W119",state.tokens.prev,"new.target","6");for(var inFunction,c=state.funct;c&&(inFunction=!c["(global)"],c["(arrow)"]);)c=c["(context)"];inFunction||warning("W136",state.tokens.prev,"new.target")});if(mp)return mp;var i,c=expression(155);if(c&&"function"!==c.id)if(c.identifier)switch(c["new"]=!0,c.value){case"Number":case"String":case"Boolean":case"Math":case"JSON":warning("W053",state.tokens.prev,c.value);break;case"Symbol":state.inES6()&&warning("W053",state.tokens.prev,c.value);break;case"Function":state.option.evil||warning("W054");break;case"Date":case"RegExp":case"this":break;default:"function"!==c.id&&(i=c.value.substr(0,1),state.option.newcap&&("A">i||i>"Z")&&!state.funct["(scope)"].isPredefined(c.value)&&warning("W055",state.tokens.curr))}else"."!==c.id&&"["!==c.id&&"("!==c.id&&warning("W056",state.tokens.curr);else state.option.supernew||warning("W057",this);return"("===state.tokens.next.id||state.option.supernew||warning("W058",state.tokens.curr,state.tokens.curr.value),this.first=this.right=c,this}),state.syntax["new"].exps=!0,prefix("void").exps=!0,infix(".",function(left,that){var m=identifier(!1,!0);return"string"==typeof m&&countMember(m),that.left=left,that.right=m,m&&"hasOwnProperty"===m&&"="===state.tokens.next.value&&warning("W001"),!left||"arguments"!==left.value||"callee"!==m&&"caller"!==m?state.option.evil||!left||"document"!==left.value||"write"!==m&&"writeln"!==m||warning("W060",left):state.option.noarg?warning("W059",left,m):state.isStrict()&&error("E008"),state.option.evil||"eval"!==m&&"execScript"!==m||isGlobalEval(left,state)&&warning("W061"),that},160,!0),infix("(",function(left,that){state.option.immed&&left&&!left.immed&&"function"===left.id&&warning("W062");var n=0,p=[];if(left&&"(identifier)"===left.type&&left.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&-1==="Array Number String Boolean Date Object Error Symbol".indexOf(left.value)&&("Math"===left.value?warning("W063",left):state.option.newcap&&warning("W064",left)),")"!==state.tokens.next.id)for(;p[p.length]=expression(10),n+=1,","===state.tokens.next.id;)comma();return advance(")"),"object"==typeof left&&(state.inES5()||"parseInt"!==left.value||1!==n||warning("W065",state.tokens.curr),state.option.evil||("eval"===left.value||"Function"===left.value||"execScript"===left.value?(warning("W061",left),p[0]&&"(string)"===[0].id&&addInternalSrc(left,p[0].value)):!p[0]||"(string)"!==p[0].id||"setTimeout"!==left.value&&"setInterval"!==left.value?!p[0]||"(string)"!==p[0].id||"."!==left.value||"window"!==left.left.value||"setTimeout"!==left.right&&"setInterval"!==left.right||(warning("W066",left),addInternalSrc(left,p[0].value)):(warning("W066",left),addInternalSrc(left,p[0].value))),left.identifier||"."===left.id||"["===left.id||"=>"===left.id||"("===left.id||"&&"===left.id||"||"===left.id||"?"===left.id||state.inES6()&&left["(name)"]||warning("W067",that)),that.left=left,that},155,!0).exps=!0,prefix("(",function(){var pn1,ret,triggerFnExpr,first,last,pn=state.tokens.next,i=-1,parens=1,opening=state.tokens.curr,preceeding=state.tokens.prev,isNecessary=!state.option.singleGroups;do"("===pn.value?parens+=1:")"===pn.value&&(parens-=1),i+=1,pn1=pn,pn=peek(i);while((0!==parens||")"!==pn1.value)&&";"!==pn.value&&"(end)"!==pn.type);if("function"===state.tokens.next.id&&(triggerFnExpr=state.tokens.next.immed=!0),"=>"===pn.value)return doFunction({type:"arrow",parsedOpening:!0});var exprs=[];if(")"!==state.tokens.next.id)for(;exprs.push(expression(10)),","===state.tokens.next.id;)state.option.nocomma&&warning("W127"),comma();return advance(")",this),state.option.immed&&exprs[0]&&"function"===exprs[0].id&&"("!==state.tokens.next.id&&"."!==state.tokens.next.id&&"["!==state.tokens.next.id&&warning("W068",this),exprs.length?(ex
8prs.length>1?(ret=Object.create(state.syntax[","]),ret.exprs=exprs,first=exprs[0],last=exprs[exprs.length-1],isNecessary||(isNecessary=preceeding.assign||preceeding.delim)):(ret=first=last=exprs[0],isNecessary||(isNecessary=opening.beginsStmt&&("{"===ret.id||triggerFnExpr||isFunctor(ret))||triggerFnExpr&&(!isEndOfExpr()||"}"!==state.tokens.prev.id)||isFunctor(ret)&&!isEndOfExpr()||"{"===ret.id&&"=>"===preceeding.id||"(number)"===ret.type&&checkPunctuator(pn,".")&&/^\\d+$/.test(ret.value))),ret&&(!isNecessary&&(first.left||first.right||ret.exprs)&&(isNecessary=!isBeginOfExpr(preceeding)&&first.lbp<=preceeding.lbp||!isEndOfExpr()&&last.lbp<state.tokens.next.lbp),isNecessary||warning("W126",opening),ret.paren=!0),ret):void 0}),application("=>"),infix("[",function(left,that){var s,e=expression(10);return e&&"(string)"===e.type&&(state.option.evil||"eval"!==e.value&&"execScript"!==e.value||isGlobalEval(left,state)&&warning("W061"),countMember(e.value),!state.option.sub&®.identifier.test(e.value)&&(s=state.syntax[e.value],s&&isReserved(s)||warning("W069",state.tokens.prev,e.value))),advance("]",that),e&&"hasOwnProperty"===e.value&&"="===state.tokens.next.value&&warning("W001"),that.left=left,that.right=e,that},160,!0),prefix("[",function(){var blocktype=lookupBlockType();if(blocktype.isCompArray)return state.option.esnext||state.inMoz()||warning("W118",state.tokens.curr,"array comprehension"),comprehensiveArrayExpression();if(blocktype.isDestAssign)return this.destructAssign=destructuringPattern({openingParsed:!0,assignment:!0}),this;var b=state.tokens.curr.line!==startLine(state.tokens.next);for(this.first=[],b&&(indent+=state.option.indent,state.tokens.next.from===indent+state.option.indent&&(indent+=state.option.indent));"(end)"!==state.tokens.next.id;){for(;","===state.tokens.next.id;){if(!state.option.elision){if(state.inES5()){warning("W128");do advance(",");while(","===state.tokens.next.id);continue}warning("W070")}advance(",")}if("]"===state.tokens.next.id)break;if(this.first.push(expression(10)),","!==state.tokens.next.id)break;if(comma({allowTrailing:!0}),"]"===state.tokens.next.id&&!state.inES5()){warning("W070",state.tokens.curr);break}}return b&&(indent-=state.option.indent),advance("]",this),this}),function(x){x.nud=function(){var b,f,i,p,t,nextVal,isGeneratorMethod=!1,props=Object.create(null);b=state.tokens.curr.line!==startLine(state.tokens.next),b&&(indent+=state.option.indent,state.tokens.next.from===indent+state.option.indent&&(indent+=state.option.indent));var blocktype=lookupBlockType();if(blocktype.isDestAssign)return this.destructAssign=destructuringPattern({openingParsed:!0,assignment:!0}),this;for(;"}"!==state.tokens.next.id;){if(nextVal=state.tokens.next.value,!state.tokens.next.identifier||","!==peekIgnoreEOL().id&&"}"!==peekIgnoreEOL().id)if(":"===peek().id||"get"!==nextVal&&"set"!==nextVal){if("*"===state.tokens.next.value&&"(punctuator)"===state.tokens.next.type?(state.inES6()||warning("W104",state.tokens.next,"generator functions","6"),advance("*"),isGeneratorMethod=!0):isGeneratorMethod=!1,"["===state.tokens.next.id)i=computedPropertyName(),state.nameStack.set(i);else if(state.nameStack.set(state.tokens.next),i=propertyName(),saveProperty(props,i,state.tokens.next),"string"!=typeof i)break;"("===state.tokens.next.value?(state.inES6()||warning("W104",state.tokens.curr,"concise methods","6"),doFunction({type:isGeneratorMethod?"generator":null})):(advance(":"),expression(10))}else advance(nextVal),state.inES5()||error("E034"),i=propertyName(),i||state.inES6()||error("E035"),i&&saveAccessor(nextVal,props,i,state.tokens.curr),t=state.tokens.next,f=doFunction(),p=f["(params)"],"get"===nextVal&&i&&p?warning("W076",t,p[0],i):"set"!==nextVal||!i||p&&1===p.length||warning("W077",t,i);else state.inES6()||warning("W104",state.tokens.next,"object short notation","6"),i=propertyName(!0),saveProperty(props,i,state.tokens.next),expression(10);if(countMember(i),","!==state.tokens.next.id)break;comma({allowTrailing:!0,property:!0}),","===state.tokens.next.id?warning("W070",state.tokens.curr):"}"!==state.tokens.next.id||state.inES5()||warning("W070",state.tokens.curr)}
8return b&&(indent-=state.option.indent),advance("}",this),checkProperties(props),this},x.fud=function(){error("E036",state.tokens.curr)}}(delim("{"));var conststatement=stmt("const",function(context){return blockVariableStatement("const",this,context)});conststatement.exps=!0;var letstatement=stmt("let",function(context){return blockVariableStatement("let",this,context)});letstatement.exps=!0;var varstatement=stmt("var",function(context){var tokens,lone,value,prefix=context&&context.prefix,inexport=context&&context.inexport,implied=context&&context.implied,report=!(context&&context.ignore);for(this.first=[];;){var names=[];_.contains(["{","["],state.tokens.next.value)?(tokens=destructuringPattern(),lone=!1):(tokens=[{id:identifier(),token:state.tokens.curr}],lone=!0),prefix&&implied||!report||!state.option.varstmt||warning("W132",this),this.first=this.first.concat(names);for(var t in tokens)tokens.hasOwnProperty(t)&&(t=tokens[t],!implied&&state.funct["(global)"]&&(predefined[t.id]===!1?warning("W079",t.token,t.id):state.option.futurehostile===!1&&(!state.inES5()&&vars.ecmaIdentifiers[5][t.id]===!1||!state.inES6()&&vars.ecmaIdentifiers[6][t.id]===!1)&&warning("W129",t.token,t.id)),t.id&&("for"===implied?(state.funct["(scope)"].has(t.id)||report&&warning("W088",t.token,t.id),state.funct["(scope)"].block.use(t.id,t.token)):(state.funct["(scope)"].addlabel(t.id,{type:"var",token:t.token}),lone&&inexport&&state.funct["(scope)"].setExported(t.id,t.token)),names.push(t.token)));if("="===state.tokens.next.id&&(state.nameStack.set(state.tokens.curr),advance("="),prefix||!report||state.funct["(loopage)"]||"undefined"!==state.tokens.next.id||warning("W080",state.tokens.prev,state.tokens.prev.value),"="===peek(0).id&&state.tokens.next.identifier&&(!prefix&&report&&!state.funct["(params)"]||-1===state.funct["(params)"].indexOf(state.tokens.next.value))&&warning("W120",state.tokens.next,state.tokens.next.value),value=expression(prefix?120:10),lone?tokens[0].first=value:destructuringPatternMatch(names,value)),","!==state.tokens.next.id)break;comma()}return this});varstatement.exps=!0,blockstmt("class",function(){return classdef.call(this,!0)}),blockstmt("function",function(context){var inexport=context&&context.inexport,generator=!1;"*"===state.tokens.next.value&&(advance("*"),state.inES6({strict:!0})?generator=!0:warning("W119",state.tokens.curr,"function*","6")),inblock&&warning("W082",state.tokens.curr);var i=optionalidentifier();return state.funct["(scope)"].addlabel(i,{type:"function",token:state.tokens.curr}),void 0===i?warning("W025"):inexport&&state.funct["(scope)"].setExported(i,state.tokens.prev),doFunction({name:i,statement:this,type:generator?"generator":null,ignoreLoopFunc:inblock}),"("===state.tokens.next.id&&state.tokens.next.line===state.tokens.curr.line&&error("E039"),this}),prefix("function",function(){var generator=!1;"*"===state.tokens.next.value&&(state.inES6()||warning("W119",state.tokens.curr,"function*","6"),advance("*"),generator=!0);var i=optionalidentifier();return doFunction({name:i,type:generator?"generator":null}),this}),blockstmt("if",function(){var t=state.tokens.next;increaseComplexityCount(),state.condition=!0,advance("(");var expr=expression(0);checkCondAssignment(expr);var forinifcheck=null;state.option.forin&&state.forinifcheckneeded&&(state.forinifcheckneeded=!1,forinifcheck=state.forinifchecks[state.forinifchecks.length-1],forinifcheck.type="(punctuator)"===expr.type&&"!"===expr.value?"(negative)":"(positive)"),advance(")",t),state.condition=!1;var s=block(!0,!0);return forinifcheck&&"(negative)"===forinifcheck.type&&s&&s[0]&&"(identifier)"===s[0].type&&"continue"===s[0].value&&(forinifcheck.type="(negative-with-continue)"),"else"===state.tokens.next.id&&(advance("else"),"if"===state.tokens.next.id||"switch"===state.tokens.next.id?statement():block(!0,!0)),this}),blockstmt("try",function(){function doCatch(){if(advance("catch"),advance("("),state.funct["(scope)"].stack("catchparams"),checkPunctuators(state.tokens.next,["[","{"])){var tokens=destructuringPattern();_.each(tokens,function(token){token.id&&state.funct["(scope)"].addParam(token.id,token,"exception")})}else"(identifier)"!==state.tokens.next.type?warning("E030",state.tokens.next,
8state.tokens.next.value):state.funct["(scope)"].addParam(identifier(),state.tokens.curr,"exception");"if"===state.tokens.next.value&&(state.inMoz()||warning("W118",state.tokens.curr,"catch filter"),advance("if"),expression(0)),advance(")"),block(!1),state.funct["(scope)"].unstack()}var b;for(block(!0);"catch"===state.tokens.next.id;)increaseComplexityCount(),b&&!state.inMoz()&&warning("W118",state.tokens.next,"multiple catch blocks"),doCatch(),b=!0;return"finally"===state.tokens.next.id?(advance("finally"),block(!0),void 0):(b||error("E021",state.tokens.next,"catch",state.tokens.next.value),this)}),blockstmt("while",function(){var t=state.tokens.next;return state.funct["(breakage)"]+=1,state.funct["(loopage)"]+=1,increaseComplexityCount(),advance("("),checkCondAssignment(expression(0)),advance(")",t),block(!0,!0),state.funct["(breakage)"]-=1,state.funct["(loopage)"]-=1,this}).labelled=!0,blockstmt("with",function(){var t=state.tokens.next;return state.isStrict()?error("E010",state.tokens.curr):state.option.withstmt||warning("W085",state.tokens.curr),advance("("),expression(0),advance(")",t),block(!0,!0),this}),blockstmt("switch",function(){var t=state.tokens.next,g=!1,noindent=!1;\nfor(state.funct["(breakage)"]+=1,advance("("),checkCondAssignment(expression(0)),advance(")",t),t=state.tokens.next,advance("{"),state.tokens.next.from===indent&&(noindent=!0),noindent||(indent+=state.option.indent),this.cases=[];;)switch(state.tokens.next.id){case"case":switch(state.funct["(verb)"]){case"yield":case"break":case"case":case"continue":case"return":case"switch":case"throw":break;default:state.tokens.curr.caseFallsThrough||warning("W086",state.tokens.curr,"case")}advance("case"),this.cases.push(expression(0)),increaseComplexityCount(),g=!0,advance(":"),state.funct["(verb)"]="case";break;case"default":switch(state.funct["(verb)"]){case"yield":case"break":case"continue":case"return":case"throw":break;default:this.cases.length&&(state.tokens.curr.caseFallsThrough||warning("W086",state.tokens.curr,"default"))}advance("default"),g=!0,advance(":");break;case"}":return noindent||(indent-=state.option.indent),advance("}",t),state.funct["(breakage)"]-=1,state.funct["(verb)"]=void 0,void 0;case"(end)":return error("E023",state.tokens.next,"}"),void 0;default:if(indent+=state.option.indent,g)switch(state.tokens.curr.id){case",":return error("E040"),void 0;case":":g=!1,statements();break;default:return error("E025",state.tokens.curr),void 0}else{if(":"!==state.tokens.curr.id)return error("E021",state.tokens.next,"case",state.tokens.next.value),void 0;advance(":"),error("E024",state.tokens.curr,":"),statements()}indent-=state.option.indent}return this}).labelled=!0,stmt("debugger",function(){return state.option.debug||warning("W087",this),this}).exps=!0,function(){var x=stmt("do",function(){state.funct["(breakage)"]+=1,state.funct["(loopage)"]+=1,increaseComplexityCount(),this.first=block(!0,!0),advance("while");var t=state.tokens.next;return advance("("),checkCondAssignment(expression(0)),advance(")",t),state.funct["(breakage)"]-=1,state.funct["(loopage)"]-=1,this});x.labelled=!0,x.exps=!0}(),blockstmt("for",function(){var s,t=state.tokens.next,letscope=!1,foreachtok=null;"each"===t.value&&(foreachtok=t,advance("each"),state.inMoz()||warning("W118",state.tokens.curr,"for each")),increaseComplexityCount(),advance("(");var nextop,comma,initializer,i=0,inof=["in","of"],level=0;checkPunctuators(state.tokens.next,["{","["])&&++level;do{if(nextop=peek(i),++i,checkPunctuators(nextop,["{","["])?++level:checkPunctuators(nextop,["}","]"])&&--level,0>level)break;0===level&&(!comma&&checkPunctuator(nextop,",")?comma=nextop:!initializer&&checkPunctuator(nextop,"=")&&(initializer=nextop))}while(level>0||!_.contains(inof,nextop.value)&&";"!==nextop.value&&"(end)"!==nextop.type);if(_.contains(inof,nextop.value)){state.inES6()||"of"!==nextop.value||warning("W104",nextop,"for of","6");var ok=!(initializer||comma);if(initializer&&error("W133",comma,nextop.value,"initializer is forbidden"),comma&&error("W133",comma,nextop.value,"more than one ForBinding"),"var"===state.tokens.next.id?(advance("var"),state.tokens.curr.fud({prefix:!0})):"let"===state.tokens.next.id||"const"===state.tokens.next.id?(advance(state.tokens.next.id),letscope=!0,state.funct["(scope)"].stack(),state.tokens.curr.fud({prefix:!0}
8)):Object.create(varstatement).fud({prefix:!0,implied:"for",ignore:!ok}),advance(nextop.value),expression(20),advance(")",t),"in"===nextop.value&&state.option.forin&&(state.forinifcheckneeded=!0,void 0===state.forinifchecks&&(state.forinifchecks=[]),state.forinifchecks.push({type:"(none)"})),state.funct["(breakage)"]+=1,state.funct["(loopage)"]+=1,s=block(!0,!0),"in"===nextop.value&&state.option.forin){if(state.forinifchecks&&state.forinifchecks.length>0){var check=state.forinifchecks.pop();(s&&s.length>0&&("object"!=typeof s[0]||"if"!==s[0].value)||"(positive)"===check.type&&s.length>1||"(negative)"===check.type)&&warning("W089",this)}state.forinifcheckneeded=!1}state.funct["(breakage)"]-=1,state.funct["(loopage)"]-=1}else{if(foreachtok&&error("E045",foreachtok),";"!==state.tokens.next.id)if("var"===state.tokens.next.id)advance("var"),state.tokens.curr.fud();else if("let"===state.tokens.next.id)advance("let"),letscope=!0,state.funct["(scope)"].stack(),state.tokens.curr.fud();else for(;expression(0,"for"),","===state.tokens.next.id;)comma();if(nolinebreak(state.tokens.curr),advance(";"),state.funct["(loopage)"]+=1,";"!==state.tokens.next.id&&checkCondAssignment(expression(0)),nolinebreak(state.tokens.curr),advance(";"),";"===state.tokens.next.id&&error("E021",state.tokens.next,")",";"),")"!==state.tokens.next.id)for(;expression(0,"for"),","===state.tokens.next.id;)comma();advance(")",t),state.funct["(breakage)"]+=1,block(!0,!0),state.funct["(breakage)"]-=1,state.funct["(loopage)"]-=1}return letscope&&state.funct["(scope)"].unstack(),this}).labelled=!0,stmt("break",function(){var v=state.tokens.next.value;return state.option.asi||nolinebreak(this),";"===state.tokens.next.id||state.tokens.next.reach||state.tokens.curr.line!==startLine(state.tokens.next)?0===state.funct["(breakage)"]&&warning("W052",state.tokens.next,this.value):(state.funct["(scope)"].funct.hasBreakLabel(v)||warning("W090",state.tokens.next,v),this.first=state.tokens.next,advance()),reachable(this),this}).exps=!0,stmt("continue",function(){var v=state.tokens.next.value;return 0===state.funct["(breakage)"]&&warning("W052",state.tokens.next,this.value),state.funct["(loopage)"]||warning("W052",state.tokens.next,this.value),state.option.asi||nolinebreak(this),";"===state.tokens.next.id||state.tokens.next.reach||state.tokens.curr.line===startLine(state.tokens.next)&&(state.funct["(scope)"].funct.hasBreakLabel(v)||warning("W090",state.tokens.next,v),this.first=state.tokens.next,advance()),reachable(this),this}).exps=!0,stmt("return",function(){return this.line===startLine(state.tokens.next)?";"===state.tokens.next.id||state.tokens.next.reach||(this.first=expression(0),!this.first||"(punctuator)"!==this.first.type||"="!==this.first.value||this.first.paren||state.option.boss||warningAt("W093",this.first.line,this.first.character)):"(punctuator)"===state.tokens.next.type&&["[","{","+","-"].indexOf(state.tokens.next.value)>-1&&nolinebreak(this),reachable(this),this}).exps=!0,function(x){x.exps=!0,x.lbp=25}(prefix("yield",function(){var prev=state.tokens.prev;state.inES6(!0)&&!state.funct["(generator)"]?"(catch)"===state.funct["(name)"]&&state.funct["(context)"]["(generator)"]||error("E046",state.tokens.curr,"yield"):state.inES6()||warning("W104",state.tokens.curr,"yield","6"),state.funct["(generator)"]="yielded";var delegatingYield=!1;return"*"===state.tokens.next.value&&(delegatingYield=!0,advance("*")),this.line!==startLine(state.tokens.next)&&state.inMoz()?state.option.asi||nolinebreak(this):((delegatingYield||";"!==state.tokens.next.id&&!state.option.asi&&!state.tokens.next.reach&&state.tokens.next.nud)&&(nobreaknonadjacent(state.tokens.curr,state.tokens.next),this.first=expression(10),"(punctuator)"!==this.first.type||"="!==this.first.value||this.first.paren||state.option.boss||warningAt("W093",this.first.line,this.first.character)),state.inMoz()&&")"!==state.tokens.next.id&&(prev.lbp>30||!prev.assign&&!isEndOfExpr()||"yield"===prev.id)&&error("E050",this)),this})),stmt("throw",function(){return nolinebreak(this),this.first=expression(20),reachable(this),this}).exps=!0,stmt("import",function(){if(state.inES6()||warning("W119",state.tokens.curr,"import","6"),"(string)"===state.tokens.next.type)return advance("(string)"),this;if(state.tokens.next.identifier){if(this.name=identifier(),state.funct["(scope)"].addlabel(this.name,{type:"const",token:state.tokens.curr}),","!==state.tokens.next.value)return advance("from"),advance("(string)"),this;advance(",")}if("*"===state.tokens.next.id)advance("*"),advance("as"),state.tokens.next.identifier&&(this.name=identifier(),state.funct["(scope)"].addlabel(this.name,{type:"const",token:state.tokens.curr}));else for(advance("{");;){if("}"===state.tokens.next.value){advance("}");break}var importName;if("default"===state.tokens.next.type?(importName="default",advance("default")):importName=identifier(),"as"===state.tokens.next.value&&(
8advance("as"),importName=identifier()),state.funct["(scope)"].addlabel(importName,{type:"const",token:state.tokens.curr}),","!==state.tokens.next.value){if("}"===state.tokens.next.value){advance("}");break}error("E024",state.tokens.next,state.tokens.next.value);break}advance(",")}return advance("from"),advance("(string)"),this}).exps=!0,stmt("export",function(){var token,identifier,ok=!0;if(state.inES6()||(warning("W119",state.tokens.curr,"export","6"),ok=!1),state.funct["(scope)"].block.isGlobal()||(error("E053",state.tokens.curr),ok=!1),"*"===state.tokens.next.value)return advance("*"),advance("from"),advance("(string)"),this;if("default"===state.tokens.next.type){state.nameStack.set(state.tokens.next),advance("default");var exportType=state.tokens.next.id;return("function"===exportType||"class"===exportType)&&(this.block=!0),token=peek(),expression(10),identifier=token.value,this.block&&(state.funct["(scope)"].addlabel(identifier,{type:exportType,token:token}),state.funct["(scope)"].setExported(identifier,token)),this}if("{"===state.tokens.next.value){advance("{");for(var exportedTokens=[];;){if(state.tokens.next.identifier||error("E030",state.tokens.next,state.tokens.next.value),advance(),exportedTokens.push(state.tokens.curr),"as"===state.tokens.next.value&&(advance("as"),state.tokens.next.identifier||error("E030",state.tokens.next,state.tokens.next.value),advance()),","!==state.tokens.next.value){if("}"===state.tokens.next.value){advance("}");break}error("E024",state.tokens.next,state.tokens.next.value);break}advance(",")}return"from"===state.tokens.next.value?(advance("from"),advance("(string)")):ok&&exportedTokens.forEach(function(token){state.funct["(scope)"].setExported(token.value,token)}),this}if("var"===state.tokens.next.id)advance("var"),state.tokens.curr.fud({inexport:!0});else if("let"===state.tokens.next.id)advance("let"),state.tokens.curr.fud({inexport:!0});else if("const"===state.tokens.next.id)advance("const"),state.tokens.curr.fud({inexport:!0});else if("function"===state.tokens.next.id)this.block=!0,advance("function"),state.syntax["function"].fud({inexport:!0});else if("class"===state.tokens.next.id){this.block=!0,advance("class");var classNameToken=state.tokens.next;state.syntax["class"].fud(),state.funct["(scope)"].setExported(classNameToken.value,classNameToken)}else error("E024",state.tokens.next,state.tokens.next.value);return this}).exps=!0,FutureReservedWord("abstract"),FutureReservedWord("boolean"),FutureReservedWord("byte"),FutureReservedWord("char"),FutureReservedWord("class",{es5:!0,nud:classdef}),FutureReservedWord("double"),FutureReservedWord("enum",{es5:!0}),FutureReservedWord("export",{es5:!0}),FutureReservedWord("extends",{es5:!0}),FutureReservedWord("final"),FutureReservedWord("float"),FutureReservedWord("goto"),FutureReservedWord("implements",{es5:!0,strictOnly:!0}),FutureReservedWord("import",{es5:!0}),FutureReservedWord("int"),FutureReservedWord("interface",{es5:!0,strictOnly:!0}),FutureReservedWord("long"),FutureReservedWord("native"),FutureReservedWord("package",{es5:!0,strictOnly:!0}),FutureReservedWord("private",{es5:!0,strictOnly:!0}),FutureReservedWord("protected",{es5:!0,strictOnly:!0}),FutureReservedWord("public",{es5:!0,strictOnly:!0}),FutureReservedWord("short"),FutureReservedWord("static",{es5:!0,strictOnly:!0}),FutureReservedWord("super",{es5:!0}),FutureReservedWord("synchronized"),FutureReservedWord("transient"),FutureReservedWord("volatile");var lookupBlockType=function(){var pn,pn1,prev,i=-1,bracketStack=0,ret={};checkPunctuators(state.tokens.curr,["[","{"])&&(bracketStack+=1);do{if(prev=-1===i?state.tokens.curr:pn,pn=-1===i?state.tokens.next:peek(i),pn1=peek(i+1),i+=1,checkPunctuators(pn,["[","{"])?bracketStack+=1:checkPunctuators(pn,["]","}"])&&(bracketStack-=1),1===bracketStack&&pn.identifier&&"for"===pn.value&&!checkPunctuator(prev,".")){ret.isCompArray=!0,ret.notJson=!0;break}if(0===bracketStack&&checkPunctuators(pn,["}","]"])){if("="===pn1.value){ret.isDestAssign=!0,ret.notJson=!0;break}if("."===pn1.value){ret.notJson=!0;break}}checkPunctuator(pn,";")&&(ret.isBlock=!0,ret.notJson=!0)}while(bracketStack>0&&"(end)"!==pn.id);return ret}
8,arrayComprehension=function(){function declare(v){var l=_current.variables.filter(function(elt){return elt.value===v?(elt.undef=!1,v):void 0}).length;return 0!==l}function use(v){var l=_current.variables.filter(function(elt){return elt.value!==v||elt.undef?void 0:(elt.unused===!0&&(elt.unused=!1),v)}).length;return 0===l}var _current,CompArray=function(){this.mode="use",this.variables=[]},_carrays=[];return{stack:function(){_current=new CompArray,_carrays.push(_current)},unstack:function(){_current.variables.filter(function(v){v.unused&&warning("W098",v.token,v.raw_text||v.value),v.undef&&state.funct["(scope)"].block.use(v.value,v.token)}),_carrays.splice(-1,1),_current=_carrays[_carrays.length-1]},setState:function(s){_.contains(["use","define","generate","filter"],s)&&(_current.mode=s)},check:function(v){return _current?_current&&"use"===_current.mode?(use(v)&&_current.variables.push({funct:state.funct,token:state.tokens.curr,value:v,undef:!0,unused:!1}),!0):_current&&"define"===_current.mode?(declare(v)||_current.variables.push({funct:state.funct,token:state.tokens.curr,value:v,undef:!1,unused:!0}),!0):_current&&"generate"===_current.mode?(state.funct["(scope)"].block.use(v,state.tokens.curr),!0):_current&&"filter"===_current.mode?(use(v)&&state.funct["(scope)"].block.use(v,state.tokens.curr),!0):!1:void 0}}},escapeRegex=function(str){return str.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,"\\\\$&")},itself=function(s,o,g){function each(obj,cb){obj&&(Array.isArray(obj)||"object"!=typeof obj||(obj=Object.keys(obj)),obj.forEach(cb))}var i,k,x,reIgnoreStr,reIgnore,optionKeys,newOptionObj={},newIgnoredObj={};o=_.clone(o),state.reset(),o&&o.scope?JSHINT.scope=o.scope:(JSHINT.errors=[],JSHINT.undefs=[],JSHINT.internals=[],JSHINT.blacklist={},JSHINT.scope="(main)"),predefined=Object.create(null),combine(predefined,vars.ecmaIdentifiers[3]),combine(predefined,vars.reservedVars),combine(predefined,g||{}),declared=Object.create(null);var exported=Object.create(null);if(o)for(each(o.predef||null,function(item){var slice,prop;"-"===item[0]?(slice=item.slice(1),JSHINT.blacklist[slice]=slice,delete predefined[slice]):(prop=Object.getOwnPropertyDescriptor(o.predef,item),predefined[item]=prop?prop.value:!1)}),each(o.exported||null,function(item){exported[item]=!0}),delete o.predef,delete o.exported,optionKeys=Object.keys(o),x=0;optionKeys.length>x;x++)if(/^-W\\d{3}$/g.test(optionKeys[x]))newIgnoredObj[optionKeys[x].slice(1)]=!0;else{var optionKey=optionKeys[x];newOptionObj[optionKey]=o[optionKey],("esversion"===optionKey&&5===o[optionKey]||"es5"===optionKey&&o[optionKey])&&warning("I003"),"newcap"===optionKeys[x]&&o[optionKey]===!1&&(newOptionObj["(explicitNewcap)"]=!0)}state.option=newOptionObj,state.ignored=newIgnoredObj,state.option.indent=state.option.indent||4,state.option.maxerr=state.option.maxerr||50,indent=1;var scopeManagerInst=scopeManager(state,predefined,exported,declared);if(scopeManagerInst.on("warning",function(ev){warning.apply(null,[ev.code,ev.token].concat(ev.data))}),scopeManagerInst.on("error",function(ev){error.apply(null,[ev.code,ev.token].concat(ev.data))}),state.funct=functor("(global)",null,{"(global)":!0,"(scope)":scopeManagerInst,"(comparray)":arrayComprehension(),"(metrics)":createMetrics(state.tokens.next)}),functions=[state.funct],urls=[],stack=null,member={},membersOnly=null,inblock=!1,lookahead=[],!isString(s)&&!Array.isArray(s))return errorAt("E004",0),!1;api={get isJSON(){return state.jsonMode},getOption:function(name){return state.option[name]||null},getCache:function(name){return state.cache[name]},setCache:function(name,value){state.cache[name]=value},warn:function(code,data){warningAt.apply(null,[code,data.line,data.char].concat(data.data))},on:function(names,listener){names.split(" ").forEach(function(name){emitter.on(name,listener)}.bind(this))}},emitter.removeAllListeners(),(extraModules||[]).forEach(function(func){func(api)}),state.tokens.prev=state.tokens.curr=state.tokens.next=state.syntax["(begin)"],o&&o.ignoreDelimiters&&(Array.isArray(o.ignoreDelimiters)||(o.ignoreDelimiters=[o.ignoreDelimiters]),o.ignoreDelimiters.forEac
8h(function(delimiterPair){delimiterPair.start&&delimiterPair.end&&(reIgnoreStr=escapeRegex(delimiterPair.start)+"[\\\\s\\\\S]*?"+escapeRegex(delimiterPair.end),reIgnore=RegExp(reIgnoreStr,"ig"),s=s.replace(reIgnore,function(match){return match.replace(/./g," ")}))})),lex=new Lexer(s),lex.on("warning",function(ev){warningAt.apply(null,[ev.code,ev.line,ev.character].concat(ev.data))}),lex.on("error",function(ev){errorAt.apply(null,[ev.code,ev.line,ev.character].concat(ev.data))}),lex.on("fatal",function(ev){quit("E041",ev.line,ev.from)}),lex.on("Identifier",function(ev){emitter.emit("Identifier",ev)}),lex.on("String",function(ev){emitter.emit("String",ev)}),lex.on("Number",function(ev){emitter.emit("Number",ev)}),lex.start();for(var name in o)_.has(o,name)&&checkOption(name,state.tokens.curr);assume(),combine(predefined,g||{}),comma.first=!0;try{switch(advance(),state.tokens.next.id){case"{":case"[":destructuringAssignOrJsonValue();break;default:directives(),state.directive["use strict"]&&"global"!==state.option.strict&&warning("W097",state.tokens.prev),statements()}"(end)"!==state.tokens.next.id&&quit("E041",state.tokens.curr.line),state.funct["(scope)"].unstack()}catch(err){if(!err||"JSHintError"!==err.name)throw err;var nt=state.tokens.next||{};JSHINT.errors.push({scope:"(main)",raw:err.raw,code:err.code,reason:err.message,line:err.line||nt.line,character:err.character||nt.from},null)}if("(main)"===JSHINT.scope)for(o=o||{},i=0;JSHINT.internals.length>i;i+=1)k=JSHINT.internals[i],o.scope=k.elem,itself(k.value,o,g);return 0===JSHINT.errors.length};return itself.addModule=function(func){extraModules.push(func)},itself.addModule(style.register),itself.data=function(){var fu,f,i,j,n,globals,data={functions:[],options:state.option};itself.errors.length&&(data.errors=itself.errors),state.jsonMode&&(data.json=!0);var impliedGlobals=state.funct["(scope)"].getImpliedGlobals();for(impliedGlobals.length>0&&(data.implieds=impliedGlobals),urls.length>0&&(data.urls=urls),globals=state.funct["(scope)"].getUsedOrDefinedGlobals(),globals.length>0&&(data.globals=globals),i=1;functions.length>i;i+=1){for(f=functions[i],fu={},j=0;functionicity.length>j;j+=1)fu[functionicity[j]]=[];for(j=0;functionicity.length>j;j+=1)0===fu[functionicity[j]].length&&delete fu[functionicity[j]];fu.name=f["(name)"],fu.param=f["(params)"],fu.line=f["(line)"],fu.character=f["(character)"],fu.last=f["(last)"],fu.lastcharacter=f["(lastcharacter)"],fu.metrics={complexity:f["(metrics)"].ComplexityCount,parameters:f["(metrics)"].arity,statements:f["(metrics)"].statementCount},data.functions.push(fu)}var unuseds=state.funct["(scope)"].getUnuseds();unuseds.length>0&&(data.unused=unuseds);for(n in member)if("number"==typeof member[n]){data.member=member;break}return data},itself.jshint=itself,itself}();"object"==typeof exports&&exports&&(exports.JSHINT=JSHINT)},{"../lodash":"/node_modules/jshint/lodash.js","./lex.js":"/node_modules/jshint/src/lex.js","./messages.js":"/node_modules/jshint/src/messages.js","./options.js":"/node_modules/jshint/src/options.js","./reg.js":"/node_modules/jshint/src/reg.js","./scope-manager.js":"/node_modules/jshint/src/scope-manager.js","./state.js":"/node_modules/jshint/src/state.js","./style.js":"/node_modules/jshint/src/style.js","./vars.js":"/node_modules/jshint/src/vars.js",events:"/node_modules/browserify/node_modules/events/events.js"}],"/node_modules/jshint/src/lex.js":[function(_dereq_,module,exports){"use strict";function asyncTrigger(){var _checks=[];return{push:function(fn){_checks.push(fn)},check:function(){for(var check=0;_checks.length>check;++check)_checks[check]();_checks.splice(0,_checks.length)}}}function Lexer(source){var lines=source;"string"==typeof lines&&(lines=lines.replace(/\\r\\n/g,"\\n").replace(/\\r/g,"\\n").split("\\n")),lines[0]&&"#!"===lines[0].substr(0,2)&&(-1!==lines[0].indexOf("node")&&(state.option.node=!0),lines[0]=""),this.emitter=new events.EventEmitter,this.source=source,this.setLines(lines),this.prereg=!0,this.line=0,this.char=1,this.from=1,this.input="",this.inComment=!1,this.context=[],this.templateStarts=[];for(var i=0;state.option.indent>i;i+=1)state.tab+=" ";this.ignoreLinterErrors=!1}var _=_dereq_("../lodash"),events=_dereq_("events"),reg=_dereq_("./reg.js"),state=_dereq_("./state.js").state,unicodeData=_dereq_("../data/ascii-identifier-data.js"),asciiIdentifierStartTable=unicodeData.asciiIdentifierStartTable,asciiIdentifierPartTable=unicodeData.asciiIdentifierPartTable,Token={Identifier:1,Punctuator:2,NumericLiteral:3,StringLiteral
8:4,Comment:5,Keyword:6,NullLiteral:7,BooleanLiteral:8,RegExp:9,TemplateHead:10,TemplateMiddle:11,TemplateTail:12,NoSubstTemplate:13},Context={Block:1,Template:2};Lexer.prototype={_lines:[],inContext:function(ctxType){return this.context.length>0&&this.context[this.context.length-1].type===ctxType},pushContext:function(ctxType){this.context.push({type:ctxType})},popContext:function(){return this.context.pop()},isContext:function(context){return this.context.length>0&&this.context[this.context.length-1]===context},currentContext:function(){return this.context.length>0&&this.context[this.context.length-1]},getLines:function(){return this._lines=state.lines,this._lines},setLines:function(val){this._lines=val,state.lines=this._lines},peek:function(i){return this.input.charAt(i||0)},skip:function(i){i=i||1,this.char+=i,this.input=this.input.slice(i)},on:function(names,listener){names.split(" ").forEach(function(name){this.emitter.on(name,listener)}.bind(this))},trigger:function(){this.emitter.emit.apply(this.emitter,Array.prototype.slice.call(arguments))},triggerAsync:function(type,args,checks,fn){checks.push(function(){fn()&&this.trigger(type,args)}.bind(this))},scanPunctuator:function(){var ch2,ch3,ch4,ch1=this.peek();switch(ch1){case".":if(/^[0-9]$/.test(this.peek(1)))return null;if("."===this.peek(1)&&"."===this.peek(2))return{type:Token.Punctuator,value:"..."};case"(":case")":case";":case",":case"[":case"]":case":":case"~":case"?":return{type:Token.Punctuator,value:ch1};case"{":return this.pushContext(Context.Block),{type:Token.Punctuator,value:ch1};case"}":return this.inContext(Context.Block)&&this.popContext(),{type:Token.Punctuator,value:ch1};case"#":return{type:Token.Punctuator,value:ch1};case"":return null}return ch2=this.peek(1),ch3=this.peek(2),ch4=this.peek(3),">"===ch1&&">"===ch2&&">"===ch3&&"="===ch4?{type:Token.Punctuator,value:">>>="}:"="===ch1&&"="===ch2&&"="===ch3?{type:Token.Punctuator,value:"==="}:"!"===ch1&&"="===ch2&&"="===ch3?{type:Token.Punctuator,value:"!=="}:">"===ch1&&">"===ch2&&">"===ch3?{type:Token.Punctuator,value:">>>"}:"<"===ch1&&"<"===ch2&&"="===ch3?{type:Token.Punctuator,value:"<<="}:">"===ch1&&">"===ch2&&"="===ch3?{type:Token.Punctuator,value:">>="}:"="===ch1&&">"===ch2?{type:Token.Punctuator,value:ch1+ch2}:ch1===ch2&&"+-<>&|".indexOf(ch1)>=0?{type:Token.Punctuator,value:ch1+ch2}:"<>=!+-*%&|^".indexOf(ch1)>=0?"="===ch2?{type:Token.Punctuator,value:ch1+ch2}:{type:Token.Punctuator,value:ch1}:"/"===ch1?"="===ch2?{type:Token.Punctuator,value:"/="}:{type:Token.Punctuator,value:"/"}:null},scanComments:function(){function commentToken(label,body,opt){var special=["jshint","jslint","members","member","globals","global","exported"],isSpecial=!1,value=label+body,commentType="plain";return opt=opt||{}
8,opt.isMultiline&&(value+="*/"),body=body.replace(/\\n/g," "),"/*"===label&®.fallsThrough.test(body)&&(isSpecial=!0,commentType="falls through"),special.forEach(function(str){if(!isSpecial&&("//"!==label||"jshint"===str)&&(" "===body.charAt(str.length)&&body.substr(0,str.length)===str&&(isSpecial=!0,label+=str,body=body.substr(str.length)),isSpecial||" "!==body.charAt(0)||" "!==body.charAt(str.length+1)||body.substr(1,str.length)!==str||(isSpecial=!0,label=label+" "+str,body=body.substr(str.length+1)),isSpecial))switch(str){case"member":commentType="members";break;case"global":commentType="globals";break;default:var options=body.split(":").map(function(v){return v.replace(/^\\s+/,"").replace(/\\s+$/,"")});if(2===options.length)switch(options[0]){case"ignore":switch(options[1]){case"start":self.ignoringLinterErrors=!0,isSpecial=!1;break;case"end":self.ignoringLinterErrors=!1,isSpecial=!1}}commentType=str}}),{type:Token.Comment,commentType:commentType,value:value,body:body,isSpecial:isSpecial,isMultiline:opt.isMultiline||!1,isMalformed:opt.isMalformed||!1}}var ch1=this.peek(),ch2=this.peek(1),rest=this.input.substr(2),startLine=this.line,startChar=this.char,self=this;if("*"===ch1&&"/"===ch2)return this.trigger("error",{code:"E018",line:startLine,character:startChar}),this.skip(2),null;if("/"!==ch1||"*"!==ch2&&"/"!==ch2)return null;if("/"===ch2)return this.skip(this.input.length),commentToken("//",rest);var body="";if("*"===ch2){for(this.inComment=!0,this.skip(2);"*"!==this.peek()||"/"!==this.peek(1);)if(""===this.peek()){if(body+="\\n",!this.nextLine())return this.trigger("error",{code:"E017",line:startLine,character:startChar}),this.inComment=!1,commentToken("/*",body,{isMultiline:!0,isMalformed:!0})}else body+=this.peek(),this.skip();return this.skip(2),this.inComment=!1,commentToken("/*",body,{isMultiline:!0})}},scanKeyword:function(){var result=/^[a-zA-Z_$][a-zA-Z0-9_$]*/.exec(this.input),keywords=["if","in","do","var","for","new","try","let","this","else","case","void","with","enum","while","break","catch","throw","const","yield","class","super","return","typeof","delete","switch","export","import","default","finally","extends","function","continue","debugger","instanceof"];return result&&keywords.indexOf(result[0])>=0?{type:Token.Keyword,value:result[0]}:null},scanIdentifier:function(){function isNonAsciiIdentifierStart(code){return code>256}function isNonAsciiIdentifierPart(code){return code>256}function isHexDigit(str){return/^[0-9a-fA-F]$/.test(str)}function removeEscapeSequences(id){return id.replace(/\\\\u([0-9a-fA-F]{4})/g,function(m0,codepoint){return String.fromCharCode(parseInt(codepoint,16))})}var type,char,id="",index=0,readUnicodeEscapeSequence=function(){if(index+=1,"u"!==this.peek(index))return null;var code,ch1=this.peek(index+1),ch2=this.peek(index+2),ch3=this.peek(index+3),ch4=this.peek(index+4);return isHexDigit(ch1)&&isHexDigit(ch2)&&isHexDigit(ch3)&&isHexDigit(ch4)?(code=parseInt(ch1+ch2+ch3+ch4,16),asciiIdentifierPartTable[code]||isNonAsciiIdentifierPart(code)?(index+=5,"\\\\u"+ch1+ch2+ch3+ch4):null):null}.bind(this),getIdentifierStart=function(){var chr=this.peek(index),code=chr.charCodeAt(0);return 92===code?readUnicodeEscapeSequence():128>code?asciiIdentifierStartTable[code]?(index+=1,chr):null:isNonAsciiIdentifierStart(code)?(index+=1,chr):null}.bind(this),getIdentifierPart=function(){var chr=this.peek(index),code=chr.charCodeAt(0);return 92===code?readUnicodeEscapeSequence():128>code?asciiIdentifierPartTable[code]?(index+=1,chr):null:isNonAsciiIdentifierPart(code)?(index+=1,chr):null}.bind(this);if(char=getIdentifierStart(),null===char)return null;for(id=char;char=getIdentifierPart(),null!==char;)id+=char;switch(id){case"true":case"false":type=Token.BooleanLiteral;break;case"null":type=Token.NullLiteral;break;default:type=Token.Identifier}return{type:type,value:removeEscapeSequences(id),text:id,tokenLength:id.length}},scanNumericLiteral:function(){function isDecimalDigit(str){return/^[0-9]$/.test(str)}function isOctalDigit(str){return/^[0-7]$/.test(str)}function isBinaryDigit(str){return/^[01]$/.test(str)}function isHexDigit(str){return/^[0-9a-fA-F]$/.test(str)}function isIdentifierStart(ch){return"$"===ch||"_"===ch||"\\\\"===ch||ch>="a"&&"z">=ch||ch>="A"&&"Z">=ch}var bad,index=0,value="",length=this.input.length,char=this.peek(index),isAllowedDigit=isDecimalDigit,base=10,isLegacy=!1;if("."!==char&&!isDecimalDigit(char))return null;if("."!==char){for(value=this.peek(index),index+=1,char=this.peek(index),"0"===value&&(("x"===char||"X"===char)&&(isAllowedDigit=isHexDigit,base=16,index+=1,value+=char),("o"===char||"O"===char)&&(isAllowedDigit=isOctalDigit,base=8,state.inES6(!0)||this.trigger("warning",{code:"W119",line:this.line,character:this.char,data:["Octal integer literal","6"]}),index+=1,value+=char),("b"===char||"B"===char)&&(isAllowedDigit=isBinaryDigit,base=2,state.inES6(!0)||this.trigger("warning",{code:"W119",line:this.line,character:this.char,data:["Binary integer literal","6"]}),index+=1,value+=char),isOctalDigit(char)&&(isAllowedDigit=isOctalDigit,base=8,isLegacy=!0,bad=!1,index+=1,value+=char),!isOctalDigit(char)&&isDecimalDigit(char)&&(index+=1,value+=char));length>index;){if(char=this.peek(index),isLegacy&&isDecimalDigit(char))bad=!0;else if(!isAllowedDigit(char))break;value+=char,index+=1}if(isAllowedDigit!==isDecimalDigit)return!isLegacy&&2>=value.length?{type:Token.NumericLiteral,value:value,isMalformed:!0}:length>index&&(char=this.peek(index),isIdentifierStart(char))?null:{type:Token.NumericLiteral,value:value,base:base,isLegacy:isLegacy,isMalformed:!1}}if("."===char)for(value+=char,index+=1;length>index&&(char=this.peek(index),isDecimalDigit(char));)value+=char,index+=1;if("e"===char||"E"===char){if(value+=char,index+=1,char=this.peek(index),("+"===char||"-"===char)&&(value+=this.peek(index),index+=1),char=this.peek(index),!isDecimalDigit(char))return null;for(value+=char,index+=1;length>index&&(char=this.peek(index),isDecimalDigit(char));)value+=char,index+=1}return length>index&&(char=this.peek(index),isIdentifierStart(char))?null:{type:Token.NumericLiteral,value:value,base:base,isMalformed:!isFinite(value)}},scanEscapeSequence:function(checks){var allowNewLine=!1,jump=1;this.skip();var char=this.peek();switch(char){case"\'":this.triggerAsync("warning",{code:"W114",line:this.line,character:this.char,data:["\\\\\'"]},checks,function(){return state.jsonMode});break;case"b":char="\\\\b";break;case"f":char="\\\\f";break;case"n":char="\\\\n";break;case"r":char="\\\\r";break;case"t":char="\\\\t";break;case"0":char="\\\\0";var n=parseInt(this.peek(1),10);this.triggerAsync("warning",{code:"W115",line:this.line,character:this.char},checks,function(){return n>=0&&7>=n&&state.isStrict()});break;case"u":var hexCode=this.input.substr(1,4),code=parseInt(hexCode,16);isNaN(code)&&this.trigger("warning",{code:"W052",line:this.line,character:this.char,data:["u"+hexCode]}),char=String.fromCharCode(code),jump=5;break;case"v":this.triggerAsync("warning",{code:"W114",line:this.line,character:this.char,data:["\\\\v"]},checks,function(){return state.jsonMode}),char="\v";break;case"x":var x=parseInt(this.input.substr(1,2),16);this.triggerAsync("warning",{code:"W114",line:this.line,character:this.char,data:["\\\\x-"]},checks,function(){return state.jsonMode}),char=String.fromCharCode(x),jump=3;break;case"\\\\":char="\\\\\\\\";break;
8case\'"\':char=\'\\\\"\';break;case"/":break;case"":allowNewLine=!0,char=""}return{"char":char,jump:jump,allowNewLine:allowNewLine}},scanTemplateLiteral:function(checks){var tokenType,ch,value="",startLine=this.line,startChar=this.char,depth=this.templateStarts.length;if(!state.inES6(!0))return null;if("`"===this.peek())tokenType=Token.TemplateHead,this.templateStarts.push({line:this.line,"char":this.char}),depth=this.templateStarts.length,this.skip(1),this.pushContext(Context.Template);else{if(!this.inContext(Context.Template)||"}"!==this.peek())return null;tokenType=Token.TemplateMiddle}for(;"`"!==this.peek();){for(;""===(ch=this.peek());)if(value+="\\n",!this.nextLine()){var startPos=this.templateStarts.pop();return this.trigger("error",{code:"E052",line:startPos.line,character:startPos.char}),{type:tokenType,value:value,startLine:startLine,startChar:startChar,isUnclosed:!0,depth:depth,context:this.popContext()}}if("$"===ch&&"{"===this.peek(1))return value+="${",this.skip(2),{type:tokenType,value:value,startLine:startLine,startChar:startChar,isUnclosed:!1,depth:depth,context:this.currentContext()};\nif("\\\\"===ch){var escape=this.scanEscapeSequence(checks);value+=escape.char,this.skip(escape.jump)}else"`"!==ch&&(value+=ch,this.skip(1))}return tokenType=tokenType===Token.TemplateHead?Token.NoSubstTemplate:Token.TemplateTail,this.skip(1),this.templateStarts.pop(),{type:tokenType,value:value,startLine:startLine,startChar:startChar,isUnclosed:!1,depth:depth,context:this.popContext()}},scanStringLiteral:function(checks){var quote=this.peek();if(\'"\'!==quote&&"\'"!==quote)return null;this.triggerAsync("warning",{code:"W108",line:this.line,character:this.char},checks,function(){return state.jsonMode&&\'"\'!==quote});var value="",startLine=this.line,startChar=this.char,allowNewLine=!1;for(this.skip();this.peek()!==quote;)if(""===this.peek()){if(allowNewLine?(allowNewLine=!1,this.triggerAsync("warning",{code:"W043",line:this.line,character:this.char},checks,function(){return!state.option.multistr}),this.triggerAsync("warning",{code:"W042",line:this.line,character:this.char},checks,function(){return state.jsonMode&&state.option.multistr})):this.trigger("warning",{code:"W112",line:this.line,character:this.char}),!this.nextLine())return this.trigger("error",{code:"E029",line:startLine,character:startChar}),{type:Token.StringLiteral,value:value,startLine:startLine,startChar:startChar,isUnclosed:!0,quote:quote}}else{allowNewLine=!1;var char=this.peek(),jump=1;if(" ">char&&this.trigger("warning",{code:"W113",line:this.line,character:this.char,data:["<non-printable>"]}),"\\\\"===char){var parsed=this.scanEscapeSequence(checks);char=parsed.char,jump=parsed.jump,allowNewLine=parsed.allowNewLine}value+=char,this.skip(jump)}return this.skip(),{type:Token.StringLiteral,value:value,startLine:startLine,startChar:startChar,isUnclosed:!1,quote:quote}},scanRegExp:function(){var terminated,index=0,length=this.input.length,char=this.peek(),value=char,body="",flags=[],malformed=!1,isCharSet=!1,scanUnexpectedChars=function(){" ">char&&(malformed=!0,this.trigger("warning",{code:"W048",line:this.line,character:this.char})),"<"===char&&(malformed=!0,this.trigger("warning",{code:"W049",line:this.line,character:this.char,data:[char]}))}.bind(this);if(!this.prereg||"/"!==char)return null;for(index+=1,terminated=!1;length>index;)if(char=this.peek(index),value+=char,body+=char,isCharSet)"]"===char&&("\\\\"!==this.peek(index-1)||"\\\\"===this.peek(index-2))&&(isCharSet=!1),"\\\\"===char&&(index+=1,char=this.peek(index),body+=char,value+=char,scanUnexpectedChars()),index+=1;else{if("\\\\"===char){if(index+=1,char=this.peek(index),body+=char,value+=char,scanUnexpectedChars(),"/"===char){index+=1;continue}if("["===char){index+=1;continue}}if("["!==char){if("/"===char){body=body.substr(0,body.length-1),terminated=!0,index+=1;break}index+=1}else isCharSet=!0,index+=1}if(!terminated)return this.trigger("error",{code:"E015",line:this.line,character:this.from}),void this.trigger("fatal",{line:this.line,from:this.from});for(;length>index&&(char=this.peek(index),/[gim]/.test(char));)flags.push(char),value+=char,index+=1;try{RegExp(body,flags.join(""))}catch(err){malformed=!0,this.trigger("error",{code:"E016",line:this.line,character:this.char,data:[err.message]})}return{type:Token.RegExp,value:value,flags:flags,isMalformed:malformed}},scanNonBreakingSpaces:function(){return state.option.nonbsp?this.input.search(/(\\u00A0)/):-1},scanUnsafeChars:function(){return this.input.search(reg.unsafeChars)},next:function(checks){this.from=this.char;var start;
8if(/\\s/.test(this.peek()))for(start=this.char;/\\s/.test(this.peek());)this.from+=1,this.skip();var match=this.scanComments()||this.scanStringLiteral(checks)||this.scanTemplateLiteral(checks);return match?match:(match=this.scanRegExp()||this.scanPunctuator()||this.scanKeyword()||this.scanIdentifier()||this.scanNumericLiteral(),match?(this.skip(match.tokenLength||match.value.length),match):null)},nextLine:function(){var char;if(this.line>=this.getLines().length)return!1;this.input=this.getLines()[this.line],this.line+=1,this.char=1,this.from=1;var inputTrimmed=this.input.trim(),startsWith=function(){return _.some(arguments,function(prefix){return 0===inputTrimmed.indexOf(prefix)})},endsWith=function(){return _.some(arguments,function(suffix){return-1!==inputTrimmed.indexOf(suffix,inputTrimmed.length-suffix.length)})};if(this.ignoringLinterErrors===!0&&(startsWith("/*","//")||this.inComment&&endsWith("*/")||(this.input="")),char=this.scanNonBreakingSpaces(),char>=0&&this.trigger("warning",{code:"W125",line:this.line,character:char+1}),this.input=this.input.replace(/\\t/g,state.tab),char=this.scanUnsafeChars(),char>=0&&this.trigger("warning",{code:"W100",line:this.line,character:char}),!this.ignoringLinterErrors&&state.option.maxlen&&state.option.maxlen<this.input.length){var inComment=this.inComment||startsWith.call(inputTrimmed,"//")||startsWith.call(inputTrimmed,"/*"),shouldTriggerError=!inComment||!reg.maxlenException.test(inputTrimmed);shouldTriggerError&&this.trigger("warning",{code:"W101",line:this.line,character:this.input.length})}return!0},start:function(){this.nextLine()},token:function(){function isReserved(token,isProperty){if(!token.reserved)return!1;var meta=token.meta;if(meta&&meta.isFutureReservedWord&&state.inES5()){if(!meta.es5)return!1;if(meta.strictOnly&&!state.option.strict&&!state.isStrict())return!1;if(isProperty)return!1}return!0}for(var token,checks=asyncTrigger(),create=function(type,value,isProperty,token){var obj;if("(endline)"!==type&&"(end)"!==type&&(this.prereg=!1),"(punctuator)"===type){switch(value){case".":case")":case"~":case"#":case"]":case"++":case"--":this.prereg=!1;break;default:this.prereg=!0}obj=Object.create(state.syntax[value]||state.syntax["(error)"])}return"(identifier)"===type&&(("return"===value||"case"===value||"typeof"===value)&&(this.prereg=!0),_.has(state.syntax,value)&&(obj=Object.create(state.syntax[value]||state.syntax["(error)"]),isReserved(obj,isProperty&&"(identifier)"===type)||(obj=null))),obj||(obj=Object.create(state.syntax[type])),obj.identifier="(identifier)"===type,obj.type=obj.type||type,obj.value=value,obj.line=this.line,obj.character=this.char,obj.from=this.from,obj.identifier&&token&&(obj.raw_text=token.text||token.value),token&&token.startLine&&token.startLine!==this.line&&(obj.startLine=token.startLine),token&&token.context&&(obj.context=token.context),token&&token.depth&&(obj.depth=token.depth),token&&token.isUnclosed&&(obj.isUnclosed=token.isUnclosed),isProperty&&obj.identifier&&(obj.isProperty=isProperty),obj.check=checks.check,obj}.bind(this);;){if(!this.input.length)return this.nextLine()?create("(endline)",""):this.exhausted?null:(this.exhausted=!0,create("(end)",""));if(token=this.next(checks))switch(token.type){case Token.StringLiteral:return this.triggerAsync("String",{line:this.line,"char":this.char,from:this.from,startLine:token.startLine,startChar:token.startChar,value:token.value,quote:token.quote},checks,function(){return!0}),create("(string)",token.value,null,token);case Token.TemplateHead:return this.trigger("TemplateHead",{line:this.line,"char":this.char,from:this.from,startLine:token.startLine,startChar:token.startChar,value:token.value}),create("(template)",token.value,null,token);case Token.TemplateMiddle:return this.trigger("TemplateMiddle",{line:this.line,"char":this.char,from:this.from,startLine:token.startLine,startChar:token.startChar,value:token.value}),create("(template middle)",token.value,null,token);case Token.TemplateTail:return this.trigger("TemplateTail",{line:this.line,"char":this.char,from:this.from,startLine:token.startLine,startChar:token.startChar,value:token.value}),create("(template tail)",token.value,null,token);case Token.NoSubstTemplate:return this.trigger("NoSubstTemplate",{line:this.line,"char":this.char,from:this.from,startLine:token.startLine,startChar:token.startChar,value:token.value}),create("(no subst template)",token.value,null,token);case Token.Identifier:this.triggerAsync("Identifier",{line:this.line,"char":this.char,from:this.form,name:token.value,raw_name:token.text,isProperty:"."===state.tokens.curr.id},checks,function(){return!0});
8case Token.Keyword:case Token.NullLiteral:case Token.BooleanLiteral:return create("(identifier)",token.value,"."===state.tokens.curr.id,token);case Token.NumericLiteral:return token.isMalformed&&this.trigger("warning",{code:"W045",line:this.line,character:this.char,data:[token.value]}),this.triggerAsync("warning",{code:"W114",line:this.line,character:this.char,data:["0x-"]},checks,function(){return 16===token.base&&state.jsonMode}),this.triggerAsync("warning",{code:"W115",line:this.line,character:this.char},checks,function(){return state.isStrict()&&8===token.base&&token.isLegacy}),this.trigger("Number",{line:this.line,"char":this.char,from:this.from,value:token.value,base:token.base,isMalformed:token.malformed}),create("(number)",token.value);case Token.RegExp:return create("(regexp)",token.value);case Token.Comment:if(state.tokens.curr.comment=!0,token.isSpecial)return{id:"(comment)",value:token.value,body:token.body,type:token.commentType,isSpecial:token.isSpecial,line:this.line,character:this.char,from:this.from};break;case"":break;default:return create("(punctuator)",token.value)}else this.input.length&&(this.trigger("error",{code:"E024",line:this.line,character:this.char,data:[this.peek()]}),this.input="")}}},exports.Lexer=Lexer,exports.Context=Context},{"../data/ascii-identifier-data.js":"/node_modules/jshint/data/ascii-identifier-data.js","../lodash":"/node_modules/jshint/lodash.js","./reg.js":"/node_modules/jshint/src/reg.js","./state.js":"/node_modules/jshint/src/state.js",events:"/node_modules/browserify/node_modules/events/events.js"}],"/node_modules/jshint/src/messages.js":[function(_dereq_,module,exports){"use strict";var _=_dereq_("../lodash"),errors={E001:"Bad option: \'{a}\'.",E002:"Bad option value.",E003:"Expected a JSON value.",E004:"Input is neither a string nor an array of strings.",E005:"Input is empty.",E006:"Unexpected early end of program.",E007:\'Missing "use strict" statement.\',E008:"Strict violation.",E009:"Option \'validthis\' can\'t be used in a global scope.",E010:"\'with\' is not allowed in strict mode.",E011:"\'{a}\' has already been declared.",E012:"const \'{a}\' is initialized to \'undefined\'.",E013:"Attempting to override \'{a}\' which is a constant.",E014:"A regular expression literal can be confused with \'/=\'.",E015:"Unclosed regular expression.",E016:"Invalid regular expression.",E017:"Unclosed comment.",E018:"Unbegun comment.",E019:"Unmatched \'{a}\'.",E020:"Expected \'{a}\' to match \'{b}\' from line {c} and instead saw \'{d}\'.",E021:"Expected \'{a}\' and instead saw \'{b}\'.",E022:"Line breaking error \'{a}\'.",E023:"Missing \'{a}\'.",E024:"Unexpected \'{a}\'.",E025:"Missing \':\' on a case clause.",E026:"Missing \'}\' to match \'{\' from line {a}.",E027:"Missing \']\' to match \'[\' from line {a}.",E028:"Illegal comma.",E029:"Unclosed string.",E030:"Expected an identifier and instead saw \'{a}\'.",E031:"Bad assignment.",E032:"Expected a small integer or \'false\' and instead saw \'{a}\'.",E033:"Expected an operator and instead saw \'{a}\'.",E034:"get/set are ES5 features.",E035:"Missing property name.",E036:"Expected to see a statement and instead saw a block.",E037:null,E038:null,E039:"Function declarations are not invocable. Wrap the whole function invocation in parens.",E040:"Each value should have its own case label.",E041:"Unrecoverable syntax error.",E042:"Stopping.",E043:"Too many errors.",E044:null,E045:"Invalid for each loop.",E046:"A yield statement shall be within a generator function (with syntax: `function*`)",E047:null,E048:"{a} declaration not directly within block.",E049:"A {a} cannot be named \'{b}\'.",E050:"Mozilla acequires the yield expression to be parenthesized here.",E051:null,E052:"Unclosed template literal.",E053:"Export declaration must be in global scope.",E054:"Class properties must be methods. Expected \'(\' but instead saw \'{a}\'.",E055:"The \'{a}\' option cannot be set after any executable code.",E056:"\'{a}\' was used before it was declared, which is illegal for \'{b}\' variables.",E057:"Invalid meta property: \'{a}.{b}\'.",E058:"Missing semicolon."},warnings={W001:"\'hasOwnProperty\' is a really bad name.",W002:"Value of \'{a}
8\' may be overwritten in IE 8 and earlier.",W003:"\'{a}\' was used before it was defined.",W004:"\'{a}\' is already defined.",W005:"A dot following a number can be confused with a decimal point.",W006:"Confusing minuses.",W007:"Confusing plusses.",W008:"A leading decimal point can be confused with a dot: \'{a}\'.",W009:"The array literal notation [] is preferable.",W010:"The object literal notation {} is preferable.",W011:null,W012:null,W013:null,W014:"Bad line breaking before \'{a}\'.",W015:null,W016:"Unexpected use of \'{a}\'.",W017:"Bad operand.",W018:"Confusing use of \'{a}\'.",W019:"Use the isNaN function to compare with NaN.",W020:"Read only.",W021:"Reassignment of \'{a}\', which is is a {b}. Use \'var\' or \'let\' to declare bindings that may change.",W022:"Do not assign to the exception parameter.",W023:"Expected an identifier in an assignment and instead saw a function invocation.",W024:"Expected an identifier and instead saw \'{a}\' (a reserved word).",W025:"Missing name in function declaration.",W026:"Inner functions should be listed at the top of the outer function.",W027:"Unreachable \'{a}\' after \'{b}\'.",W028:"Label \'{a}\' on {b} statement.",W030:"Expected an assignment or function call and instead saw an expression.",W031:"Do not use \'new\' for side effects.",W032:"Unnecessary semicolon.",W033:"Missing semicolon.",W034:\'Unnecessary directive "{a}".\',W035:"Empty block.",W036:"Unexpected /*member \'{a}\'.",W037:"\'{a}\' is a statement label.",W038:"\'{a}\' used out of scope.",W039:"\'{a}\' is not allowed.",W040:"Possible strict violation.",W041:"Use \'{a}\' to compare with \'{b}\'.",W042:"Avoid EOL escaping.",W043:"Bad escaping of EOL. Use option multistr if needed.",W044:"Bad or unnecessary escaping.",W045:"Bad number \'{a}\'.",W046:"Don\'t use extra leading zeros \'{a}\'.",W047:"A trailing decimal point can be confused with a dot: \'{a}\'.",W048:"Unexpected control character in regular expression.",W049:"Unexpected escaped character \'{a}\' in regular expression.",W050:"JavaScript URL.",W051:"Variables should not be deleted.",W052:"Unexpected \'{a}\'.",W053:"Do not use {a} as a constructor.",W054:"The Function constructor is a form of eval.",W055:"A constructor name should start with an uppercase letter.",W056:"Bad constructor.",W057:"Weird construction. Is \'new\' necessary?",W058:"Missing \'()\' invoking a constructor.",W059:"Avoid arguments.{a}.",W060:"document.write can be a form of eval.",W061:"eval can be harmful.",W062:"Wrap an immediate function invocation in parens to assist the reader in understanding that the expression is the result of a function, and not the function itself.",W063:"Math is not a function.",W064:"Missing \'new\' prefix when invoking a constructor.",W065:"Missing radix parameter.",W066:"Implied eval. Consider passing a function instead of a string.",W067:"Bad invocation.",W068:"Wrapping non-IIFE function literals in parens is unnecessary.",W069:"[\'{a}\'] is better written in dot notation.",W070:"Extra comma. (it breaks older versions of IE)",W071:"This function has too many statements. ({a})",W072:"This function has too many parameters. ({a})",W073:"Blocks are nested too deeply. ({a})",W074:"This function\'s cyclomatic complexity is too high. ({a})",W075:"Duplicate {a} \'{b}\'.",W076:"Unexpected parameter \'{a}\' in get {b} function.",W077:"Expected a single parameter in set {a} function.",W078:"Setter is defined without getter.",W079:"Redefinition of \'{a}\'.",W080:"It\'s not necessary to initialize \'{a}\' to \'undefined\'.",W081:null,W082:"Function declarations should not be placed in blocks. Use a function expression or move the statement to the top of the outer function.",W083:"Don\'t make functions within a loop.",W084:"Assignment in conditional expression",W085:"Don\'t use \'with\'.",W086:"Expected a \'break\' statement before \'{a}\'.",W087:"Forgotten \'debugger\' statement?",W088:"Creating global \'for\' variable. Should be \'for (var {a} ...\'.",W089:"The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.",W090:"\'{a}\' is not a statement label.",W091:null,W093:"Did you mean to return a conditional instead of an assignment?",W094:"Unexpected comma.",W095:"Expected a string and instead saw {a}.",W096:"The \'{a}\' key may produce unexpected results.",W097:\'Use the function form of "use strict".\',W098:"\'{a}\' is defined but never used.",W099:null,W100:"This character may get silently deleted by one or more browsers.",W101:"Line is too long.",W102:null,W103:"The \'{a}\' property is deprecated.",W104:"\'{a}\' is available in ES{b} (use \'esversion: {b}\') or Mozilla JS extensions (use moz).",W105:"Unexpected {a} in \'{b}\'.",W106:"Identifier \'{a}\' is not in camel case.",W107:"Script URL.",W108:"Strings must use doublequote.",W109:"Strings must use singlequote.",W110:"Mixed double and single quotes.",W112:"Unclosed string.",W113:"Control character in string: {a}.",W114:"Avoid {a}.",W115:"Octal literals are not allowed in strict mode.",W116:"Expected \'{a}\' and instead saw \'{b}\'.",W117:"\'{a}\' is not defined.",W118:"\'{a}\' is only available in Mozilla JavaScript extensions (use moz option).",W119:"\'{a}\' is only available in ES{b} (use \'esversion: {b}\').",W120:"You might be leaking a variable ({a}
8) here.",W121:"Extending prototype of native object: \'{a}\'.",W122:"Invalid typeof value \'{a}\'",W123:"\'{a}\' is already defined in outer scope.",W124:"A generator function shall contain a yield statement.",W125:"This line contains non-breaking spaces: http://jshint.com/doc/options/#nonbsp",W126:"Unnecessary grouping operator.",W127:"Unexpected use of a comma operator.",W128:"Empty array elements acequire elision=true.",W129:"\'{a}\' is defined in a future version of JavaScript. Use a different variable name to avoid migration issues.",W130:"Invalid element after rest element.",W131:"Invalid parameter after rest parameter.",W132:"`var` declarations are forbidden. Use `let` or `const` instead.",W133:"Invalid for-{a} loop left-hand-side: {b}.",W134:"The \'{a}\' option is only available when linting ECMAScript {b} code.",W135:"{a} may not be supported by non-browser environments.",W136:"\'{a}\' must be in function scope.",W137:"Empty destructuring.",W138:"Regular parameters should not come after default parameters."},info={I001:"Comma warnings can be turned off with \'laxcomma\'.",I002:null,I003:"ES5 option is now set per default"};exports.errors={},exports.warnings={},exports.info={},_.each(errors,function(desc,code){exports.errors[code]={code:code,desc:desc}}),_.each(warnings,function(desc,code){exports.warnings[code]={code:code,desc:desc}}),_.each(info,function(desc,code){exports.info[code]={code:code,desc:desc}})},{"../lodash":"/node_modules/jshint/lodash.js"}],"/node_modules/jshint/src/name-stack.js":[function(_dereq_,module){"use strict";function NameStack(){this._stack=[]}Object.defineProperty(NameStack.prototype,"length",{get:function(){return this._stack.length}}),NameStack.prototype.push=function(){this._stack.push(null)},NameStack.prototype.pop=function(){this._stack.pop()},NameStack.prototype.set=function(token){this._stack[this.length-1]=token},NameStack.prototype.infer=function(){var type,nameToken=this._stack[this.length-1],prefix="";return nameToken&&"class"!==nameToken.type||(nameToken=this._stack[this.length-2]),nameToken?(type=nameToken.type,"(string)"!==type&&"(number)"!==type&&"(identifier)"!==type&&"default"!==type?"(expression)":(nameToken.accessorType&&(prefix=nameToken.accessorType+" "),prefix+nameToken.value)):"(empty)"},module.exports=NameStack},{}],"/node_modules/jshint/src/options.js":[function(_dereq_,module,exports){"use strict";exports.bool={enforcing:{bitwise:!0,freeze:!0,camelcase:!0,curly:!0,eqeqeq:!0,futurehostile:!0,notypeof:!0,es3:!0,es5:!0,forin:!0,funcscope:!0,immed:!0,iterator:!0,newcap:!0,noarg:!0,nocomma:!0,noempty:!0,nonbsp:!0,nonew:!0,undef:!0,singleGroups:!1,varstmt:!1,enforceall:!1},relaxing:{asi:!0,multistr:!0,debug:!0,boss:!0,evil:!0,globalstrict:!0,plusplus:!0,proto:!0,scripturl:!0,sub:!0,supernew:!0,laxbreak:!0,laxcomma:!0,validthis:!0,withstmt:!0,moz:!0,noyield:!0,eqnull:!0,lastsemic:!0,loopfunc:!0,expr:!0,esnext:!0,elision:!0},environments:{mootools:!0,couch:!0,jasmine:!0,jquery:!0,node:!0,qunit:!0,rhino:!0,shelljs:!0,prototypejs:!0,yui:!0,mocha:!0,module:!0,wsh:!0,worker:!0,nonstandard:!0,browser:!0,browserify:!0,devel:!0,dojo:!0,typed:!0,phantom:!0},obsolete:{onecase:!0,regexp:!0,regexdash:!0}},exports.val={maxlen:!1,indent:!1,maxerr:!1,predef:!1,globals:!1,quotmark:!1,scope:!1,maxstatements:!1,maxdepth:!1,maxparams:!1,maxcomplexity:!1,shadow:!1,strict:!0,unused:!0,latedef:!1,ignore:!1,ignoreDelimiters:!1,esversion:5},exports.inverted={bitwise:!0,forin:!0,newcap:!0,plusplus:!0,regexp:!0,undef:!0,eqeqeq:!0,strict:!0},exports.validNames=Object.keys(exports.val).concat(Object.keys(exports.bool.relaxing)).concat(Object.keys(exports.bool.enforcing)).concat(Object.keys(exports.bool.obsolete)).concat(Object.keys(exports.bool.environments)),exports.renamed={eqeq:"eqeqeq",windows:"wsh",sloppy:"strict"},exports.removed={nomen:!0,onevar:!0,passfail:!0,white:!0,gcl:!0,smarttabs:!0,trailing:!0},exports.noenforceall={varstmt:!0,strict:!0}},{}],"/node_modules/jshint/src/reg.js":[function(_dereq_,module,exports){"use strict";exports.unsafeString=/@cc|<\\/?|script|\\]\\s*\\]|<\\s*!|</i,exports.unsafeChars=/[\\u0000-\\u
8001f\\u007f-\\u009f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/,exports.needEsc=/[\\u0000-\\u001f&<"\\/\\\\\\u007f-\\u009f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/,exports.needEscGlobal=/[\\u0000-\\u001f&<"\\/\\\\\\u007f-\\u009f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,exports.starSlash=/\\*\\//,exports.identifier=/^([a-zA-Z_$][a-zA-Z0-9_$]*)$/,exports.javascriptURL=/^(?:javascript|jscript|ecmascript|vbscript|livescript)\\s*:/i,exports.fallsThrough=/^\\s*falls?\\sthrough\\s*$/,exports.maxlenException=/^(?:(?:\\/\\/|\\/\\*|\\*) ?)?[^ ]+$/},{}],"/node_modules/jshint/src/scope-manager.js":[function(_dereq_,module){"use strict";var _=_dereq_("../lodash"),events=_dereq_("events"),marker={},scopeManager=function(state,predefined,exported,declared){function _newScope(type){_current={"(labels)":Object.create(null),"(usages)":Object.create(null),"(breakLabels)":Object.create(null),"(parent)":_current,"(type)":type,"(params)":"functionparams"===type||"catchparams"===type?[]:null},_scopeStack.push(_current)}function warning(code,token){emitter.emit("warning",{code:code,token:token,data:_.slice(arguments,2)})}function error(code,token){emitter.emit("warning",{code:code,token:token,data:_.slice(arguments,2)})}function _setupUsages(labelName){_current["(usages)"][labelName]||(_current["(usages)"][labelName]={"(modified)":[],"(reassigned)":[],"(tokens)":[]})}function _checkForUnused(){if("functionparams"===_current["(type)"])return _checkParams(),void 0;var curentLabels=_current["(labels)"];for(var labelName in curentLabels)curentLabels[labelName]&&"exception"!==curentLabels[labelName]["(type)"]&&curentLabels[labelName]["(unused)"]&&_warnUnused(labelName,curentLabels[labelName]["(token)"],"var")}function _checkParams(){var params=_current["(params)"];if(params)for(var unused_opt,param=params.pop();param;){var label=_current["(labels)"][param];if(unused_opt=_getUnusedOption(state.funct["(unusedOption)"]),"undefined"===param)return;if(label["(unused)"])_warnUnused(param,label["(token)"],"param",state.funct["(unusedOption)"]);else if("last-param"===unused_opt)return;param=params.pop()}}function _getLabel(labelName){for(var i=_scopeStack.length-1;i>=0;--i){var scopeLabels=_scopeStack[i]["(labels)"];if(scopeLabels[labelName])return scopeLabels}}function usedSoFarInCurrentFunction(labelName){for(var i=_scopeStack.length-1;i>=0;i--){var current=_scopeStack[i];if(current["(usages)"][labelName])return current["(usages)"][labelName];if(current===_currentFunctBody)break}return!1}function _checkOuterShadow(labelName,token){if("outer"===state.option.shadow)for(var isGlobal="global"===_currentFunctBody["(type)"],isNewFunction="functionparams"===_current["(type)"],outsideCurrentFunction=!isGlobal,i=0;_scopeStack.length>i;i++){var stackItem=_scopeStack[i];isNewFunction||_scopeStack[i+1]!==_currentFunctBody||(outsideCurrentFunction=!1),outsideCurrentFunction&&stackItem["(labels)"][labelName]&&warning("W123",token,labelName),stackItem["(breakLabels)"][labelName]&&warning("W123",token,labelName)}}function _latedefWarning(type,labelName,token){state.option.latedef&&(state.option.latedef===!0&&"function"===type||"function"!==type)&&warning("W003",token,labelName)}var _current,_scopeStack=[];_newScope("global"),_current["(predefined)"]=predefined;var _currentFunctBody=_current,usedPredefinedAndGlobals=Object.create(null),impliedGlobals=Object.create(null),unuseds=[],emitter=new events.EventEmitter,_getUnusedOption=function(unused_opt){return void 0===unused_opt&&(unused_opt=state.option.unused),unused_opt===!0&&(unused_opt="last-param"),unused_opt},_warnUnused=function(name,tkn,type,unused_opt){var line=tkn.line,chr=tkn.from,raw_name=tkn.raw_text||name;unused_opt=_getUnusedOption(unused_opt);var warnable_types={vars:["var"],"last-param":["var","param"],strict:["var","param","last-param"]};unused_opt&&warnable_types[unused_opt]&&-1!==warnable_types[unused_opt].indexOf(type)&&warning("W098",{line:line,from:chr}
8,raw_name),(unused_opt||"var"===type)&&unuseds.push({name:name,line:line,character:chr})},scopeManagerInst={on:function(names,listener){names.split(" ").forEach(function(name){emitter.on(name,listener)})},isPredefined:function(labelName){return!this.has(labelName)&&_.has(_scopeStack[0]["(predefined)"],labelName)},stack:function(type){var previousScope=_current;_newScope(type),type||"functionparams"!==previousScope["(type)"]||(_current["(isFuncBody)"]=!0,_current["(context)"]=_currentFunctBody,_currentFunctBody=_current)},unstack:function(){var i,j,subScope=_scopeStack.length>1?_scopeStack[_scopeStack.length-2]:null,isUnstackingFunctionBody=_current===_currentFunctBody,isUnstackingFunctionParams="functionparams"===_current["(type)"],isUnstackingFunctionOuter="functionouter"===_current["(type)"],currentUsages=_current["(usages)"],currentLabels=_current["(labels)"],usedLabelNameList=Object.keys(currentUsages);for(currentUsages.__proto__&&-1===usedLabelNameList.indexOf("__proto__")&&usedLabelNameList.push("__proto__"),i=0;usedLabelNameList.length>i;i++){var usedLabelName=usedLabelNameList[i],usage=currentUsages[usedLabelName],usedLabel=currentLabels[usedLabelName];if(usedLabel){var usedLabelType=usedLabel["(type)"];if(usedLabel["(useOutsideOfScope)"]&&!state.option.funcscope){var usedTokens=usage["(tokens)"];if(usedTokens)for(j=0;usedTokens.length>j;j++)usedLabel["(function)"]===usedTokens[j]["(function)"]&&error("W038",usedTokens[j],usedLabelName)}if(_current["(labels)"][usedLabelName]["(unused)"]=!1,"const"===usedLabelType&&usage["(modified)"])for(j=0;usage["(modified)"].length>j;j++)error("E013",usage["(modified)"][j],usedLabelName);if(("function"===usedLabelType||"class"===usedLabelType)&&usage["(reassigned)"])for(j=0;usage["(reassigned)"].length>j;j++)error("W021",usage["(reassigned)"][j],usedLabelName,usedLabelType)}else if(isUnstackingFunctionOuter&&(state.funct["(isCapturing)"]=!0),subScope)if(subScope["(usages)"][usedLabelName]){var subScopeUsage=subScope["(usages)"][usedLabelName];subScopeUsage["(modified)"]=subScopeUsage["(modified)"].concat(usage["(modified)"]),subScopeUsage["(tokens)"]=subScopeUsage["(tokens)"].concat(usage["(tokens)"]),subScopeUsage["(reassigned)"]=subScopeUsage["(reassigned)"].concat(usage["(reassigned)"]),subScopeUsage["(onlyUsedSubFunction)"]=!1}else subScope["(usages)"][usedLabelName]=usage,isUnstackingFunctionBody&&(subScope["(usages)"][usedLabelName]["(onlyUsedSubFunction)"]=!0);else if("boolean"==typeof _current["(predefined)"][usedLabelName]){if(delete declared[usedLabelName],usedPredefinedAndGlobals[usedLabelName]=marker,_current["(predefined)"][usedLabelName]===!1&&usage["(reassigned)"])for(j=0;usage["(reassigned)"].length>j;j++)warning("W020",usage["(reassigned)"][j])}else if(usage["(tokens)"])for(j=0;usage["(tokens)"].length>j;j++){var undefinedToken=usage["(tokens)"][j];undefinedToken.forgiveUndef||(state.option.undef&&!undefinedToken.ignoreUndef&&warning("W117",undefinedToken,usedLabelName),impliedGlobals[usedLabelName]?impliedGlobals[usedLabelName].line.push(undefinedToken.line):impliedGlobals[usedLabelName]={name:usedLabelName,line:[undefinedToken.line]})}}if(subScope||Object.keys(declared).forEach(function(labelNotUsed){_warnUnused(labelNotUsed,declared[labelNotUsed],"var")}),subScope&&!isUnstackingFunctionBody&&!isUnstackingFunctionParams&&!isUnstackingFunctionOuter){var labelNames=Object.keys(currentLabels);for(i=0;labelNames.length>i;i++){var defLabelName=labelNames[i];currentLabels[defLabelName]["(blockscoped)"]||"exception"===currentLabels[defLabelName]["(type)"]||this.funct.has(defLabelName,{excludeCurrent:!0})||(subScope["(labels)"][defLabelName]=currentLabels[defLabelName],"global"!==_currentFunctBody["(type)"]&&(subScope["(labels)"][defLabelName]["(useOutsideOfScope)"]=!0),delete currentLabels[defLabelName])}}_checkForUnused(),_scopeStack.pop(),isUnstackingFunctionBody&&(_currentFunctBody=_scopeStack[_.findLastIndex(_scopeStack,function(scope){return scope["(isFuncBody)"]||"global"===scope["(type)"]})]),_current=subScope},addParam:function(labelName,token,type){if(type=type||"param","exception"===type){var previouslyDefinedLabelType=this.funct.labeltype(labelName);previouslyDefinedLabelType&&"exception"!==previouslyDefinedLabelType&&(state.option.node||warning("W002",state.tokens.next,labelName))}if(_.has(_current["(labels)"],labelName)?_current["(labels)"][labelName].duplicated=!0:(_checkOuterShadow(labelName,token,type),_current["(labels)"][labelName]={"(type)":type,"(token)":token,"(unused)":!0},_current["(params)"].push(labelName)),_.has(_current["(usages)"],labelName)){var usage=_current["(usages)"][labelName];usage["(onlyUsedSubFunction)"]?_latedefWarning(type,labelName,token):warning("E056",token,labelName,type)}},validateParams:function(){if("global"!==_currentFunctBody["(type)"]){var isStrict=state.isStrict(),currentFunctParamScope=_currentFunctBody["(parent)"];currentFunctParamScope["(params)"]&¤tFunctParamScope["(params)"].forEach(function(labelName){var label=currentFunctParamScope["(labels)"][labelName];label&&label.duplicated&&(isStrict?warning("E011",label["(token)"],labelName):state.o
8ption.shadow!==!0&&warning("W004",label["(token)"],labelName))})}},getUsedOrDefinedGlobals:function(){var list=Object.keys(usedPredefinedAndGlobals);return usedPredefinedAndGlobals.__proto__===marker&&-1===list.indexOf("__proto__")&&list.push("__proto__"),list},getImpliedGlobals:function(){var values=_.values(impliedGlobals),hasProto=!1;return impliedGlobals.__proto__&&(hasProto=values.some(function(value){return"__proto__"===value.name}),hasProto||values.push(impliedGlobals.__proto__)),values},getUnuseds:function(){return unuseds},has:function(labelName){return Boolean(_getLabel(labelName))},labeltype:function(labelName){var scopeLabels=_getLabel(labelName);return scopeLabels?scopeLabels[labelName]["(type)"]:null},addExported:function(labelName){var globalLabels=_scopeStack[0]["(labels)"];if(_.has(declared,labelName))delete declared[labelName];else if(_.has(globalLabels,labelName))globalLabels[labelName]["(unused)"]=!1;else{for(var i=1;_scopeStack.length>i;i++){var scope=_scopeStack[i];if(scope["(type)"])break;if(_.has(scope["(labels)"],labelName)&&!scope["(labels)"][labelName]["(blockscoped)"])return scope["(labels)"][labelName]["(unused)"]=!1,void 0}exported[labelName]=!0}},setExported:function(labelName,token){this.block.use(labelName,token)\n},addlabel:function(labelName,opts){var type=opts.type,token=opts.token,isblockscoped="let"===type||"const"===type||"class"===type,isexported="global"===(isblockscoped?_current:_currentFunctBody)["(type)"]&&_.has(exported,labelName);if(_checkOuterShadow(labelName,token,type),isblockscoped){var declaredInCurrentScope=_current["(labels)"][labelName];if(declaredInCurrentScope||_current!==_currentFunctBody||"global"===_current["(type)"]||(declaredInCurrentScope=!!_currentFunctBody["(parent)"]["(labels)"][labelName]),!declaredInCurrentScope&&_current["(usages)"][labelName]){var usage=_current["(usages)"][labelName];usage["(onlyUsedSubFunction)"]?_latedefWarning(type,labelName,token):warning("E056",token,labelName,type)}declaredInCurrentScope?warning("E011",token,labelName):"outer"===state.option.shadow&&scopeManagerInst.funct.has(labelName)&&warning("W004",token,labelName),scopeManagerInst.block.add(labelName,type,token,!isexported)}else{var declaredInCurrentFunctionScope=scopeManagerInst.funct.has(labelName);!declaredInCurrentFunctionScope&&usedSoFarInCurrentFunction(labelName)&&_latedefWarning(type,labelName,token),scopeManagerInst.funct.has(labelName,{onlyBlockscoped:!0})?warning("E011",token,labelName):state.option.shadow!==!0&&declaredInCurrentFunctionScope&&"__proto__"!==labelName&&"global"!==_currentFunctBody["(type)"]&&warning("W004",token,labelName),scopeManagerInst.funct.add(labelName,type,token,!isexported),"global"===_currentFunctBody["(type)"]&&(usedPredefinedAndGlobals[labelName]=marker)}},funct:{labeltype:function(labelName,options){for(var onlyBlockscoped=options&&options.onlyBlockscoped,excludeParams=options&&options.excludeParams,currentScopeIndex=_scopeStack.length-(options&&options.excludeCurrent?2:1),i=currentScopeIndex;i>=0;i--){var current=_scopeStack[i];if(current["(labels)"][labelName]&&(!onlyBlockscoped||current["(labels)"][labelName]["(blockscoped)"]))return current["(labels)"][labelName]["(type)"];var scopeCheck=excludeParams?_scopeStack[i-1]:current;if(scopeCheck&&"functionparams"===scopeCheck["(type)"])return null}return null},hasBreakLabel:function(labelName){for(var i=_scopeStack.length-1;i>=0;i--){var current=_scopeStack[i];if(current["(breakLabels)"][labelName])return!0;if("functionparams"===current["(type)"])return!1}return!1},has:function(labelName,options){return Boolean(this.labeltype(labelName,options))},add:function(labelName,type,tok,unused){_current["(labels)"][labelName]={"(type)":type,"(token)":tok,"(blockscoped)":!1,"(function)":_currentFunctBody,"(unused)":unused}}},block:{isGlobal:function(){return"global"===_current["(type)"]},use:function(labelName,token){var paramScope=_currentFunctBody["(parent)"];paramScope&¶mScope["(labels)"][labelName]&&"param"===paramScope["(labels)"][labelName]["(type)"]&&(scopeManagerInst.funct.has(labelName,{excludeParams:!0,onlyBlockscoped:!0})||(paramScope["(labels)"][labelName]["(unused)"]=!1)),token&&(state.ignored.W117||state.option.undef===!1)&&(token.ignoreUndef=!0),_setupUsages(labelName),token&&(token["(function)"]=_currentFunctBody,_current["(usages)"][labelName]["(tokens)"].push(token))},reassign:function(labelName,token){this.modify(labelName,token),_current["(usages)"][labelName]["(reassigned)"].push(token)},modify:function(labelName,token){_setupUsages(labelName),_current["(usages)"][labelName]["(modified)"].push(token)},add:function(labelName,type,tok,unused){_current["(labels)"][labelName]={"(type)":type,"(token)":tok,"(blockscoped)":!0,"(unused)":unused}},addBreakLabel:function(labelName,opts){var token=opts.token;scopeManagerInst.funct.hasBreakLabel(labelName)?warning("E011",token,labelName):"outer"===state.o
8ption.shadow&&(scopeManagerInst.funct.has(labelName)?warning("W004",token,labelName):_checkOuterShadow(labelName,token)),_current["(breakLabels)"][labelName]=token}}};return scopeManagerInst};module.exports=scopeManager},{"../lodash":"/node_modules/jshint/lodash.js",events:"/node_modules/browserify/node_modules/events/events.js"}],"/node_modules/jshint/src/state.js":[function(_dereq_,module,exports){"use strict";var NameStack=_dereq_("./name-stack.js"),state={syntax:{},isStrict:function(){return this.directive["use strict"]||this.inClassBody||this.option.module||"implied"===this.option.strict},inMoz:function(){return this.option.moz},inES6:function(){return this.option.moz||this.option.esversion>=6},inES5:function(strict){return strict?!(this.option.esversion&&5!==this.option.esversion||this.option.moz):!this.option.esversion||this.option.esversion>=5||this.option.moz},reset:function(){this.tokens={prev:null,next:null,curr:null},this.option={},this.funct=null,this.ignored={},this.directive={},this.jsonMode=!1,this.jsonWarnings=[],this.lines=[],this.tab="",this.cache={},this.ignoredLines={},this.forinifcheckneeded=!1,this.nameStack=new NameStack,this.inClassBody=!1}};exports.state=state},{"./name-stack.js":"/node_modules/jshint/src/name-stack.js"}],"/node_modules/jshint/src/style.js":[function(_dereq_,module,exports){"use strict";exports.register=function(linter){linter.on("Identifier",function(data){linter.getOption("proto")||"__proto__"===data.name&&linter.warn("W103",{line:data.line,"char":data.char,data:[data.name,"6"]})}),linter.on("Identifier",function(data){linter.getOption("iterator")||"__iterator__"===data.name&&linter.warn("W103",{line:data.line,"char":data.char,data:[data.name]})}),linter.on("Identifier",function(data){linter.getOption("camelcase")&&data.name.replace(/^_+|_+$/g,"").indexOf("_")>-1&&!data.name.match(/^[A-Z0-9_]*$/)&&linter.warn("W106",{line:data.line,"char":data.from,data:[data.name]})}),linter.on("String",function(data){var code,quotmark=linter.getOption("quotmark");quotmark&&("single"===quotmark&&"\'"!==data.quote&&(code="W109"),"double"===quotmark&&\'"\'!==data.quote&&(code="W108"),quotmark===!0&&(linter.getCache("quotmark")||linter.setCache("quotmark",data.quote),linter.getCache("quotmark")!==data.quote&&(code="W110")),code&&linter.warn(code,{line:data.line,"char":data.char}))}),linter.on("Number",function(data){"."===data.value.charAt(0)&&linter.warn("W008",{line:data.line,"char":data.char,data:[data.value]}),"."===data.value.substr(data.value.length-1)&&linter.warn("W047",{line:data.line,"char":data.char,data:[data.value]}),/^00+/.test(data.value)&&linter.warn("W046",{line:data.line,"char":data.char,data:[data.value]})}),linter.on("String",function(data){var re=/^(?:javascript|jscript|ecmascript|vbscript|livescript)\\s*:/i;linter.getOption("scripturl")||re.test(data.value)&&linter.warn("W107",{line:data.line,"char":data.char})})}},{}],"/node_modules/jshint/src/vars.js":[function(_dereq_,module,exports){"use strict";exports.reservedVars={arguments:!1,NaN:!1},exports.ecmaIdentifiers={3:{Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,Math:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1},5:{JSON:!1},6:{Map:!1,Promise:!1,Proxy:!1,Reflect:!1,Set:!1,Symbol:!1,WeakMap:!1,WeakSet:!1}},exports.browser={Audio:!1,Blob:!1,addEventListener:!1,applicationCache:!1,atob:!1,blur:!1,btoa:!1,cancelAnimationFrame:!1,CanvasGradient:!1,CanvasPattern:!1,CanvasRenderingContext2D:!1,CSS:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,Comment:!1,CustomEvent:!1,DOMParser:!1,defaultStatus:!1,Document:!1,document:!1,DocumentFragment:!1,Element:!1,ElementTimeControl:!1,Event:!1,event:!1,fetch:!1,FileReader:!1,FormData:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,HTMLAnchorElement:!1,HTMLBaseElement:!1,HTMLBlockquoteElement:!1,HTMLBodyElement:!1,HTMLBRElement:!1,HTMLButtonElement:!1,HTMLCanvasElement:!1,HTMLCollection:!1,HTMLDirectoryElement:!1,HTMLDivElement:!1,HTMLDListElement:!1,HTMLFieldSetElement:!1,HTMLFontElement:!1,HTMLFormElement:!1,HTMLFrameElement:!1,HTMLFrameSetElement:!1,HTMLHeadElement:!1,HTMLHeadingElement:!1,HTMLHRElement:!1,HTMLHtmlElement:!1,HTMLIFrameElement:!1,HTMLImageElement:!1,HTMLInputElement:!1,HTMLIsIndexElement:!1,HTMLLabelElement:!1,HTMLLayerElement:!1,HTMLLegendElement:!1,HTMLLIElement:!1,HTMLLinkElement:!1,HTMLMapElement:!1,HTMLMenuElement:!1,HTMLMetaElement:!1,HTMLModElement:!1,HTMLObjectElement:!1,HTMLOListElement:!1,HTMLOptGroupElement:!1,HTMLOptionElement:!1,HTMLParagraphElement:!1,HTMLParamElement:!1,HTMLPreElement:!1,HTMLQuoteElement:!1,HTMLScriptElement:!1,HTMLSelectElement:!1,HTMLStyleElement:!1,HTMLTableCaptionElement:!1,HTMLTableCellElement:!1,HTMLTableColElement:!1,HTMLTableElement:!1,HTMLTableRowElement:!1,HTMLTableSectionElement:!1,HTMLTemplateElement:!1,HTMLTextAreaElement:!1,HTMLTitleElement:!1,HTMLUListElement:!1,HTMLVideoElement:!1,history:!1,Image:!1,Intl:!1,length:!1,localStorage:!1,location:!1,matchMedia:!1,MessageChannel:!1,MessageEvent:!1,MessagePort:!1,MouseEvent:!1,moveBy:!1,moveTo:!1,MutationObserver:!1,name:!1,Node:!1,NodeFilter:!1,NodeList:!1,Notification:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,performance:!1,print:!1,Range:!1,requestAnimationFrame:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,sessionStorage:!1,setInterval:!1,setTimeout:!1,SharedWorker:!1,status:!1,SVGAElement:!1,SVGAltGlyphDefElement:!1,SVGAltGlyphElement:!1,SVGAltGlyphItemElement:!1,SVGAngle:!1,SVGAnimateColorElement:!1,SVGAnimateElement:!1,SVGAnimateMotionElement:!1,SVGAnimateTransformElement:!1,SVGAnimatedAngle:!1,SVGAnimatedBoolean:!1,SVGAnimatedEnumeration:!1,SVGAnimatedInteger:!1,SVGAnimatedLength:!1,SVGAnimatedLengthList:!1,SVGAnimatedNumber:!1,SVGAnimatedNumberList:!1,SVGAnimatedPathData:!1,SVGAnimatedPoints:!1,SVGAnimatedPreserveAspectRatio:!1,SVGAnimatedRect:!1,SVGAnimatedString:!1,SVGAnimatedTransformList:!1,SVGAnimationElement:!1,SVGCSSRule:!1,SVGCircleElement:!1,SVGClipPathElement:!1,SVGColor:!1,SVGColorProfileElement:!1,SVGColorProfileRule:!1,SVGComponentTransferFunctionElement:!1,SVGCursorElement:!1,SVGDefsElement:!1,SVGDescElement:!1,SVGDocument:!1,SVGElement:!1,SVGElementInstance:!1,SVGElementInstanceList:!1,SVGEllipseElement:!1,SVGExter
8nalResourcesRequired:!1,SVGFEBlendElement:!1,SVGFEColorMatrixElement:!1,SVGFEComponentTransferElement:!1,SVGFECompositeElement:!1,SVGFEConvolveMatrixElement:!1,SVGFEDiffuseLightingElement:!1,SVGFEDisplacementMapElement:!1,SVGFEDistantLightElement:!1,SVGFEFloodElement:!1,SVGFEFuncAElement:!1,SVGFEFuncBElement:!1,SVGFEFuncGElement:!1,SVGFEFuncRElement:!1,SVGFEGaussianBlurElement:!1,SVGFEImageElement:!1,SVGFEMergeElement:!1,SVGFEMergeNodeElement:!1,SVGFEMorphologyElement:!1,SVGFEOffsetElement:!1,SVGFEPointLightElement:!1,SVGFESpecularLightingElement:!1,SVGFESpotLightElement:!1,SVGFETileElement:!1,SVGFETurbulenceElement:!1,SVGFilterElement:!1,SVGFilterPrimitiveStandardAttributes:!1,SVGFitToViewBox:!1,SVGFontElement:!1,SVGFontFaceElement:!1,SVGFontFaceFormatElement:!1,SVGFontFaceNameElement:!1,SVGFontFaceSrcElement:!1,SVGFontFaceUriElement:!1,SVGForeignObjectElement:!1,SVGGElement:!1,SVGGlyphElement:!1,SVGGlyphRefElement:!1,SVGGradientElement:!1,SVGHKernElement:!1,SVGICCColor:!1,SVGImageElement:!1,SVGLangSpace:!1,SVGLength:!1,SVGLengthList:!1,SVGLineElement:!1,SVGLinearGradientElement:!1,SVGLocatable:!1,SVGMPathElement:!1,SVGMarkerElement:!1,SVGMaskElement:!1,SVGMatrix:!1,SVGMetadataElement:!1,SVGMissingGlyphElement:!1,SVGNumber:!1,SVGNumberList:!1,SVGPaint:!1,SVGPathElement:!1,SVGPathSeg:!1,SVGPathSegArcAbs:!1,SVGPathSegArcRel:!1,SVGPathSegClosePath:!1,SVGPathSegCurvetoCubicAbs:!1,SVGPathSegCurvetoCubicRel:!1,SVGPathSegCurvetoCubicSmoothAbs:!1,SVGPathSegCurvetoCubicSmoothRel:!1,SVGPathSegCurvetoQuadraticAbs:!1,SVGPathSegCurvetoQuadraticRel:!1,SVGPathSegCurvetoQuadraticSmoothAbs:!1,SVGPathSegCurvetoQuadraticSmoothRel:!1,SVGPathSegLinetoAbs:!1,SVGPathSegLinetoHorizontalAbs:!1,SVGPathSegLinetoHorizontalRel:!1,SVGPathSegLinetoRel:!1,SVGPathSegLinetoVerticalAbs:!1,SVGPathSegLinetoVerticalRel:!1,SVGPathSegList:!1,SVGPathSegMovetoAbs:!1,SVGPathSegMovetoRel:!1,SVGPatternElement:!1,SVGPoint:!1,SVGPointList:!1,SVGPolygonElement:!1,SVGPolylineElement:!1,SVGPreserveAspectRatio:!1,SVGRadialGradientElement:!1,SVGRect:!1,SVGRectElement:!1,SVGRenderingIntent:!1,SVGSVGElement:!1,SVGScriptElement:!1,SVGSetElement:!1,SVGStopElement:!1,SVGStringList:!1,SVGStylable:!1,SVGStyleElement:!1,SVGSwitchElement:!1,SVGSymbolElement:!1,SVGTRefElement:!1,SVGTSpanElement:!1,SVGTests:!1,SVGTextContentElement:!1,SVGTextElement:!1,SVGTextPathElement:!1,SVGTextPositioningElement:!1,SVGTitleElement:!1,SVGTransform:!1,SVGTransformList:!1,SVGTransformable:!1,SVGURIReference:!1,SVGUnitTypes:!1,SVGUseElement:!1,SVGVKernElement:!1,SVGViewElement:!1,SVGViewSpec:!1,SVGZoomAndPan:!1,Text:!1,TextDecoder:!1,TextEncoder:!1,TimeEvent:!1,top:!1,URL:!1,WebGLActiveInfo:!1,WebGLBuffer:!1,WebGLContextEvent:!1,WebGLFramebuffer:!1,WebGLProgram:!1,WebGLRenderbuffer:!1,WebGLRenderingContext:!1,WebGLShader:!1,WebGLShaderPrecisionFormat:!1,WebGLTexture:!1,WebGLUniformLocation:!1,WebSocket:!1,window:!1,Window:!1,Worker:!1,XDomainRequest:!1,XMLHttpRequest:!1,XMLSerializer:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},exports.devel={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},exports.worker={importScripts:!0,postMessage:!0,self:!0,FileReaderSync:!0},exports.nonstandard={escape:!1,unescape:!1},exports.couch={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1,provides:!1},exports.node={__filename:!1,__dirname:!1,GLOBAL:!1,global:!1,module:!1,acequire:!1,Buffer:!0,console:!0,exports:!0,process:!0,setTimeout:!0,clearTimeout:!0,setInterval:!0,clearInterval:!0,setImmediate:!0,clearImmediate:!0},exports.browserify={__filename:!1,__dirname:!1,global:!1,module:!1,acequire:!1,Buffer:!0,exports:!0,process:!0},exports.phantom={phantom:!0,acequire:!0,WebPage:!0,console:!0,exports:!0},exports.qunit={asyncTest:!1,deepEqual:!1,equal:!1,expect:!1,module:!1,notDeepEqual:!1,notEqual:!1,notPropEqual:!1,notStrictEqual:!1,ok:!1,propEqual:!1,QUnit:!1,raises:!1,start:!1,stop:!1,strictEqual:!1,test:!1,"throws":!1},exports.rhino={defineClass:!1,deserialize:!1,gc:!1,help:!1,importClass:!1,importPackage:!1,java:!1,load:!1,loadClass:!1,Packages:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},exports.shelljs={target:!1,echo:!1,exit:!1,cd:!1,pwd:!1,ls:!1,find:!1,cp:!1,rm:!1,mv:!1,mkdir:!1,test:!1,cat:!1,sed:!1,grep:!1,which:!1,dirs:!1,pushd:!1,popd:!1,env:!1,exec:!1,chmod:!1,config:!1,error:!1,tempdir:!1},exports.typed={ArrayBuffer:!1,ArrayBufferView:!1,DataView:!1,Float32Array:!1,Float64Array:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,Uint8ClampedArray:!1},exports.wsh={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0,XDomainRequest:!0},exports.dojo={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},exports.jquery={$:!1,jQuery:!1},exports.mootools={$:!1,$$:!1,Asset:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMEvent:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,IFrame:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},exports.prototypejs={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},exports.yui={YUI:!1,Y:!1,YUI_config:!1},exports.mocha={mocha:!1,describe:!1,xdescribe:!1,it:!1,xit:!1,context:!1,xcontext:!1,before:!1,after:!1,beforeEach:!1,after
8Each:!1,suite:!1,test:!1,setup:!1,teardown:!1,suiteSetup:!1,suiteTeardown:!1},exports.jasmine={jasmine:!1,describe:!1,xdescribe:!1,it:!1,xit:!1,beforeEach:!1,afterEach:!1,setFixtures:!1,loadFixtures:!1,spyOn:!1,expect:!1,runs:!1,waitsFor:!1,waits:!1,beforeAll:!1,afterAll:!1,fail:!1,fdescribe:!1,fit:!1,pending:!1}},{}]},{},["/node_modules/jshint/src/jshint.js"])}),ace.define("ace/mode/javascript_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/javascript/jshint"],function(acequire,exports,module){"use strict";function startRegex(arr){return RegExp("^("+arr.join("|")+")")}var oop=acequire("../lib/oop"),Mirror=acequire("../worker/mirror").Mirror,lint=acequire("./javascript/jshint").JSHINT,disabledWarningsRe=startRegex(["Bad for in variable \'(.+)\'.",\'Missing "use strict"\']),errorsRe=startRegex(["Unexpected","Expected ","Confusing (plus|minus)","\\\\{a\\\\} unterminated regular expression","Unclosed ","Unmatched ","Unbegun comment","Bad invocation","Missing space after","Missing operator at"]),infoRe=startRegex(["Expected an assignment","Bad escapement of EOL","Unexpected comma","Unexpected space","Missing radix parameter.","A leading decimal point can","\\\\[\'{a}\'\\\\] is better written in dot notation.","\'{a}\' used out of scope"]),JavaScriptWorker=exports.JavaScriptWorker=function(sender){Mirror.call(this,sender),this.setTimeout(500),this.setOptions()};oop.inherits(JavaScriptWorker,Mirror),function(){this.setOptions=function(options){this.options=options||{esnext:!0,moz:!0,devel:!0,browser:!0,node:!0,laxcomma:!0,laxbreak:!0,lastsemic:!0,onevar:!1,passfail:!1,maxerr:100,expr:!0,multistr:!0,globalstrict:!0},this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.changeOptions=function(newOptions){oop.mixin(this.options,newOptions),this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.isValidJS=function(str){try{eval("throw 0;"+str)}catch(e){if(0===e)return!0}return!1},this.onUpdate=function(){var value=this.doc.getValue();if(value=value.replace(/^#!.*\\n/,"\\n"),!value)return this.sender.emit("annotate",[]);var errors=[],maxErrorLevel=this.isValidJS(value)?"warning":"error";lint(value,this.options,this.options.globals);for(var results=lint.errors,errorAdded=!1,i=0;results.length>i;i++){var error=results[i];if(error){var raw=error.raw,type="warning";if("Missing semicolon."==raw){var str=error.evidence.substr(error.character);str=str.charAt(str.search(/\\S/)),"error"==maxErrorLevel&&str&&/[\\w\\d{([\'"]/.test(str)?(error.reason=\'Missing ";" before statement\',type="error"):type="info"}else{if(disabledWarningsRe.test(raw))continue;infoRe.test(raw)?type="info":errorsRe.test(raw)?(errorAdded=!0,type=maxErrorLevel):"\'{a}\' is not defined."==raw?type="warning":"\'{a}\' is defined but never used."==raw&&(type="info")}errors.push({row:error.line-1,column:error.character-1,text:error.reason,type:type,raw:raw})}}this.sender.emit("annotate",errors)}}.call(JavaScriptWorker.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,"sentinel",{}),"sentinel"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError("Function.prototype.bind called on incompatible "+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,"__defineGetter__"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,"XXX"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0}
8()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return"[object Array]"==_toString(obj)});var boxedString=Object("a"),splitString="a"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,thisp=arguments[1],i=-1,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=[],thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError("reduce of empty array with no initial value")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduceRight of empty array with
8no initial value");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError("reduceRight of empty array with no initial value")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(object,property){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if("object"!=typeof prototype)throw new TypeError("typeof prototype["+typeof prototype+"] != \'object\'");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom="undefined"==typeof document||doesDefinePropertyWork(document.createElement("div"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR="Property description must be an object: ",ERR_NON_OBJECT_TARGET="Object.defineProperty called on non-object: ",ERR_ACCESSORS_NOT_SUPPORTED="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(object,property,descriptor){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if("object"!=typeof descriptor&&"function"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,"value"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,"get")&&defineGetter(object,property,descriptor.get),owns(descriptor,"set")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}
8),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return"function"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name="";owns(object,name);)name+="?";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError("Object.keys called on a non-object");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws="\t\\n\v\\f\\r  áá ââââââ
ââââââ¯âã\\u2028\\u2029\ufeff";if(!String.prototype.trim||ws.trim()){ws="["+ws+"]";var trimBeginRegexp=RegExp("^"+ws+ws+"*"),trimEndRegexp=RegExp(ws+ws+"*$");String.prototype.trim=function(){return(this+"").replace(trimBeginRegexp,"").replace(trimEndRegexp,"")}}var toObject=function(o){if(null==o)throw new TypeError("can\'t convert "+o+" to object");return Object(o)}});'},function(e,t){e.exports.id="ace/mode/xml_worker",e.exports.src='"no use strict";(function(window){function resolveModuleId(id,paths){for(var testPath=id,tail="";testPath;){var alias=paths[testPath];if("string"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,"/")+(tail||alias.main||alias.name);if(alias===!1)return"";var i=testPath.lastIndexOf("/");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:"error",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf("!")){var chunks=moduleName.split("!");return window.normalizeModule(parentId,chunks[0])+"!"+window.normalizeModule(parentId,chunks[1])}if("."==moduleName.charAt(0)){var base=parentId.split("/").slice(0,-1).join("/");for(moduleName=(base?base+"/":"")+moduleName;-1!==moduleName.indexOf(".")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,"").replace(/\\/\\.\\//,"/").replace(/[^\\/]+\\/\\.\\.\\//,"")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error("worker.js acequire() accepts only (parentId, id) as arguments");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log("unable to load "+id);var path=resolveModuleId(id,window.acequire.tlns);return".js"!=path.slice(-3)&&(path+=".js"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,"string"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),"function"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=["require","exports","module"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case"require":return req;case"exports":return module.exports;case"module":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in to
8pLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire("ace/lib/event_emitter").EventEmitter,oop=window.acequire("ace/lib/oop"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:"call",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:"event",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error("Unknown command:"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire("ace/lib/es5-shim"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}})(this),ace.define("ace/lib/oop",["require","exports","module"],function(acequire,exports){"use strict";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define("ace/lib/lang",["require","exports","module"],function(acequire,exports){"use strict";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split("").reverse().join("")},exports.stringRepeat=function(string,count){for(var result="";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,"")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,"")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&"object"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if("object"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if("[object Object]"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,"\\\\$1")},exports.escapeHTML=function(str){return str.replace(/&/g,"&").replace(/"/g,""").replace(/\'/g,"'").replace(/</g,"<")},exports.getMatchOffsets=function(string,regExp){var matches=[];return string.replace(regExp,function(str){matches.push({offset:arguments[arguments.length-2],length:str.length})}),matches},exports.deferredCall=function(fcn){var timer=null,callback=function(){timer=null,fcn()},deferred=function(timeout){return deferred.cancel(),timer=setTimeout(callback,timeout||0),deferred};return deferred.schedule=deferred,deferred.call=function(){return this.cancel(),fcn(),deferred},deferred.cancel=function(){return clearTimeout(timer),timer=null,deferred},deferred.isPending=function(){return timer},deferred},exports.delayedCall=function(fcn,defaultTimeout){var timer=null,callback=function(){timer=null,fcn()},_self=function(timeout){null==timer&&(timer=setTimeout(callback,timeout||defaultTimeout))};return _self.delay=function(timeout){timer&&clearTimeout(timer),timer=setTimeout(callback,timeout||defaultTimeout)},_self.schedule=_self,_self.call=function(){this.cancel(),fcn()},_self.cancel=function(){timer&&clearTimeout(timer),timer=null},_self.isPending=function(){return timer},_self
vendor: 18,820 bytes, line 8
8}}),ace.define("ace/range",["require","exports","module"],function(acequire,exports){"use strict";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){"object"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){"object"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define("ace/apply_delta",["require","exports","module"],function(acequire,exports){"use strict";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||"";switch(delta.action){case"insert":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case"remove":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(acequire,exports){"use strict";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){"object"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?"unshift":"push"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),EventEmitter=acequire("./lib/event_emitter").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.column<point2.column;return point1.row<point2.row||point1.row==point2.row&&bColIsAfter}function $getTransformedPoint(delta,point,moveIfEqual){var deltaIsInsert="insert"==delta.action,deltaRowShift=(deltaIsInsert?1:-1)*(delta.end.row-delta.start.row),deltaColShift=(deltaIsInsert?1:-1)*(delta.end.column-delta.start.column),deltaStart=delta.start,deltaEnd=deltaIsInsert?deltaStart:delta.end;return $pointsInOrder(point,deltaStart,moveIfEqual)?{row:point.row,column:point.column}:$pointsInOrder(deltaEnd,point,!moveIfEqual)?{row:point.row+deltaRowShift,column:point.column+(point.row==deltaEnd.row?deltaColShift:0)}:{row:deltaStart.row,column:deltaStart.column}}oop.implement(this,EventEmitter),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(delta){if(!(delta.start.row==delta.end.row&&delta.start.row!=this.row||delta.start.row>this.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal("change",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),applyDelta=acequire("./apply_delta").applyDelta,EventEmitter=acequire("./lib/event_emitter").EventEmitter,Range=acequire("./range").Range,Anchor=acequire("./anchor").Anchor,Document=function(textOrLines){this.$lines=[""],0===textOrLines.length?this.$lines=[""]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==="aaa".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,"\\n").split("\\n")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:"\\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\\r\\n";case"unix":return"\\n";default:return this.$autoNewLine||"\\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return"\\r\\n"==text||"\\r"==text||"\\n"==text},this.getLine=function(row){return this.$lines[row]||""},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||"").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, [\'\', \'\']) instead."),this.insertMergedLines(position,["",""])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:"insert",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([""]),column=0):(lines=[""].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:"insert",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:"remove",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:"remove",lines:["",""]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert="insert"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal("change",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(""),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:"insert"==delta.action?"remove":"insert",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define("ace/
8worker/mirror",["require","exports","module","ace/range","ace/document","ace/lib/lang"],function(acequire,exports){"use strict";acequire("../range").Range;var Document=acequire("../document").Document,lang=acequire("../lib/lang"),Mirror=exports.Mirror=function(sender){this.sender=sender;var doc=this.doc=new Document(""),deferredUpdate=this.deferredUpdate=lang.delayedCall(this.onUpdate.bind(this)),_self=this;sender.on("change",function(e){var data=e.data;if(data[0].start)doc.applyDeltas(data);else for(var i=0;data.length>i;i+=2){if(Array.isArray(data[i+1]))var d={action:"insert",start:data[i],lines:data[i+1]};else var d={action:"remove",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define("ace/mode/xml/sax",["require","exports","module"],function(){function XMLReader(){}function parse(source,defaultNSMapCopy,entityMap,domBuilder,errorHandler){function fixedFromCharCode(code){if(code>65535){code-=65536;var surrogate1=55296+(code>>10),surrogate2=56320+(1023&code);return String.fromCharCode(surrogate1,surrogate2)}return String.fromCharCode(code)}function entityReplacer(a){var k=a.slice(1,-1);return k in entityMap?entityMap[k]:"#"===k.charAt(0)?fixedFromCharCode(parseInt(k.substr(1).replace("x","0x"))):(errorHandler.error("entity not found:"+a),a)}function appendText(end){var xt=source.substring(start,end).replace(/&#?\\w+;/g,entityReplacer);locator&&position(start),domBuilder.characters(xt,0,end-start),start=end}function position(start,m){for(;start>=endPos&&(m=linePattern.exec(source));)startPos=m.index,endPos=startPos+m[0].length,locator.lineNumber++;locator.columnNumber=start-startPos+1}for(var startPos=0,endPos=0,linePattern=/.+(?:\\r\\n?|\\n)|.*$/g,locator=domBuilder.locator,parseStack=[{currentNSMap:defaultNSMapCopy}],closeMap={},start=0;;){var i=source.indexOf("<",start);if(0>i){if(!source.substr(start).match(/^\\s*$/)){var doc=domBuilder.document,text=doc.createTextNode(source.substr(start));doc.appendChild(text),domBuilder.currentElement=text}return}switch(i>start&&appendText(i),source.charAt(i+1)){case"/":var config,end=source.indexOf(">",i+3),tagName=source.substring(i+2,end);if(!(parseStack.length>1)){errorHandler.fatalError("end tag name not found for: "+tagName);break}config=parseStack.pop();var localNSMap=config.localNSMap;if(config.tagName!=tagName&&errorHandler.fatalError("end tag name: "+tagName+" does not match the current start tagName: "+config.tagName),domBuilder.endElement(config.uri,config.localName,tagName),localNSMap)for(var prefix in localNSMap)domBuilder.endPrefixMapping(prefix);end++;break;case"?":locator&&position(i),end=parseInstruction(source,i,domBuilder);break;case"!":locator&&position(i),end=parseDCC(source,i,domBuilder,errorHandler);break;default:try{locator&&position(i);var el=new ElementAttributes,end=parseElementStartPart(source,i,el,entityReplacer,errorHandler),len=el.length;if(len&&locator){for(var backup=copyLocator(locator,{}),i=0;len>i;i++){var a=el[i];position(a.offset),a.offset=copyLocator(locator,{})}copyLocator(backup,locator)}!el.closed&&fixSelfClosed(source,end,el.tagName,closeMap)&&(el.closed=!0,entityMap.nbsp||errorHandler.warning("unclosed xml attribute")),appendElement(el,domBuilder,parseStack),"http://www.w3.org/1999/xhtml"!==el.uri||el.closed?end++:end=parseHtmlSpecialContent(source,end,el.tagName,entityReplacer,domBuilder)}catch(e){errorHandler.error("element parse error: "+e),end=-1}}0>end?appendText(i+1):start=end}}function copyLocator(f,t){return t.lineNumber=f.lineNumber,t.columnNumber=f.columnNumber,t}function parseElementStartPart(source,start,el,entityReplacer,errorHandler){for(var attrName,value,p=++start,s=S_TAG;;){var c=source.charAt(p);switch(c){case"=":if(s===S_ATTR)attrName=source.slice(start,p),s=S_EQ;else{if(s!==S_ATTR_S)throw Error("attribute equal must after attrName");s=S_EQ}break;
8case"\'":case\'"\':if(s===S_EQ){if(start=p+1,p=source.indexOf(c,start),!(p>0))throw Error("attribute value no end \'"+c+"\' match");value=source.slice(start,p).replace(/&#?\\w+;/g,entityReplacer),el.add(attrName,value,start-1),s=S_E}else{if(s!=S_V)throw Error(\'attribute value must after "="\');value=source.slice(start,p).replace(/&#?\\w+;/g,entityReplacer),el.add(attrName,value,start),errorHandler.warning(\'attribute "\'+attrName+\'" missed start quot(\'+c+")!!"),start=p+1,s=S_E}break;case"/":switch(s){case S_TAG:el.setTagName(source.slice(start,p));case S_E:case S_S:case S_C:s=S_C,el.closed=!0;case S_V:case S_ATTR:case S_ATTR_S:break;default:throw Error("attribute invalid close char(\'/\')")}break;case"":errorHandler.error("unexpected end of input");case">":switch(s){case S_TAG:el.setTagName(source.slice(start,p));case S_E:case S_S:case S_C:break;case S_V:case S_ATTR:value=source.slice(start,p),"/"===value.slice(-1)&&(el.closed=!0,value=value.slice(0,-1));case S_ATTR_S:s===S_ATTR_S&&(value=attrName),s==S_V?(errorHandler.warning(\'attribute "\'+value+\'" missed quot(")!!\'),el.add(attrName,value.replace(/&#?\\w+;/g,entityReplacer),start)):(errorHandler.warning(\'attribute "\'+value+\'" missed value!! "\'+value+\'" instead!!\'),el.add(value,value,start));break;case S_EQ:throw Error("attribute value missed!!")}return p;case"Â":c=" ";default:if(" ">=c)switch(s){case S_TAG:el.setTagName(source.slice(start,p)),s=S_S;break;case S_ATTR:attrName=source.slice(start,p),s=S_ATTR_S;break;case S_V:var value=source.slice(start,p).replace(/&#?\\w+;/g,entityReplacer);errorHandler.warning(\'attribute "\'+value+\'" missed quot(")!!\'),el.add(attrName,value,start);case S_E:s=S_S}else switch(s){case S_ATTR_S:errorHandler.warning(\'attribute "\'+attrName+\'" missed value!! "\'+attrName+\'" instead!!\'),el.add(attrName,attrName,start),start=p,s=S_ATTR;\nbreak;case S_E:errorHandler.warning(\'attribute space is acequired"\'+attrName+\'"!!\');case S_S:s=S_ATTR,start=p;break;case S_EQ:s=S_V,start=p;break;case S_C:throw Error("elements closed character \'/\' and \'>\' must be connected to")}}p++}}function appendElement(el,domBuilder,parseStack){for(var tagName=el.tagName,localNSMap=null,currentNSMap=parseStack[parseStack.length-1].currentNSMap,i=el.length;i--;){var a=el[i],qName=a.qName,value=a.value,nsp=qName.indexOf(":");if(nsp>0)var prefix=a.prefix=qName.slice(0,nsp),localName=qName.slice(nsp+1),nsPrefix="xmlns"===prefix&&localName;else localName=qName,prefix=null,nsPrefix="xmlns"===qName&&"";a.localName=localName,nsPrefix!==!1&&(null==localNSMap&&(localNSMap={},_copy(currentNSMap,currentNSMap={})),currentNSMap[nsPrefix]=localNSMap[nsPrefix]=value,a.uri="http://www.w3.org/2000/xmlns/",domBuilder.startPrefixMapping(nsPrefix,value))}for(var i=el.length;i--;){a=el[i];var prefix=a.prefix;prefix&&("xml"===prefix&&(a.uri="http://www.w3.org/XML/1998/namespace"),"xmlns"!==prefix&&(a.uri=currentNSMap[prefix]))}var nsp=tagName.indexOf(":");nsp>0?(prefix=el.prefix=tagName.slice(0,nsp),localName=el.localName=tagName.slice(nsp+1)):(prefix=null,localName=el.localName=tagName);var ns=el.uri=currentNSMap[prefix||""];if(domBuilder.startElement(ns,localName,tagName,el),el.closed){if(domBuilder.endElement(ns,localName,tagName),localNSMap)for(prefix in localNSMap)domBuilder.endPrefixMapping(prefix)}else el.currentNSMap=currentNSMap,el.localNSMap=localNSMap,parseStack.push(el)}function parseHtmlSpecialContent(source,elStartEnd,tagName,entityReplacer,domBuilder){if(/^(?:script|textarea)$/i.test(tagName)){var elEndStart=source.indexOf("</"+tagName+">",elStartEnd),text=source.substring(elStartEnd+1,elEndStart);if(/[&<]/.test(text))return/^script$/i.test(tagName)?(domBuilder.characters(text,0,text.length),elEndStart):(text=text.replace(/&#?\\w+;/g,entityReplacer),domBuilder.characters(text,0,text.length),elEndStart)}return elStartEnd+1}function fixSelfClosed(source,elStartEnd,tagName,closeMap){var pos=closeMap[tagName];
8return null==pos&&(pos=closeMap[tagName]=source.lastIndexOf("</"+tagName+">")),elStartEnd>pos}function _copy(source,target){for(var n in source)target[n]=source[n]}function parseDCC(source,start,domBuilder,errorHandler){var next=source.charAt(start+2);switch(next){case"-":if("-"===source.charAt(start+3)){var end=source.indexOf("--\x3e",start+4);return end>start?(domBuilder.comment(source,start+4,end-start-4),end+3):(errorHandler.error("Unclosed comment"),-1)}return-1;default:if("CDATA["==source.substr(start+3,6)){var end=source.indexOf("]]>",start+9);return domBuilder.startCDATA(),domBuilder.characters(source,start+9,end-start-9),domBuilder.endCDATA(),end+3}var matchs=split(source,start),len=matchs.length;if(len>1&&/!doctype/i.test(matchs[0][0])){var name=matchs[1][0],pubid=len>3&&/^public$/i.test(matchs[2][0])&&matchs[3][0],sysid=len>4&&matchs[4][0],lastMatch=matchs[len-1];return domBuilder.startDTD(name,pubid&&pubid.replace(/^([\'"])(.*?)\\1$/,"$2"),sysid&&sysid.replace(/^([\'"])(.*?)\\1$/,"$2")),domBuilder.endDTD(),lastMatch.index+lastMatch[0].length}}return-1}function parseInstruction(source,start,domBuilder){var end=source.indexOf("?>",start);if(end){var match=source.substring(start,end).match(/^<\\?(\\S*)\\s*([\\s\\S]*?)\\s*$/);return match?(match[0].length,domBuilder.processingInstruction(match[1],match[2]),end+2):-1}return-1}function ElementAttributes(){}function _set_proto_(thiz,parent){return thiz.__proto__=parent,thiz}function split(source,start){var match,buf=[],reg=/\'[^\']+\'|"[^"]+"|[^\\s<>\\/=]+=?|(\\/?\\s*>|<)/g;for(reg.lastIndex=start,reg.exec(source);match=reg.exec(source);)if(buf.push(match),match[1])return buf}var nameStartChar=/[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/,nameChar=RegExp("[\\\\-\\\\.0-9"+nameStartChar.source.slice(1,-1)+"·Ì-ͯ\\\\ux203F-â]"),tagNamePattern=RegExp("^"+nameStartChar.source+nameChar.source+"*(?::"+nameStartChar.source+nameChar.source+"*)?$"),S_TAG=0,S_ATTR=1,S_ATTR_S=2,S_EQ=3,S_V=4,S_E=5,S_S=6,S_C=7;return XMLReader.prototype={parse:function(source,defaultNSMap,entityMap){var domBuilder=this.domBuilder;domBuilder.startDocument(),_copy(defaultNSMap,defaultNSMap={}),parse(source,defaultNSMap,entityMap,domBuilder,this.errorHandler),domBuilder.endDocument()}},ElementAttributes.prototype={setTagName:function(tagName){if(!tagNamePattern.test(tagName))throw Error("invalid tagName:"+tagName);this.tagName=tagName},add:function(qName,value,offset){if(!tagNamePattern.test(qName))throw Error("invalid attribute:"+qName);this[this.length++]={qName:qName,value:value,offset:offset}},length:0,getLocalName:function(i){return this[i].localName},getOffset:function(i){return this[i].offset},getQName:function(i){return this[i].qName},getURI:function(i){return this[i].uri},getValue:function(i){return this[i].value}},_set_proto_({},_set_proto_.prototype)instanceof _set_proto_||(_set_proto_=function(thiz,parent){function p(){}p.prototype=parent,p=new p;for(parent in thiz)p[parent]=thiz[parent];return p}),XMLReader}),ace.define("ace/mode/xml/dom",["require","exports","module"],function(){function copy(src,dest){for(var p in src)dest[p]=src[p]}function _extends(Class,Super){function t(){}var pt=Class.prototype;if(Object.create){var ppt=Object.create(Super.prototype);pt.__proto__=ppt}pt instanceof Super||(t.prototype=Super.prototype,t=new t,copy(pt,t),Class.prototype=pt=t),pt.constructor!=Class&&("function"!=typeof Class&&console.error("unknow Class:"+Class),pt.constructor=Class)}function DOMException(code,message){if(message instanceof Error)var error=message;else error=this,Error.call(this,ExceptionMessage[code]),this.message=ExceptionMessage[code],Error.captureStackTrace&&Error.captureStackTrace(this,DOMException);return error.code=code,message&&(this.message=this.message+": "+message),error}function NodeList(){}function LiveNodeList(node,refresh){this._node=node,this._refresh=refresh,_updateLiveList(this)}function _updateLiveList(list){var inc=list._node._inc||list._node.ownerDocument._inc;if(list._inc!=inc){var ls=list._refresh(list._node);__set__(list,"length",ls.length),copy(ls,list),list._inc=inc}}function NamedNodeMap(){}function _findNodeIndex(list,node){for(var i=list.length;i--;)if(list[i]===node)return i}function _addNamedNode(el,list,newAttr,oldAttr){if(oldAttr?list[_findNodeIndex(list,oldAttr)]=newAttr:list[list.length++]=newAttr,el){newAttr.ownerElement=el;var doc=el.ownerDocument;doc&&(oldAttr&&_onRemoveAttribute(doc,el,oldAttr),_onAddAttribute(doc,el,newAttr))}}function _removeNamedNode(el,list,attr){var i=_findNodeIndex(list,attr);if(!(i>=0))throw DOMException(NOT_FOUND_ERR,Error());for(var lastIndex=list.length-1;lastIndex>i;)list[i]=list[++i];if(list.length=lastIndex,el){var doc=el.ownerDocument;doc&&(_onRemoveAttribute(doc,el,attr),attr.ownerElement=null)}}function DOMImplementation(features){if(this._features={},features)for(var feature in features)this._features=features[feature]}function Node(){}function _xmlEncoder(c){return"<"==c&&"<"||">"==c&&">"||"&"==c&&"&
8"||\'"\'==c&&"""||"&#"+c.charCodeAt()+";"}function _visitNode(node,callback){if(callback(node))return!0;if(node=node.firstChild)do if(_visitNode(node,callback))return!0;while(node=node.nextSibling)}function Document(){}function _onAddAttribute(doc,el,newAttr){doc&&doc._inc++;var ns=newAttr.namespaceURI;"http://www.w3.org/2000/xmlns/"==ns&&(el._nsMap[newAttr.prefix?newAttr.localName:""]=newAttr.value)}function _onRemoveAttribute(doc,el,newAttr){doc&&doc._inc++;var ns=newAttr.namespaceURI;"http://www.w3.org/2000/xmlns/"==ns&&delete el._nsMap[newAttr.prefix?newAttr.localName:""]}function _onUpdateChild(doc,el,newChild){if(doc&&doc._inc){doc._inc++;var cs=el.childNodes;if(newChild)cs[cs.length++]=newChild;else{for(var child=el.firstChild,i=0;child;)cs[i++]=child,child=child.nextSibling;cs.length=i}}}function _removeChild(parentNode,child){var previous=child.previousSibling,next=child.nextSibling;return previous?previous.nextSibling=next:parentNode.firstChild=next,next?next.previousSibling=previous:parentNode.lastChild=previous,_onUpdateChild(parentNode.ownerDocument,parentNode),child}function _insertBefore(parentNode,newChild,nextChild){var cp=newChild.parentNode;if(cp&&cp.removeChild(newChild),newChild.nodeType===DOCUMENT_FRAGMENT_NODE){var newFirst=newChild.firstChild;if(null==newFirst)return newChild;var newLast=newChild.lastChild}else newFirst=newLast=newChild;var pre=nextChild?nextChild.previousSibling:parentNode.lastChild;newFirst.previousSibling=pre,newLast.nextSibling=nextChild,pre?pre.nextSibling=newFirst:parentNode.firstChild=newFirst,null==nextChild?parentNode.lastChild=newLast:nextChild.previousSibling=newLast;do newFirst.parentNode=parentNode;while(newFirst!==newLast&&(newFirst=newFirst.nextSibling));return _onUpdateChild(parentNode.ownerDocument||parentNode,parentNode),newChild.nodeType==DOCUMENT_FRAGMENT_NODE&&(newChild.firstChild=newChild.lastChild=null),newChild}function _appendSingleChild(parentNode,newChild){var cp=newChild.parentNode;if(cp){var pre=parentNode.lastChild;cp.removeChild(newChild);var pre=parentNode.lastChild}var pre=parentNode.lastChild;return newChild.parentNode=parentNode,newChild.previousSibling=pre,newChild.nextSibling=null,pre?pre.nextSibling=newChild:parentNode.firstChild=newChild,parentNode.lastChild=newChild,_onUpdateChild(parentNode.ownerDocument,parentNode,newChild),newChild}function Element(){this._nsMap={}}function Attr(){}function CharacterData(){}function Text(){}function Comment(){}function CDATASection(){}function DocumentType(){}function Notation(){}function Entity(){}function EntityReference(){}function DocumentFragment(){}function ProcessingInstruction(){}function XMLSerializer(){}function serializeToString(node,buf){switch(node.nodeType){case ELEMENT_NODE:var attrs=node.attributes,len=attrs.length,child=node.firstChild,nodeName=node.tagName,isHTML=htmlns===node.namespaceURI;buf.push("<",nodeName);for(var i=0;len>i;i++)serializeToString(attrs.item(i),buf,isHTML);if(child||isHTML&&!/^(?:meta|link|img|br|hr|input|button)$/i.test(nodeName)){if(buf.push(">"),isHTML&&/^script$/i.test(nodeName))child&&buf.push(child.data);else for(;child;)serializeToString(child,buf),child=child.nextSibling;buf.push("</",nodeName,">")}else buf.push("/>");return;case DOCUMENT_NODE:case DOCUMENT_FRAGMENT_NODE:for(var child=node.firstChild;child;)serializeToString(child,buf),child=child.nextSibling;return;case ATTRIBUTE_NODE:return buf.push(" ",node.name,\'="\',node.value.replace(/[<&"]/g,_xmlEncoder),\'"\');case TEXT_NODE:return buf.push(node.data.replace(/[<&]/g,_xmlEncoder));case CDATA_SECTION_NODE:return buf.push("<![CDATA[",node.data,"]]>");case COMMENT_NODE:return buf.push("\x3c!--",node.data,"--\x3e");case DOCUMENT_TYPE_NODE:var pubid=node.publicId,sysid=node.systemId;if(buf.push("<!DOCTYPE ",node.name),pubid)buf.push(\' PUBLIC "\',pubid),sysid&&"."!=sysid&&buf.push(\'" "\',sysid),buf.push(\'">\');else if(sysid&&"."!=sysid)buf.push(\' SYSTEM "\',sysid,\'">\');else{var sub=node.internalSubset;sub&&buf.push(" [",sub,"]"),buf.push(">")}return;case PROCESSING_INSTRUCTION_NODE:return buf.push("<?",node.target," ",node.data,"?>");case ENTITY_REFERENCE_NODE:return buf.push("&",node.nodeName,";");default:buf.push("??",node.nodeName)}}function importNode(doc,node,deep){var node2;switch(node.nodeType){case ELEMENT_NODE:node2=node.cloneNode(!1),node2.ownerDocument=doc;case DOCUMENT_FRAGMENT_NODE:break;case ATTRIBUTE_NODE:deep=!0}if(node2||(node2=node.cloneNode(!1)),node2.ownerDocument=doc,node2.parentNode=null,deep)for(var child=node.firstChild;child;)node2.appendChild(importNode(doc,child,deep)),child=child.nextSibling;return node2}function cloneNode(doc,node,deep){var node2=new node.constructor;for(var n in node){var v=node[n];"object"!=typeof v&&v!=node2[n]&&(node2[n]=v)}switch(node.childNodes&&(node2.childNodes=new NodeList),node2.ownerDocument=doc,node2.nodeType){case ELEMENT_NODE:var attrs=node.attributes,attrs2=node2.attributes=new NamedNodeMap,len=attrs.length;attrs2._ownerElement=node2;for(var i=0;len>i;i++)node2.setAttributeNode(cloneNode(doc,attrs.item(i),!0));break;case ATTRIBUTE_NODE:deep=!0}if(deep)for(var child=node.firstChild;child;)node2.appendChild(cloneNode(doc,child,deep)),child=child.nextSibling;return node2}function __set__(object,key,value){object[key]=value}function getTextContent(node){switch(node.nodeType){case 1:case 11:var buf=[];for(node=node.firstChild;node;)7!==node.nodeType&&8!==node.nodeType&&buf.push(getTextContent(node)),node=node.nextSibling;return buf.join("");default:return node.nodeValue}}var htmlns="http://www.w3.org/1999/xhtml",NodeType={},ELEMENT_NODE=NodeType.ELEMENT_NODE=1,ATTRIBUTE_NODE=NodeType.ATTRIBUTE_NODE=2,TEXT_NODE=NodeType.TEXT_NODE=3,CDATA_SECTION_NODE=NodeType.CDATA_SECTION_NODE=4,ENTITY_REFERENCE_NODE=NodeType.ENTITY_REFERENCE_NODE=5,ENTITY_NODE=NodeType.ENTITY_NODE=6,PROCESSING_INSTRUCTION_NODE=NodeType.PROCESSING_INSTRUCTION_NODE=7,COMMENT_NODE=NodeType.COMMENT_NODE=8,DOCUMENT_NODE=NodeType.DOCUMENT_NODE=9,DOCUMENT_TYPE_NODE=NodeType.DOCUMENT_TYPE_NODE=10,DOCUMENT_FRAGMENT_NODE=NodeType.DOCUMENT_FRAGMENT_NODE=11,NOTATION_NODE=NodeType.
8NOTATION_NODE=12,ExceptionCode={},ExceptionMessage={};ExceptionCode.INDEX_SIZE_ERR=(ExceptionMessage[1]="Index size error",1),ExceptionCode.DOMSTRING_SIZE_ERR=(ExceptionMessage[2]="DOMString size error",2),ExceptionCode.HIERARCHY_REQUEST_ERR=(ExceptionMessage[3]="Hierarchy request error",3),ExceptionCode.WRONG_DOCUMENT_ERR=(ExceptionMessage[4]="Wrong document",4),ExceptionCode.INVALID_CHARACTER_ERR=(ExceptionMessage[5]="Invalid character",5),ExceptionCode.NO_DATA_ALLOWED_ERR=(ExceptionMessage[6]="No data allowed",6),ExceptionCode.NO_MODIFICATION_ALLOWED_ERR=(ExceptionMessage[7]="No modification allowed",7);var NOT_FOUND_ERR=ExceptionCode.NOT_FOUND_ERR=(ExceptionMessage[8]="Not found",8);ExceptionCode.NOT_SUPPORTED_ERR=(ExceptionMessage[9]="Not supported",9);var INUSE_ATTRIBUTE_ERR=ExceptionCode.INUSE_ATTRIBUTE_ERR=(ExceptionMessage[10]="Attribute in use",10);ExceptionCode.INVALID_STATE_ERR=(ExceptionMessage[11]="Invalid state",11),ExceptionCode.SYNTAX_ERR=(ExceptionMessage[12]="Syntax error",12),ExceptionCode.INVALID_MODIFICATION_ERR=(ExceptionMessage[13]="Invalid modification",13),ExceptionCode.NAMESPACE_ERR=(ExceptionMessage[14]="Invalid namespace",14),ExceptionCode.INVALID_ACCESS_ERR=(ExceptionMessage[15]="Invalid access",15),DOMException.prototype=Error.prototype,copy(ExceptionCode,DOMException),NodeList.prototype={length:0,item:function(index){return this[index]||null}},LiveNodeList.prototype.item=function(i){return _updateLiveList(this),this[i]},_extends(LiveNodeList,NodeList),NamedNodeMap.prototype={length:0,item:NodeList.prototype.item,getNamedItem:function(key){for(var i=this.length;i--;){var attr=this[i];if(attr.nodeName==key)return attr}},setNamedItem:function(attr){var el=attr.ownerElement;if(el&&el!=this._ownerElement)throw new DOMException(INUSE_ATTRIBUTE_ERR);var oldAttr=this.getNamedItem(attr.nodeName);return _addNamedNode(this._ownerElement,this,attr,oldAttr),oldAttr},setNamedItemNS:function(attr){var oldAttr,el=attr.ownerElement;if(el&&el!=this._ownerElement)throw new DOMException(INUSE_ATTRIBUTE_ERR);return oldAttr=this.getNamedItemNS(attr.namespaceURI,attr.localName),_addNamedNode(this._ownerElement,this,attr,oldAttr),oldAttr},removeNamedItem:function(key){var attr=this.getNamedItem(key);return _removeNamedNode(this._ownerElement,this,attr),attr},removeNamedItemNS:function(namespaceURI,localName){var attr=this.getNamedItemNS(namespaceURI,localName);return _removeNamedNode(this._ownerElement,this,attr),attr},getNamedItemNS:function(namespaceURI,localName){for(var i=this.length;i--;){var node=this[i];if(node.localName==localName&&node.namespaceURI==namespaceURI)return node}return null}},DOMImplementation.prototype={hasFeature:function(feature,version){var versions=this._features[feature.toLowerCase()];return versions&&(!version||version in versions)?!0:!1},createDocument:function(namespaceURI,qualifiedName,doctype){var doc=new Document;if(doc.implementation=this,doc.childNodes=new NodeList,doc.doctype=doctype,doctype&&doc.appendChild(doctype),qualifiedName){var root=doc.createElementNS(namespaceURI,qualifiedName);doc.appendChild(root)}return doc},createDocumentType:function(qualifiedName,publicId,systemId){var node=new DocumentType;return node.name=qualifiedName,node.nodeName=qualifiedName,node.publicId=publicId,node.systemId=systemId,node}},Node.prototype={firstChild:null,lastChild:null,previousSibling:null,nextSibling:null,attributes:null,parentNode:null,childNodes:null,ownerDocument:null,nodeValue:null,namespaceURI:null,prefix:null,localName:null,insertBefore:function(newChild,refChild){return _insertBefore(this,newChild,refChild)},replaceChild:function(newChild,oldChild){this.insertBefore(newChild,oldChild),oldChild&&this.removeChild(oldChild)},removeChild:function(oldChild){return _removeChild(this,oldChild)},appendChild:function(newChild){return this.insertBefore(newChild,null)},hasChildNodes:function(){return null!=this.firstChild},cloneNode:function(deep){return cloneNode(this.ownerDocument||this,this,deep)},normalize:function(){for(var child=this.firstChild;child;){var next=child.nextSibling;next&&next.nodeType==TEXT_NODE&&child.nodeType==TEXT_NODE?(this.removeChild(next),child.appendData(next.data)):(child.normalize(),child=next)}},isSupported:function(feature,version){return this.ownerDocument.implementation.hasFeature(feature,version)},hasAttributes:function(){return this.attributes.length>0},lookupPrefix:function(namespaceURI){for(var el=this;el;){var map=el._nsMap;if(map)for(var n in map)if(map[n]==namespaceURI)return n;el=2==el.nodeType?el.ownerDocument:el.parentNode}return null},lookupNamespaceURI:function(prefix){for(var el=this;el;){var map=el._nsMap;if(map&&prefix in map)return map[prefix];el=2==el.nodeType?el.ownerDocument:el.parentNode}return null},isDefaultNamespace:function(namespaceURI){var prefix=this.lookupPrefix(namespaceURI);return null==prefix}},copy(NodeType,Node),copy(NodeType,Node.prototype),Document.prototype={nodeName:"#document",nodeType:DOCUMENT_NODE,doctype:null,documentElement:null,_inc:1,insertBefore:function(newChild,refChild){if(newChild.nodeType==DOCUMENT_FRAGMENT_NODE){for(var child=newChild.firstChild;child;){var next=child.nextSibling;this.insertBefore(child,refChild),child=next}return newChild}return null==this.documentElement&&1==newChild.nodeType&&(this.documentElement=newChild),_insertBefore(this,newChild,refChild),newChild.ownerDocument=this,newChild},removeChild:function(oldChild){return this.documentElement==oldChild&&(this.documentElement=null),_removeChild(this,oldChild)},importNode:function(importedNode,deep){return importNode(this,importedNode,deep)},getElementById:function(id){var rtv=null;return _visitNode(this.documentElement,function(node){return 1==node.nodeType&&node.getAttribute("id")==id?(rtv=node,!0):void 0}),rtv},createElement:function(tagName){var node=new Element;node.ownerDocument=this,node.nodeName=tagName,node.tagName=tagName,node.childNodes=new NodeList;var attrs=node.attributes=new NamedNodeMap;return attrs._ownerElement=node,node},createDocumentFragment:function(){var node=new DocumentFragment;return node.ownerDocument=this,node.childNodes=new NodeList,node},createTextNode:function(data){var node=new Text;return node.ownerDocument=this,node.appendData(data),node},createComment:function(data){var node=new Comment;return node.ownerDocument=this,node.appendData(data),node},createCDATASection:function(data){var node=new CDATASection;return node.ownerDocument=this,node.appendData(data),node},createProcessingInstruction:function(target,data){var node=new ProcessingInstruction;return node.ownerDocument=this,node.tagName=node.target=target,node.nodeValue=node.data=data,node},createAttribute:function(name){var node=new Attr;return node.ownerDocument=this,node.name=name,node.nodeName=name,node.localName=name,node.specified=!0,node},createEntityReference:function(name){var node=new EntityReference;return node.ownerDocument=this,node.nodeName=name,node},createElementNS:function(namespaceURI,qualifiedName){var node=new Element,pl=qualifiedName.split(":"),attrs=node.attributes=new NamedNodeMap;return node.childNodes=new NodeList,node.ownerDocument=this,node.nodeName=qualifiedName,node.tagName=qualifiedName,node.namespaceURI=namespaceURI,2==pl.length?(node.prefix=pl[0],node.localName=pl[1]):node.localName=qualifiedName,attrs._ownerElement=node,node},createAttributeNS:function(namespaceURI,qualifiedName){var node=new Attr,pl=qualifiedName.split(":");return node.ownerDocument=this,node.nodeName=qualifiedName,node.name=qualifiedName,node.namespaceURI=namespaceURI,node.specified=!0,2==pl.length?(node.prefix=pl[0],node.localName=pl[1]):node.localName=qualifiedName,node}},_extends(Document,Node),Element.prototype={nodeType:ELEMENT_NODE,hasAttribute:function(name){return null!=this.getAttributeNode(name)},getAttribute:function(name){var attr=this.getAttributeNode(name);return attr&&attr.value||""},getAttributeNode:function(name){return this.attributes.getNamedItem(name)},setAttribute:function(name,value){var attr=this.ownerDocument.createAttribute(name);attr.value=attr.nodeValue=""+value,this.setAttributeNode(attr)},removeAttribute:function(name){var attr=this.getAttributeNode(name);attr&&this.removeAttributeNode(attr)},appendChild:function(newChild){return newChild.nodeType===DOCUMENT_FRAGMENT_NODE?this.insertBefore(newChild,null):_appendSingleChild(this,newChild)},setAttributeNode:function(newAttr){return this.attributes.setNamedItem(newAttr)},setAttributeNodeNS:function(newAttr){return this.attributes.setNamedItemNS(newAttr)},removeAttributeNode:function(oldAttr){return this.attributes.removeNamedItem(oldAttr.nodeName)},removeAttributeNS:function(namespaceURI,localName){var old=this.getAttributeNodeNS(namespaceURI,localName);old&&this.removeAttributeNode(old)},hasAttributeNS:function(namespaceURI,localName){return null!=this.getAttributeNodeNS(namespaceURI,localName)},getAttributeNS:function(namespaceURI,localName){var attr=this.getAttributeNodeNS(namespaceURI,localName);return attr&&attr.value||""},setAttributeNS:function(namespaceURI,qualifiedName,value){var attr=this.ownerDocument.createAttributeNS(namespaceURI,qualifiedName);attr.value=attr.nodeValue=""+value,this.setAttributeNode(attr)},getAttributeNodeNS:function(namespaceURI,localName){return this.attributes.getNamedItemNS(namespaceURI,localName)},getElementsByTagName:function(tagName){return new LiveNodeList(this,function(base){var ls=[];return _visitNode(base,function(node){node===base||node.nodeType!=ELEMENT_NODE||"*"!==tagName&&node.tagName!=tagName||ls.push(node)}),ls})},getElementsByTagNameNS:function(namespaceURI,localName){return new LiveNodeList(this,function(base){var ls=[];return _visitNode(base,function(node){node===base||node.nodeType!==ELEMENT_NODE||"*"!==namespaceURI&&node.namespaceURI!==namespaceURI||"*"!==localName&&node.localName!=localName||ls.push(node)}),ls})}},Document.prototype.getElementsByTagName=Element.prototype.getElementsByTagName,Document.prototype.getElementsByTagNameNS=Element.prototype.getElementsByTagNameNS,_extends(Element,Node),Attr.prototype.nodeType=ATTRIBUTE_NODE,_extends(Attr,Node),CharacterData.prototype={data:"",substringData:function(offset,count){return this.data.substring(offset,offset+count)},appendData:function(text){text=this.data+text,this.nodeValue=this.data=text,this.length=text.length},insertData:function(offset,text){this.replaceData(offset,0,text)},appendChild:function(){throw Error(ExceptionMessage[3])},deleteData:function(offset,count){this.replaceData(offset,count,"")},replaceData:function(offset,count,text){var start=this.data.substring(0,offset),end=this.data.substring(offset+count);text=start+text+end,this.nodeValue=this.data=text,this.length=text.length}},_extends(CharacterData,Node),Text.prototype={nodeName:"#text",nodeType:TEXT_NODE,splitText:function(offset){var text=this.data,newText=text.substring(offset);text=text.substring(0,offset),this.data=this.nodeValue=text,this.length=text.length;var newNode=this.ownerDocument.createTextNode(newText);return this.parentNode&&this.parentNode.insertBefore(newNode,this.nextSibling),newNode}},_extends(Text,CharacterData),Comment.prototype={nodeName:"#comment",nodeType:COMMENT_NODE},_extends(Comment,CharacterData),CDATASection.prototype={nodeName:"#cdata-section",nodeType:CDATA_SECTION_NODE},_extends(CDATASection,CharacterData),DocumentType.prototype.nodeType=DOCUMENT_TYPE_NODE,_extends(DocumentType,Node),Notation.prototype.nodeType=NOTATION_NODE,_extends(Notation,Node),Entity.prototype.nodeType=ENTITY_NODE,_extends(Entity,Node),EntityReference.prototype.nodeType=ENTITY_REFERENCE_NODE,_extends(EntityReference,Node),DocumentFragment.prototype.nodeName="#document-fragment",DocumentFragment.prototype.nodeType=DOCUMENT_FRAGMENT_NODE,_extends(DocumentFragment,Node),ProcessingInstruction.prototype.nodeType=PROCESSING_INSTRUCTION_NODE,_extends(ProcessingInstruction,Node),XMLSerializer.prototype.serializeToString=function(node){var buf=[];return serializeToString(node,buf),buf.join("")},Node.prototype.toString=function(){return XMLSerializer.prototype.serializeToString(this)};try{Object.defineProperty&&(Object.defineProperty(LiveNodeList.prototype,"length",{get:function(){return _updateLiveList(this),this.$$length}}),Object.defineProperty(Node.prototype,"textContent",{get:function(){return getTextContent(this)},set:function(data){switch(this.nodeType){case 1:case 11:for(;this.firstChild;)this.removeChild(this.firstChild);(data||data+"")&&this.appendChild(this.ownerDocument.createTextNode(data));break;default:this.data=data,this.value=value,this.nodeValue=data}}}),__set__=function(object,key,value){object["$$"+key]=value})}catch(e){}return DOMImplementation}),ace.define("ace/mode/xml/dom-parser",["require","exports","module","ace/mode/xml/sax","ace/mode/xml/dom"],function(acequire){"use strict";function DOMParser(options){this.options=options||{locator:{}}}function buildErrorHandler(errorImpl,domBuilder,locator){function build(key){var fn=errorImpl[key];if(!fn)if(isCallback)fn=2==errorImpl.length?function(msg){errorImpl(key,msg)}:errorImpl;else for(var i=arguments.length;--i&&!(fn=errorImpl[arguments[i]]););errorHandler[key]=fn&&function(msg){fn(msg+_locator(locator),msg,locator)}||function(){}}if(!errorImpl){if(domBuilder instanceof DOMHandler)return domBuilder;errorImpl=domBuilder}var errorHandler={},isCallback=errorImpl instanceof Function;return locator=locator||{},build("warning","warn"),build("error","warn","warning"),build("fatalError","warn","warning","error"),errorHandler}function DOMHandler(){this.cdata=!1}function position(locator,node){node.lineNumber=locator.lineNumber,node.columnNumber=locator.columnNumber}function _locator(l){return l?"\\n@"+(l.systemId||"")+"#[line:"+l.lineNumber+",col:"+l.columnNumber+"]":void 0}function _toString(chars,start,length){return"string"==typeof chars?chars.substr(start,length):chars.length>
8=start+length||start?new java.lang.String(chars,start,length)+"":chars}function appendElement(hander,node){hander.currentElement?hander.currentElement.appendChild(node):hander.document.appendChild(node)}var XMLReader=acequire("./sax"),DOMImplementation=acequire("./dom");return DOMParser.prototype.parseFromString=function(source,mimeType){var options=this.options,sax=new XMLReader,domBuilder=options.domBuilder||new DOMHandler,errorHandler=options.errorHandler,locator=options.locator,defaultNSMap=options.xmlns||{},entityMap={lt:"<",gt:">",amp:"&",quot:\'"\',apos:"\'"};return locator&&domBuilder.setDocumentLocator(locator),sax.errorHandler=buildErrorHandler(errorHandler,domBuilder,locator),sax.domBuilder=options.domBuilder||domBuilder,/\\/x?html?$/.test(mimeType)&&(entityMap.nbsp=" ",entityMap.copy="©",defaultNSMap[""]="http://www.w3.org/1999/xhtml"),source?sax.parse(source,defaultNSMap,entityMap):sax.errorHandler.error("invalid document source"),domBuilder.document},DOMHandler.prototype={startDocument:function(){this.document=(new DOMImplementation).createDocument(null,null,null),this.locator&&(this.document.documentURI=this.locator.systemId)},startElement:function(namespaceURI,localName,qName,attrs){var doc=this.document,el=doc.createElementNS(namespaceURI,qName||localName),len=attrs.length;appendElement(this,el),this.currentElement=el,this.locator&&position(this.locator,el);for(var i=0;len>i;i++){var namespaceURI=attrs.getURI(i),value=attrs.getValue(i),qName=attrs.getQName(i),attr=doc.createAttributeNS(namespaceURI,qName);attr.getOffset&&position(attr.getOffset(1),attr),attr.value=attr.nodeValue=value,el.setAttributeNode(attr)}},endElement:function(){var current=this.currentElement;current.tagName,this.currentElement=current.parentNode},startPrefixMapping:function(){},endPrefixMapping:function(){},processingInstruction:function(target,data){var ins=this.document.createProcessingInstruction(target,data);this.locator&&position(this.locator,ins),appendElement(this,ins)},ignorableWhitespace:function(){},characters:function(chars){if(chars=_toString.apply(this,arguments),this.currentElement&&chars){if(this.cdata){var charNode=this.document.createCDATASection(chars);this.currentElement.appendChild(charNode)}else{var charNode=this.document.createTextNode(chars);this.currentElement.appendChild(charNode)}this.locator&&position(this.locator,charNode)}},skippedEntity:function(){},endDocument:function(){this.document.normalize()},setDocumentLocator:function(locator){(this.locator=locator)&&(locator.lineNumber=0)},comment:function(chars){chars=_toString.apply(this,arguments);var comm=this.document.createComment(chars);this.locator&&position(this.locator,comm),appendElement(this,comm)},startCDATA:function(){this.cdata=!0},endCDATA:function(){this.cdata=!1},startDTD:function(name,publicId,systemId){var impl=this.document.implementation;if(impl&&impl.createDocumentType){var dt=impl.createDocumentType(name,publicId,systemId);this.locator&&position(this.locator,dt),appendElement(this,dt)}},warning:function(error){console.warn(error,_locator(this.locator))},error:function(error){console.error(error,_locator(this.locator))},fatalError:function(error){throw console.error(error,_locator(this.locator)),error}},"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\\w+/g,function(key){DOMHandler.prototype[key]=function(){return null}}),{DOMParser:DOMParser}}),ace.define("ace/mode/xml_worker",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/worker/mirror","ace/mode/xml/dom-parser"],function(acequire,exports){"use strict";var oop=acequire("../lib/oop");acequire("../lib/lang");var Mirror=acequire("../worker/mirror").Mirror,DOMParser=acequire("./xml/dom-parser").DOMParser,Worker=exports.Worker=function(sender){Mirror.call(this,sender),this.setTimeout(400),this.context=null};oop.inherits(Worker,Mirror),function(){this.setOptions=function(options){this.context=options.context},this.onUpdate=function(){var value=this.doc.getValue();if(value){var parser=new DOMParser,errors=[];parser.options.errorHandler={fatalError:function(fullMsg,errorMsg,locator){errors.push({row:locator.lineNumber,column:locator.columnNumber,text:errorMsg,type:"error"})},error:function(fullMsg,errorMsg,locator){errors.push({row:locator.lineNumber,column:locator.columnNumber,text:errorMsg,type:"error"})},warning:function(fullMsg,errorMsg,locator){errors.push({row:locator.lineNumber,column:locator.columnNumber,text:errorMsg,type:"warning"})}},parser.parseFromString(value),this.sender.emit("error",errors)}}}.call(Worker.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,"sentinel",{}),"sentinel"in object\n}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError("Function.prototype.bind called on incompatible "+target);
8var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,"__defineGetter__"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,"XXX"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0
vendor: 10,246 bytes, line 8
8}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return"[object Array]"==_toString(obj)});var boxedString=Object("a"),splitString="a"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,thisp=arguments[1],i=-1,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=[],thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError("reduce of empty array with no initial value")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError("reduceRight of empty array with no initial value")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(object,property){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if("object"!=typeof prototype)throw new TypeError("typeof prototype["+typeof prototype+"] != \'object\'");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom="undefined"==typeof document||doesDefinePropertyWork(document.createElement("div"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR="Property description must be an object: ",ERR_NON_OBJECT_TARGET="Object.defineProperty called on non-object: ",ERR_ACCESSORS_NOT_SUPPORTED="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(object,property,descriptor){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if("object"!=typeof descriptor&&"function"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,"value"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,"get")&&defineGetter(object,property,descriptor.get),owns(descriptor,"set")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return"function"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name="";owns(object,name);)name+="?";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError("Object.keys called on a non-object");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws="\t\\n\v\\f\\r
8Â áá ââââââ
ââââââ¯âã\\u2028\\u2029\ufeff";if(!String.prototype.trim||ws.trim()){ws="["+ws+"]";var trimBeginRegexp=RegExp("^"+ws+ws+"*"),trimEndRegexp=RegExp(ws+ws+"*$");String.prototype.trim=function(){return(this+"").replace(trimBeginRegexp,"").replace(trimEndRegexp,"")}}var toObject=function(o){if(null==o)throw new TypeError("can\'t convert "+o+" to object");return Object(o)}});'},function(e,t){e.exports.id="ace/mode/css_worker",e.exports.src='"no use strict";(function(window){function resolveModuleId(id,paths){for(var testPath=id,tail="";testPath;){var alias=paths[testPath];if("string"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,"/")+(tail||alias.main||alias.name);if(alias===!1)return"";var i=testPath.lastIndexOf("/");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:"error",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf("!")){var chunks=moduleName.split("!");return window.normalizeModule(parentId,chunks[0])+"!"+window.normalizeModule(parentId,chunks[1])}if("."==moduleName.charAt(0)){var base=parentId.split("/").slice(0,-1).join("/");for(moduleName=(base?base+"/":"")+moduleName;-1!==moduleName.indexOf(".")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,"").replace(/\\/\\.\\//,"/").replace(/[^\\/]+\\/\\.\\.\\//,"")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error("worker.js acequire() accepts only (parentId, id) as arguments");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log("unable to load "+id);var path=resolveModuleId(id,window.acequire.tlns);return".js"!=path.slice(-3)&&(path+=".js"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,"string"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),"function"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=["require","exports","module"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case"require":return req;case"exports":return module.exports;case"module":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire("ace/lib/event_emitter").EventEmitter,oop=window.acequire("ace/lib/oop"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:"call",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:"event",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error("Unknown command:"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire("ace/lib/es5-shim"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}})(this),ace.define("ace/lib/oop",["require","exports","module"],function(acequire,exports){"use strict";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define("ace/lib/lang",["require","exports","module"],function(acequire,exports){"use strict";exports.last=function(a){return a[a.length-1]}
8,exports.stringReverse=function(string){return string.split("").reverse().join("")},exports.stringRepeat=function(string,count){for(var result="";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,"")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,"")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&"object"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if("object"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if("[object Object]"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,"\\\\$1")},exports.escapeHTML=function(str){return str.replace(/&/g,"&").replace(/"/g,""").replace(/\'/g,"'").replace(/</g,"<")},exports.getMatchOffsets=function(string,regExp){var matches=[];return string.replace(regExp,function(str){matches.push({offset:arguments[arguments.length-2],length:str.length})}),matches},exports.deferredCall=function(fcn){var timer=null,callback=function(){timer=null,fcn()},deferred=function(timeout){return deferred.cancel(),timer=setTimeout(callback,timeout||0),deferred};return deferred.schedule=deferred,deferred.call=function(){return this.cancel(),fcn(),deferred},deferred.cancel=function(){return clearTimeout(timer),timer=null,deferred},deferred.isPending=function(){return timer},deferred},exports.delayedCall=function(fcn,defaultTimeout){var timer=null,callback=function(){timer=null,fcn()},_self=function(timeout){null==timer&&(timer=setTimeout(callback,timeout||defaultTimeout))};return _self.delay=function(timeout){timer&&clearTimeout(timer),timer=setTimeout(callback,timeout||defaultTimeout)},_self.schedule=_self,_self.call=function(){this.cancel(),fcn()},_self.cancel=function(){timer&&clearTimeout(timer),timer=null},_self.isPending=function(){return timer},_self
vendor: 18,820 bytes, line 8
8}}),ace.define("ace/range",["require","exports","module"],function(acequire,exports){"use strict";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){"object"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){"object"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define("ace/apply_delta",["require","exports","module"],function(acequire,exports){"use strict";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||"";switch(delta.action){case"insert":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case"remove":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(acequire,exports){"use strict";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){"object"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?"unshift":"push"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),EventEmitter=acequire("./lib/event_emitter").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.column<point2.column;return point1.row<point2.row||point1.row==point2.row&&bColIsAfter}function $getTransformedPoint(delta,point,moveIfEqual){var deltaIsInsert="insert"==delta.action,deltaRowShift=(deltaIsInsert?1:-1)*(delta.end.row-delta.start.row),deltaColShift=(deltaIsInsert?1:-1)*(delta.end.column-delta.start.column),deltaStart=delta.start,deltaEnd=deltaIsInsert?deltaStart:delta.end;return $pointsInOrder(point,deltaStart,moveIfEqual)?{row:point.row,column:point.column}:$pointsInOrder(deltaEnd,point,!moveIfEqual)?{row:point.row+deltaRowShift,column:point.column+(point.row==deltaEnd.row?deltaColShift:0)}:{row:deltaStart.row,column:deltaStart.column}}oop.implement(this,EventEmitter),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(delta){if(!(delta.start.row==delta.end.row&&delta.start.row!=this.row||delta.start.row>this.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal("change",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),applyDelta=acequire("./apply_delta").applyDelta,EventEmitter=acequire("./lib/event_emitter").EventEmitter,Range=acequire("./range").Range,Anchor=acequire("./anchor").Anchor,Document=function(textOrLines){this.$lines=[""],0===textOrLines.length?this.$lines=[""]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==="aaa".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,"\\n").split("\\n")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:"\\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\\r\\n";case"unix":return"\\n";default:return this.$autoNewLine||"\\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return"\\r\\n"==text||"\\r"==text||"\\n"==text},this.getLine=function(row){return this.$lines[row]||""},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||"").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, [\'\', \'\']) instead."),this.insertMergedLines(position,["",""])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:"insert",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([""]),column=0):(lines=[""].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:"insert",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:"remove",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:"remove",lines:["",""]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert="insert"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal("change",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(""),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:"insert"==delta.action?"remove":"insert",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define("ace/
8worker/mirror",["require","exports","module","ace/range","ace/document","ace/lib/lang"],function(acequire,exports){"use strict";acequire("../range").Range;var Document=acequire("../document").Document,lang=acequire("../lib/lang"),Mirror=exports.Mirror=function(sender){this.sender=sender;var doc=this.doc=new Document(""),deferredUpdate=this.deferredUpdate=lang.delayedCall(this.onUpdate.bind(this)),_self=this;sender.on("change",function(e){var data=e.data;if(data[0].start)doc.applyDeltas(data);else for(var i=0;data.length>i;i+=2){if(Array.isArray(data[i+1]))var d={action:"insert",start:data[i],lines:data[i+1]};else var d={action:"remove",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define("ace/mode/css/csslint",["require","exports","module"],function(acequire,exports,module){function objectToString(o){return Object.prototype.toString.call(o)}function clone(parent,circular,depth,prototype){function _clone(parent,depth){if(null===parent)return null;if(0==depth)return parent;var child;if("object"!=typeof parent)return parent;if(util.isArray(parent))child=[];else if(util.isRegExp(parent))child=RegExp(parent.source,util.getRegExpFlags(parent)),parent.lastIndex&&(child.lastIndex=parent.lastIndex);else if(util.isDate(parent))child=new Date(parent.getTime());else{if(useBuffer&&Buffer.isBuffer(parent))return child=new Buffer(parent.length),parent.copy(child),child;child=prototype===void 0?Object.create(Object.getPrototypeOf(parent)):Object.create(prototype)}if(circular){var index=allParents.indexOf(parent);if(-1!=index)return allChildren[index];allParents.push(parent),allChildren.push(child)}for(var i in parent)child[i]=_clone(parent[i],depth-1);return child}var allParents=[],allChildren=[],useBuffer="undefined"!=typeof Buffer;return circular===void 0&&(circular=!0),depth===void 0&&(depth=1/0),_clone(parent,depth)}function Reporter(lines,ruleset){this.messages=[],this.stats=[],this.lines=lines,this.ruleset=ruleset}var parserlib={};(function(){function EventTarget(){this._listeners={}}function StringReader(text){this._input=text.replace(/\\n\\r?/g,"\\n"),this._line=1,this._col=1,this._cursor=0}function SyntaxError(message,line,col){this.col=col,this.line=line,this.message=message}function SyntaxUnit(text,line,col,type){this.col=col,this.line=line,this.text=text,this.type=type}function TokenStreamBase(input,tokenData){this._reader=input?new StringReader(""+input):null,this._token=null,this._tokenData=tokenData,this._lt=[],this._ltIndex=0,this._ltIndexCache=[]}EventTarget.prototype={constructor:EventTarget,addListener:function(type,listener){this._listeners[type]||(this._listeners[type]=[]),this._listeners[type].push(listener)},fire:function(event){if("string"==typeof event&&(event={type:event}),event.target!==void 0&&(event.target=this),event.type===void 0)throw Error("Event object missing \'type\' property.");if(this._listeners[event.type])for(var listeners=this._listeners[event.type].concat(),i=0,len=listeners.length;len>i;i++)listeners[i].call(this,event)},removeListener:function(type,listener){if(this._listeners[type])for(var listeners=this._listeners[type],i=0,len=listeners.length;len>i;i++)if(listeners[i]===listener){listeners.splice(i,1);break}}},StringReader.prototype={constructor:StringReader,getCol:function(){return this._col},getLine:function(){return this._line},eof:function(){return this._cursor==this._input.length},peek:function(count){var c=null;return count=count===void 0?1:count,this._cursor<this._input.length&&(c=this._input.charAt(this._cursor+count-1)),c},read:function(){var c=null;return this._cursor<this._input.length&&("\\n"==this._input.charAt(this._cursor)?(this._line++,this._col=1):this._col++,c=this._input.charAt(this._cursor++)),c},mark:function(){this._bookmark={cursor:this._cursor,line:this._line,col:this._col}},reset:function(){this._bookmark&&(this._cursor=this._bookmark.cursor,this._line=this._bookmark.line,this._col=this._bookmark.col,delete this._bookmark)},readTo:function(pattern){for(var c,buffer="";buffer.length<pattern.length||buffer.lastIndexOf(pattern)!=buffer.length-pattern.length;){if(c=this.read(),!c)throw Error(\'Expected "\'+pattern+\'" at line \'+this._line+", col "+this._col+".");buffer+=c}return buffer},readWhile:function(filter){for(var buffer="",c=this.read();null!==c&&filter(c);)buffer+=c,c=this.read();return buffer},readMatch:function(matcher){var source=this._input.substring(this._cursor),value=null;return"string"==typeof matcher?0===source.indexOf(matcher)&&(value=this.readCount(matcher.length)):matcher instanceof RegExp&&matcher.test(source)&&(value=this.readCount(RegExp.lastMatch.length)),value},readCount:function(count){for(var buffer="";count--;)buffer+=this.read();return buffer}},SyntaxError.prototype=Error(),SyntaxUnit.fromToken=function(token){return new SyntaxUnit(token.value,token.startLine,token.startCol)},SyntaxUnit.prototype={constructor:SyntaxUnit,valueOf:function(){return this.text},toString:function(){return this.text}},TokenStreamBase.createTokenData=function(tokens){var nameMap=[],typeMap={},tokenData=tokens.concat([]),i=0,len=tokenData.length+1;for(tokenData.UNKNOWN=-1,tokenData.unshift({name:"EOF"});len>i;
8i++)nameMap.push(tokenData[i].name),tokenData[tokenData[i].name]=i,tokenData[i].text&&(typeMap[tokenData[i].text]=i);return tokenData.name=function(tt){return nameMap[tt]},tokenData.type=function(c){return typeMap[c]},tokenData},TokenStreamBase.prototype={constructor:TokenStreamBase,match:function(tokenTypes,channel){tokenTypes instanceof Array||(tokenTypes=[tokenTypes]);\nfor(var tt=this.get(channel),i=0,len=tokenTypes.length;len>i;)if(tt==tokenTypes[i++])return!0;return this.unget(),!1},mustMatch:function(tokenTypes){var token;if(tokenTypes instanceof Array||(tokenTypes=[tokenTypes]),!this.match.apply(this,arguments))throw token=this.LT(1),new SyntaxError("Expected "+this._tokenData[tokenTypes[0]].name+" at line "+token.startLine+", col "+token.startCol+".",token.startLine,token.startCol)},advance:function(tokenTypes,channel){for(;0!==this.LA(0)&&!this.match(tokenTypes,channel);)this.get();return this.LA(0)},get:function(channel){var token,info,tokenInfo=this._tokenData,i=(this._reader,0);if(tokenInfo.length,this._lt.length&&this._ltIndex>=0&&this._ltIndex<this._lt.length){for(i++,this._token=this._lt[this._ltIndex++],info=tokenInfo[this._token.type];void 0!==info.channel&&channel!==info.channel&&this._ltIndex<this._lt.length;)this._token=this._lt[this._ltIndex++],info=tokenInfo[this._token.type],i++;if((void 0===info.channel||channel===info.channel)&&this._ltIndex<=this._lt.length)return this._ltIndexCache.push(i),this._token.type}return token=this._getToken(),token.type>-1&&!tokenInfo[token.type].hide&&(token.channel=tokenInfo[token.type].channel,this._token=token,this._lt.push(token),this._ltIndexCache.push(this._lt.length-this._ltIndex+i),this._lt.length>5&&this._lt.shift(),this._ltIndexCache.length>5&&this._ltIndexCache.shift(),this._ltIndex=this._lt.length),info=tokenInfo[token.type],info&&(info.hide||void 0!==info.channel&&channel!==info.channel)?this.get(channel):token.type},LA:function(index){var tt,total=index;if(index>0){if(index>5)throw Error("Too much lookahead.");for(;total;)tt=this.get(),total--;for(;index>total;)this.unget(),total++}else if(0>index){if(!this._lt[this._ltIndex+index])throw Error("Too much lookbehind.");tt=this._lt[this._ltIndex+index].type}else tt=this._token.type;return tt},LT:function(index){return this.LA(index),this._lt[this._ltIndex+index-1]},peek:function(){return this.LA(1)},token:function(){return this._token},tokenName:function(tokenType){return 0>tokenType||tokenType>this._tokenData.length?"UNKNOWN_TOKEN":this._tokenData[tokenType].name},tokenType:function(tokenName){return this._tokenData[tokenName]||-1},unget:function(){if(!this._ltIndexCache.length)throw Error("Too much lookahead.");this._ltIndex-=this._ltIndexCache.pop(),this._token=this._lt[this._ltIndex-1]}},parserlib.util={StringReader:StringReader,SyntaxError:SyntaxError,SyntaxUnit:SyntaxUnit,EventTarget:EventTarget,TokenStreamBase:TokenStreamBase}})(),function(){function Combinator(text,line,col){SyntaxUnit.call(this,text,line,col,Parser.COMBINATOR_TYPE),this.type="unknown",/^\\s+$/.test(text)?this.type="descendant":">"==text?this.type="child":"+"==text?this.type="adjacent-sibling":"~"==text&&(this.type="sibling")}function MediaFeature(name,value){SyntaxUnit.call(this,"("+name+(null!==value?":"+value:"")+")",name.startLine,name.startCol,Parser.MEDIA_FEATURE_TYPE),this.name=name,this.value=value}function MediaQuery(modifier,mediaType,features,line,col){SyntaxUnit.call(this,(modifier?modifier+" ":"")+(mediaType?mediaType:"")+(mediaType&&features.length>0?" and ":"")+features.join(" and "),line,col,Parser.MEDIA_QUERY_TYPE),this.modifier=modifier,this.mediaType=mediaType,this.features=features}function Parser(options){EventTarget.call(this),this.options=options||{},this._tokenStream=null}function PropertyName(text,hack,line,col){SyntaxUnit.call(this,text,line,col,Parser.PROPERTY_NAME_TYPE),this.hack=hack}function PropertyValue(parts,line,col){SyntaxUnit.call(this,parts.join(" "),line,col,Parser.PROPERTY_VALUE_TYPE),this.parts=parts}function PropertyValueIterator(value){this._i=0,this._parts=value.parts,this._marks=[],this.value=value}function PropertyValuePart(text,line,col){SyntaxUnit.call(this,text,line,col,Parser.PROPERTY_VALUE_PART_TYPE),this.type="unknown";var temp;if(/^([+\\-]?[\\d\\.]+)([a-z]+)$/i.test(text))switch(this.type="dimension",this.value=+RegExp.$1,this.units=RegExp.$2,this.units.toLowerCase()){case"em":case"rem":case"ex":case"px":case"cm":case"mm":case"in":case"pt":case"pc":case"ch":case"vh":case"vw":case"vmax":case"vmin":this.type="length";break;case"deg":case"rad":case"grad":this.type="angle";break;case"ms":case"s":this.type="time";break;
8case"hz":case"khz":this.type="frequency";break;case"dpi":case"dpcm":this.type="resolution"}else/^([+\\-]?[\\d\\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\\-]?\\d+)$/i.test(text)?(this.type="integer",this.value=+RegExp.$1):/^([+\\-]?[\\d\\.]+)$/i.test(text)?(this.type="number",this.value=+RegExp.$1):/^#([a-f0-9]{3,6})/i.test(text)?(this.type="color",temp=RegExp.$1,3==temp.length?(this.red=parseInt(temp.charAt(0)+temp.charAt(0),16),this.green=parseInt(temp.charAt(1)+temp.charAt(1),16),this.blue=parseInt(temp.charAt(2)+temp.charAt(2),16)):(this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16))):/^rgb\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)/i.test(text)?(this.type="color",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3):/^rgb\\(\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*\\)/i.test(text)?(this.type="color",this.red=255*+RegExp.$1/100,this.green=255*+RegExp.$2/100,this.blue=255*+RegExp.$3/100):/^rgba\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*([\\d\\.]+)\\s*\\)/i.test(text)?(this.type="color",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3,this.alpha=+RegExp.$4):/^rgba\\(\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*,\\s*([\\d\\.]+)\\s*\\)/i.test(text)?(this.type="color",this.red=255*+RegExp.$1/100,this.green=255*+RegExp.$2/100,this.blue=255*+RegExp.$3/100,this.alpha=+RegExp.$4):/^hsl\\(\\s*(\\d+)\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*\\)/i.test(text)?(this.type="color",this.hue=+RegExp.$1,this.saturation=+RegExp.$2/100,this.lightness=+RegExp.$3/100):/^hsla\\(\\s*(\\d+)\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*,\\s*([\\d\\.]+)\\s*\\)/i.test(text)?(this.type="color",this.hue=+RegExp.$1,this.saturation=+RegExp.$2/100,this.lightness=+RegExp.$3/100,this.alpha=+RegExp.$4):/^url\\(["\']?([^\\)"\']+)["\']?\\)/i.test(text)?(this.type="uri",this.uri=RegExp.$1):/^([^\\(]+)\\(/i.test(text)?(this.type="function",this.name=RegExp.$1,this.value=text):/^["\'][^"\']*["\']/.test(text)?(this.type="string",this.value=eval(text)):Colors[text.toLowerCase()]?(this.type="color",temp=Colors[text.toLowerCase()].substring(1),this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16)):/^[\\,\\/]$/.test(text)?(this.type="operator",this.value=text):/^[a-z\\-_\\u0080-\\uFFFF][a-z0-9\\-_\\u0080-\\uFFFF]*$/i.test(text)&&(this.type="identifier",this.value=text)}function Selector(parts,line,col){SyntaxUnit.call(this,parts.join(" "),line,col,Parser.SELECTOR_TYPE),this.parts=parts,this.specificity=Specificity.calculate(this)}function SelectorPart(elementName,modifiers,text,line,col){SyntaxUnit.call(this,text,line,col,Parser.SELECTOR_PART_TYPE),this.elementName=elementName,this.modifiers=modifiers}function SelectorSubPart(text,type,line,col){SyntaxUnit.call(this,text,line,col,Parser.SELECTOR_SUB_PART_TYPE),this.type=type,this.args=[]}function Specificity(a,b,c,d){this.a=a,this.b=b,this.c=c,this.d=d}function isHexDigit(c){return null!==c&&h.test(c)}function isDigit(c){return null!==c&&/\\d/.test(c)}function isWhitespace(c){return null!==c&&/\\s/.test(c)}function isNewLine(c){return null!==c&&nl.test(c)}function isNameStart(c){return null!==c&&/[a-z_\\u0080-\\uFFFF\\\\]/i.test(c)}function isNameChar(c){return null!==c&&(isNameStart(c)||/[0-9\\-\\\\]/.test(c))}function isIdentStart(c){return null!==c&&(isNameStart(c)||/\\-\\\\/.test(c))}function mix(receiver,supplier){for(var prop in supplier)supplier.hasOwnProperty(prop)&&(receiver[prop]=supplier[prop]);return receiver}function TokenStream(input){TokenStreamBase.call(this,input,Tokens)}function ValidationError(message,line,col){this.col=col,this.line=line,this.message=message}var EventTarget=parserlib.util.EventTarget,TokenStreamBase=parserlib.util.TokenStreamBase,StringReader=parserlib.util.StringReader,SyntaxError=parserlib.util.SyntaxError,SyntaxUnit=parserlib.util.SyntaxUnit,Colors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgrey:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",s
8almon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32",activeBorder:"Active window border.",activecaption:"Active window caption.",appworkspace:"Background color of multiple document interface.",background:"Desktop background.",buttonface:"The face background color for 3-D elements that appear 3-D due to one layer of surrounding border.",buttonhighlight:"The color of the border facing the light source for 3-D elements that appear 3-D due to one layer of surrounding border.",buttonshadow:"The color of the border away from the light source for 3-D elements that appear 3-D due to one layer of surrounding border.",buttontext:"Text on push buttons.",captiontext:"Text in caption, size box, and scrollbar arrow box.",graytext:"Grayed (disabled) text. This color is set to #000 if the current display driver does not support a solid gray color.",greytext:"Greyed (disabled) text. This color is set to #000 if the current display driver does not support a solid grey color.",highlight:"Item(s) selected in a control.",highlighttext:"Text of item(s) selected in a control.",inactiveborder:"Inactive window border.",inactivecaption:"Inactive window caption.",inactivecaptiontext:"Color of text in an inactive caption.",infobackground:"Backgroun
8d color for tooltip controls.",infotext:"Text color for tooltip controls.",menu:"Menu background.",menutext:"Text in menus.",scrollbar:"Scroll bar gray area.",threeddarkshadow:"The color of the darker (generally outer) of the two borders away from the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",threedface:"The face background color for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",threedhighlight:"The color of the lighter (generally outer) of the two borders facing the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",threedlightshadow:"The color of the darker (generally inner) of the two borders facing the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",threedshadow:"The color of the lighter (generally inner) of the two borders away from the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",window:"Window background.",windowframe:"Window frame.",windowtext:"Text in windows."};Combinator.prototype=new SyntaxUnit,Combinator.prototype.constructor=Combinator,MediaFeature.prototype=new SyntaxUnit,MediaFeature.prototype.constructor=MediaFeature,MediaQuery.prototype=new SyntaxUnit,MediaQuery.prototype.constructor=MediaQuery,Parser.DEFAULT_TYPE=0,Parser.COMBINATOR_TYPE=1,Parser.MEDIA_FEATURE_TYPE=2,Parser.MEDIA_QUERY_TYPE=3,Parser.PROPERTY_NAME_TYPE=4,Parser.PROPERTY_VALUE_TYPE=5,Parser.PROPERTY_VALUE_PART_TYPE=6,Parser.SELECTOR_TYPE=7,Parser.SELECTOR_PART_TYPE=8,Parser.SELECTOR_SUB_PART_TYPE=9,Parser.prototype=function(){var prop,proto=new EventTarget,additions={constructor:Parser,DEFAULT_TYPE:0,COMBINATOR_TYPE:1,MEDIA_FEATURE_TYPE:2,MEDIA_QUERY_TYPE:3,PROPERTY_NAME_TYPE:4,PROPERTY_VALUE_TYPE:5,PROPERTY_VALUE_PART_TYPE:6,SELECTOR_TYPE:7,SELECTOR_PART_TYPE:8,SELECTOR_SUB_PART_TYPE:9,_stylesheet:function(){var count,token,tt,tokenStream=this._tokenStream;for(this.fire("startstylesheet"),this._charset(),this._skipCruft();tokenStream.peek()==Tokens.IMPORT_SYM;)this._import(),this._skipCruft();for(;tokenStream.peek()==Tokens.NAMESPACE_SYM;)this._namespace(),this._skipCruft();for(tt=tokenStream.peek();tt>Tokens.EOF;){try{switch(tt){case Tokens.MEDIA_SYM:this._media(),this._skipCruft();break;case Tokens.PAGE_SYM:this._page(),this._skipCruft();break;case Tokens.FONT_FACE_SYM:this._font_face(),this._skipCruft();break;case Tokens.KEYFRAMES_SYM:this._keyframes(),this._skipCruft();break;case Tokens.VIEWPORT_SYM:this._viewport(),this._skipCruft();break;case Tokens.UNKNOWN_SYM:if(tokenStream.get(),this.options.strict)throw new SyntaxError("Unknown @ rule.",tokenStream.LT(0).startLine,tokenStream.LT(0).startCol);for(this.fire({type:"error",error:null,message:"Unknown @ rule: "+tokenStream.LT(0).value+".",line:tokenStream.LT(0).startLine,col:tokenStream.LT(0).startCol}),count=0;tokenStream.advance([Tokens.LBRACE,Tokens.RBRACE])==Tokens.LBRACE;)count++;for(;count;)tokenStream.advance([Tokens.RBRACE]),count--;break;case Tokens.S:this._readWhitespace();break;default:if(!this._ruleset())switch(tt){case Tokens.CHARSET_SYM:throw token=tokenStream.LT(1),this._charset(!1),new SyntaxError("@charset not allowed here.",token.startLine,token.startCol);case Tokens.IMPORT_SYM:throw token=tokenStream.LT(1),this._import(!1),new SyntaxError("@import not allowed here.",token.startLine,token.startCol);case Tokens.NAMESPACE_SYM:throw token=tokenStream.LT(1),this._namespace(!1),new SyntaxError("@namespace not allowed here.",token.startLine,token.startCol);default:tokenStream.get(),this._unexpectedToken(tokenStream.token())}}}catch(ex){if(!(ex instanceof SyntaxError)||this.options.strict)throw ex;this.fire({type:"error",error:ex,message:ex.message,line:ex.line,col:ex.col})}tt=tokenStream.peek()}tt!=Tokens.EOF&&this._unexpectedToken(tokenStream.token()),this.fire("endstylesheet")},_charset:function(emit){var charset,token,line,col,tokenStream=this._tokenStream;tokenStream.match(Tokens.CHARSET_SYM)&&(line=tokenStream.token().startLine,col=tokenStream.token().startCol,this._readWhitespace(),tokenStream.mustMatch(Tokens.STRING),token=tokenStream.token(),charset=token.value,this._readWhitespace(),tokenStream.mustMatch(Tokens.SEMICOLON),emit!==!1&&this.fire({type:"charset",charset
8:charset,line:line,col:col}))},_import:function(emit){var uri,importToken,tokenStream=this._tokenStream,mediaList=[];tokenStream.mustMatch(Tokens.IMPORT_SYM),importToken=tokenStream.token(),this._readWhitespace(),tokenStream.mustMatch([Tokens.STRING,Tokens.URI]),uri=tokenStream.token().value.replace(/^(?:url\\()?["\']?([^"\']+?)["\']?\\)?$/,"$1"),this._readWhitespace(),mediaList=this._media_query_list(),tokenStream.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),emit!==!1&&this.fire({type:"import",uri:uri,media:mediaList,line:importToken.startLine,col:importToken.startCol})},_namespace:function(emit){var line,col,prefix,uri,tokenStream=this._tokenStream;tokenStream.mustMatch(Tokens.NAMESPACE_SYM),line=tokenStream.token().startLine,col=tokenStream.token().startCol,this._readWhitespace(),tokenStream.match(Tokens.IDENT)&&(prefix=tokenStream.token().value,this._readWhitespace()),tokenStream.mustMatch([Tokens.STRING,Tokens.URI]),uri=tokenStream.token().value.replace(/(?:url\\()?["\']([^"\']+)["\']\\)?/,"$1"),this._readWhitespace(),tokenStream.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),emit!==!1&&this.fire({type:"namespace",prefix:prefix,uri:uri,line:line,col:col})},_media:function(){var line,col,mediaList,tokenStream=this._tokenStream;for(tokenStream.mustMatch(Tokens.MEDIA_SYM),line=tokenStream.token().startLine,col=tokenStream.token().startCol,this._readWhitespace(),mediaList=this._media_query_list(),tokenStream.mustMatch(Tokens.LBRACE),this._readWhitespace(),this.fire({type:"startmedia",media:mediaList,line:line,col:col});;)if(tokenStream.peek()==Tokens.PAGE_SYM)this._page();else if(tokenStream.peek()==Tokens.FONT_FACE_SYM)this._font_face();else if(tokenStream.peek()==Tokens.VIEWPORT_SYM)this._viewport();else if(!this._ruleset())break;tokenStream.mustMatch(Tokens.RBRACE),this._readWhitespace(),this.fire({type:"endmedia",media:mediaList,line:line,col:col})},_media_query_list:function(){var tokenStream=this._tokenStream,mediaList=[];for(this._readWhitespace(),(tokenStream.peek()==Tokens.IDENT||tokenStream.peek()==Tokens.LPAREN)&&mediaList.push(this._media_query());tokenStream.match(Tokens.COMMA);)this._readWhitespace(),mediaList.push(this._media_query());return mediaList},_media_query:function(){var tokenStream=this._tokenStream,type=null,ident=null,token=null,expressions=[];if(tokenStream.match(Tokens.IDENT)&&(ident=tokenStream.token().value.toLowerCase(),"only"!=ident&&"not"!=ident?(tokenStream.unget(),ident=null):token=tokenStream.token()),this._readWhitespace(),tokenStream.peek()==Tokens.IDENT?(type=this._media_type(),null===token&&(token=tokenStream.token())):tokenStream.peek()==Tokens.LPAREN&&(null===token&&(token=tokenStream.LT(1)),expressions.push(this._media_expression())),null===type&&0===expressions.length)return null;for(this._readWhitespace();tokenStream.match(Tokens.IDENT);)"and"!=tokenStream.token().value.toLowerCase()&&this._unexpectedToken(tokenStream.token()),this._readWhitespace(),expressions.push(this._media_expression());return new MediaQuery(ident,type,expressions,token.startLine,token.startCol)},_media_type:function(){return this._media_feature()},_media_expression:function(){var token,tokenStream=this._tokenStream,feature=null,expression=null;return tokenStream.mustMatch(Tokens.LPAREN),feature=this._media_feature(),this._readWhitespace(),tokenStream.match(Tokens.COLON)&&(this._readWhitespace(),token=tokenStream.LT(1),expression=this._expression()),tokenStream.mustMatch(Tokens.RPAREN),this._readWhitespace(),new MediaFeature(feature,expression?new SyntaxUnit(expression,token.startLine,token.startCol):null)},_media_feature:function(){var tokenStream=this._tokenStream;return tokenStream.mustMatch(Tokens.IDENT),SyntaxUnit.fromToken(tokenStream.token())},_page:function(){var line,col,tokenStream=this._tokenStream,identifier=null,pseudoPage=null;tokenStream.mustMatch(Tokens.PAGE_SYM),line=tokenStream.token().startLine,col=tokenStream.token().startCol,this._readWhitespace(),tokenStream.match(Tokens.IDENT)&&(identifier=tokenStream.token().value,"auto"===identifier.toLowerCase()&&this._unexpectedToken(tokenStream.token())),tokenStream.peek()==Tokens.COLON&&(pseudoPage=this._pseudo_page()),this._readWhitespace(),this.fire({type:"startpage",id:identifier,pseudo:pseudoPage,line:line,col:col}),this._readDeclarations(!0,!0),this.fire({type:"endpage",id:identifier,pseudo:pseudoPage,line:line,col:col})},_margin:function(){var line,col,tokenStream=this._tokenStream,marginSym=this._margin_sym();return marginSym?(line=tokenStream.token().startLine,col=tokenStream.token().startCol,this.fire({type:"startpagemargin",margin:marginSym,line:line,col:col}),this._readDeclarations(!0),this.fire({type:"endpagemargin",margin:marginSym,line:line,col:col}),!0):!1},_margin_sym:function(){var tokenStream=this._tokenStream;return tokenStream.match([Tokens.TOPLEFTCORNER_SYM,Tokens.TOPLEFT_SYM,Tokens.TOPCENTER_SYM,Tokens.TOPRIGHT_SYM,Tokens.TOPRIGHTCORNER_SYM,Tokens.BOTTOMLEFTCORNER_SYM,Tokens.BOTTOMLEFT_SYM,Tokens.BOTTOMCENTER_SYM,Tokens.BOTTOMR
8IGHT_SYM,Tokens.BOTTOMRIGHTCORNER_SYM,Tokens.LEFTTOP_SYM,Tokens.LEFTMIDDLE_SYM,Tokens.LEFTBOTTOM_SYM,Tokens.RIGHTTOP_SYM,Tokens.RIGHTMIDDLE_SYM,Tokens.RIGHTBOTTOM_SYM])?SyntaxUnit.fromToken(tokenStream.token()):null},_pseudo_page:function(){var tokenStream=this._tokenStream;return tokenStream.mustMatch(Tokens.COLON),tokenStream.mustMatch(Tokens.IDENT),tokenStream.token().value},_font_face:function(){var line,col,tokenStream=this._tokenStream;tokenStream.mustMatch(Tokens.FONT_FACE_SYM),line=tokenStream.token().startLine,col=tokenStream.token().startCol,this._readWhitespace(),this.fire({type:"startfontface",line:line,col:col}),this._readDeclarations(!0),this.fire({type:"endfontface",line:line,col:col})},_viewport:function(){var line,col,tokenStream=this._tokenStream;tokenStream.mustMatch(Tokens.VIEWPORT_SYM),line=tokenStream.token().startLine,col=tokenStream.token().startCol,this._readWhitespace(),this.fire({type:"startviewport",line:line,col:col}),this._readDeclarations(!0),this.fire({type:"endviewport",line:line,col:col})},_operator:function(inFunction){var tokenStream=this._tokenStream,token=null;return(tokenStream.match([Tokens.SLASH,Tokens.COMMA])||inFunction&&tokenStream.match([Tokens.PLUS,Tokens.STAR,Tokens.MINUS]))&&(token=tokenStream.token(),this._readWhitespace()),token?PropertyValuePart.fromToken(token):null},_combinator:function(){var token,tokenStream=this._tokenStream,value=null;return tokenStream.match([Tokens.PLUS,Tokens.GREATER,Tokens.TILDE])&&(token=tokenStream.token(),value=new Combinator(token.value,token.startLine,token.startCol),this._readWhitespace()),value},_unary_operator:function(){var tokenStream=this._tokenStream;return tokenStream.match([Tokens.MINUS,Tokens.PLUS])?tokenStream.token().value:null},_property:function(){var tokenValue,token,line,col,tokenStream=this._tokenStream,value=null,hack=null;return tokenStream.peek()==Tokens.STAR&&this.options.starHack&&(tokenStream.get(),token=tokenStream.token(),hack=token.value,line=token.startLine,col=token.startCol),tokenStream.match(Tokens.IDENT)&&(token=tokenStream.token(),tokenValue=token.value,"_"==tokenValue.charAt(0)&&this.options.underscoreHack&&(hack="_",tokenValue=tokenValue.substring(1)),value=new PropertyName(tokenValue,hack,line||token.startLine,col||token.startCol),this._readWhitespace()),value},_ruleset:function(){var tt,selectors,tokenStream=this._tokenStream;try{selectors=this._selectors_group()}catch(ex){if(!(ex instanceof SyntaxError)||this.options.strict)throw ex;if(this.fire({type:"error",error:ex,message:ex.message,line:ex.line,col:ex.col}),tt=tokenStream.advance([Tokens.RBRACE]),tt!=Tokens.RBRACE)throw ex;return!0}return selectors&&(this.fire({type:"startrule",selectors:selectors,line:selectors[0].line,col:selectors[0].col}),this._readDeclarations(!0),this.fire({type:"endrule",selectors:selectors,line:selectors[0].line,col:selectors[0].col})),selectors},_selectors_group:function(){var selector,tokenStream=this._tokenStream,selectors=[];if(selector=this._selector(),null!==selector)for(selectors.push(selector);tokenStream.match(Tokens.COMMA);)this._readWhitespace(),selector=this._selector(),null!==selector?selectors.push(selector):this._unexpectedToken(tokenStream.LT(1));return selectors.length?selectors:null},_selector:function(){var tokenStream=this._tokenStream,selector=[],nextSelector=null,combinator=null,ws=null;if(nextSelector=this._simple_selector_sequence(),null===nextSelector)return null;for(selector.push(nextSelector);;)if(combinator=this._combinator(),null!==combinator)selector.push(combinator),nextSelector=this._simple_selector_sequence(),null===nextSelector?this._unexpectedToken(tokenStream.LT(1)):selector.push(nextSelector);else{if(!this._readWhitespace())break;ws=new Combinator(tokenStream.token().value,tokenStream.token().startLine,tokenStream.token().startCol),combinator=this._combinator(),nextSelector=this._simple_selector_sequence(),null===nextSelector?null!==combinator&&this._unexpectedToken(tokenStream.LT(1)):(null!==combinator?selector.push(combinator):selector.push(ws),selector.push(nextSelector))}return new Selector(selector,selector[0].line,selector[0].col)},_simple_selector_sequence:function(){var line,col,tokenStream=this._tokenStream,elementName=null,modifiers=[],selectorText="",components=[function(){return tokenStream.match(Tokens.HASH)?new SelectorSubPart(tokenStream.token().value,"id",tokenStream.token().startLine,tokenStream.token().startCol):null},this._class,this._attrib,this._pseudo,this._negation],i=0,len=components.length,component=null;for(line=tokenStream.LT(1).startLine,col=tokenStream.LT(1).startCol,elementName=this._type_selector(),elementName||(elementName=this._universal()),null!==elementName&&(selectorText+=elementName);;){if(tokenStream.peek()===Tokens.S)break;for(;len>i&&null===component;)component=components[i++].call(this);if(null===component){if(""===selectorText)return null;break}i=0,modifiers.push(component),selectorText+=""+component,component=null}return""!==selectorText?new SelectorPart(elementName,modifiers,selectorText,line,col):null},_type_selector:function(){var tokenStream=this._tokenStream,ns=this._namespace_prefix(),elementName=this._element_name();return elementName?(ns&&(elementName.text=ns+elementName.text,elementName.col-=ns.length),elementName):(ns&&(tokenStream.unget(),ns.length>1&&tokenStream.unget()),null)},_class:function(){var token,tokenStream=this._tokenStream;return tokenStream.match(Tokens.DOT)?(tokenStream.mustMatch(Tokens.IDENT),token=tokenStream.token(),new SelectorSubPart("."+token.value,"class",token.startLine,token.startCol-1)):null},_element_name:function(){var token,tokenStream=this._tokenStream;return tokenStream.match(Tokens.IDENT)?(token=tokenStream.token(),new SelectorSubPart(token.value,"elementName",token.startLine,token.startCol)):null},_namespace_prefix:function(){var tokenStream=this._tokenStream,value="";return(tokenStream.LA(1)===Tokens.PIPE||tokenStream.LA(2)===Tokens.PIPE)&&(tokenStream.match([Tokens.IDENT,Tokens.STAR])&&(value+=tokenStream.token().value),tokenStream.mustMatch(Tokens.PIPE),value+="|"),value.length?value:null},_universal:function(){var ns,tokenStream=this._tokenStream,value="";return ns=this._namespace_prefix(),ns&&(value+=ns),tokenStream.match(Tokens.STAR)&&(value+="*"),value.length?value:null},_attrib:function(){var ns,token,tokenStream=this._tokenStream,value=null;return tokenStream.match(Tokens.LBRACKET)?(token=tokenStream.token(),value=token.value,value+=this._readWhitespace(),ns=this._namespace_prefix(),ns&&(value+=ns),tokenStream.mustMatch(Tokens.IDENT),value+=tokenStream.token().value,value+=this._readWhitespace(),tokenStream.match([Tokens.PREFIXMATCH,Tokens.SUFFIXMATCH,Tokens.SUBSTRINGMATCH,Tokens.EQUALS,Tokens.INCLUDES,Tokens.DASHMATCH])&&(value+=tokenStream.token().value,value+=this._readWhitespace(),tokenStream.mustMatch([Tokens.IDENT,Tokens.STRING]),value+=tokenStream.token().value,value+=this._readWhitespace()),tokenStream.mustMatch(Tokens.RBRACKET),new SelectorSubPart(value+"]","attribute",token.startLine,token.startCol)):null},_pseudo:function(){var line,col,tokenStream=this._tokenStream,pseudo=null,colons=":";return tokenStream.match(Tokens.COLON)&&(tokenStream.match(Tokens.COLON)&&(colons+=":"),tokenStream.match(Tokens.IDENT)?(pseudo=tokenStream.token().value,line=tokenStream.token().startLine,col=tokenStream.token().startCol-colons.length):tokenStream.peek()==Tokens.FUNCTION&&(line=tokenStream.LT(1).startLine,col=tokenStream.LT(1).startCol-colons.length,pseudo=this._functional_pseudo()),pseudo&&(pseudo=new SelectorSubPart(colons+pseudo,"pseudo",line,col))),pseudo},_functional_pseudo:function(){var tokenStream=this._tokenStream,value=null;return tokenStream.match(Tokens.FUNCTION)&&(value=tokenStream.token().value,value+=this._readWhitespace(),value+=this._expression(),tokenStream.mustMatch(Tokens.RPAREN),value+=")"),value},_expression:function(){for(var tokenStream=this._tokenStream,value="";tokenStream.match([Tokens.PLUS,Tokens.MINUS,Tokens.DIMENSION,Tokens.NUMBER,Tokens.STRING,Tokens.IDENT,Tokens.LENGTH,Tokens.FREQ,Tokens.ANGLE,Tokens.TIME,Tokens.RESOLUTION,Tokens.SLASH]);)value+=tokenStream.token().value,value+=this._readWhitespace();return value.length?value:null},_negation:function(){var line,col,arg,tokenStream=this._tokenStream,value="",subpart=null;return tokenStream.match(Tokens.NOT)&&(value=tokenStream.token().value,line=tokenStream.token().startLine,col=tokenStream.token().startCol,value+=this._readWhitespace(),arg=this._negation_arg(),value+=arg,value+=this._readWhitespace(),tokenStream.match(Tokens.RPAREN),value+=tokenStream.token().value,subpart=new SelectorSubPart(value,"not",line,col),subpart.args.push(arg)),subpart},_negation_arg:function(){var line,col,part,tokenStream=this._tokenStream,args=[this._type_selector,this._universal,function(){return tokenStream.match(Tokens.HASH)?new SelectorSubPart(tokenStream.token().value,"id",tokenStream.token().startLine,tokenStream.token().startCol):null},this._class,this._attrib,this._pseudo],arg=null,i=0,len=args.length;for(line=tokenStream.LT(1).startLine,col=tokenStream.LT(1).startCol;len>i&&null===arg;)arg=args[i].call(this),i++;
8return null===arg&&this._unexpectedToken(tokenStream.LT(1)),part="elementName"==arg.type?new SelectorPart(arg,[],""+arg,line,col):new SelectorPart(null,[arg],""+arg,line,col)},_declaration:function(){var tokenStream=this._tokenStream,property=null,expr=null,prio=null,invalid=null,propertyName="";if(property=this._property(),null!==property){tokenStream.mustMatch(Tokens.COLON),this._readWhitespace(),expr=this._expr(),expr&&0!==expr.length||this._unexpectedToken(tokenStream.LT(1)),prio=this._prio(),propertyName=""+property,(this.options.starHack&&"*"==property.hack||this.options.underscoreHack&&"_"==property.hack)&&(propertyName=property.text);try{this._validateProperty(propertyName,expr)}catch(ex){invalid=ex}return this.fire({type:"property",property:property,value:expr,important:prio,line:property.line,col:property.col,invalid:invalid}),!0}return!1},_prio:function(){var tokenStream=this._tokenStream,result=tokenStream.match(Tokens.IMPORTANT_SYM);return this._readWhitespace(),result},_expr:function(inFunction){var values=(this._tokenStream,[]),value=null,operator=null;if(value=this._term(inFunction),null!==value)for(values.push(value);;){if(operator=this._operator(inFunction),operator&&values.push(operator),value=this._term(inFunction),null===value)break;\nvalues.push(value)}return values.length>0?new PropertyValue(values,values[0].line,values[0].col):null},_term:function(inFunction){var token,line,col,tokenStream=this._tokenStream,unary=null,value=null,endChar=null;return unary=this._unary_operator(),null!==unary&&(line=tokenStream.token().startLine,col=tokenStream.token().startCol),tokenStream.peek()==Tokens.IE_FUNCTION&&this.options.ieFilters?(value=this._ie_function(),null===unary&&(line=tokenStream.token().startLine,col=tokenStream.token().startCol)):inFunction&&tokenStream.match([Tokens.LPAREN,Tokens.LBRACE,Tokens.LBRACKET])?(token=tokenStream.token(),endChar=token.endChar,value=token.value+this._expr(inFunction).text,null===unary&&(line=tokenStream.token().startLine,col=tokenStream.token().startCol),tokenStream.mustMatch(Tokens.type(endChar)),value+=endChar,this._readWhitespace()):tokenStream.match([Tokens.NUMBER,Tokens.PERCENTAGE,Tokens.LENGTH,Tokens.ANGLE,Tokens.TIME,Tokens.FREQ,Tokens.STRING,Tokens.IDENT,Tokens.URI,Tokens.UNICODE_RANGE])?(value=tokenStream.token().value,null===unary&&(line=tokenStream.token().startLine,col=tokenStream.token().startCol),this._readWhitespace()):(token=this._hexcolor(),null===token?(null===unary&&(line=tokenStream.LT(1).startLine,col=tokenStream.LT(1).startCol),null===value&&(value=tokenStream.LA(3)==Tokens.EQUALS&&this.options.ieFilters?this._ie_function():this._function())):(value=token.value,null===unary&&(line=token.startLine,col=token.startCol))),null!==value?new PropertyValuePart(null!==unary?unary+value:value,line,col):null},_function:function(){var lt,tokenStream=this._tokenStream,functionText=null,expr=null;if(tokenStream.match(Tokens.FUNCTION)){if(functionText=tokenStream.token().value,this._readWhitespace(),expr=this._expr(!0),functionText+=expr,this.options.ieFilters&&tokenStream.peek()==Tokens.EQUALS)do for(this._readWhitespace()&&(functionText+=tokenStream.token().value),tokenStream.LA(0)==Tokens.COMMA&&(functionText+=tokenStream.token().value),tokenStream.match(Tokens.IDENT),functionText+=tokenStream.token().value,tokenStream.match(Tokens.EQUALS),functionText+=tokenStream.token().value,lt=tokenStream.peek();lt!=Tokens.COMMA&<!=Tokens.S&<!=Tokens.RPAREN;)tokenStream.get(),functionText+=tokenStream.token().value,lt=tokenStream.peek();while(tokenStream.match([Tokens.COMMA,Tokens.S]));tokenStream.match(Tokens.RPAREN),functionText+=")",this._readWhitespace()}return functionText},_ie_function:function(){var lt,tokenStream=this._tokenStream,functionText=null;if(tokenStream.match([Tokens.IE_FUNCTION,Tokens.FUNCTION])){functionText=tokenStream.token().value;do for(this._readWhitespace()&&(functionText+=tokenStream.token().value),tokenStream.LA(0)==Tokens.COMMA&&(functionText+=tokenStream.token().value),tokenStream.match(Tokens.IDENT),functionText+=tokenStream.token().value,tokenStream.match(Tokens.EQUALS),functionText+=tokenStream.token().value,lt=tokenStream.peek();lt!=Tokens.COMMA&<!=Tokens.S&<!=Tokens.RPAREN;)tokenStream.get(),functionText+=tokenStream.token().value,lt=tokenStream.peek();while(tokenStream.match([Tokens.COMMA,Tokens.S]));tokenStream.match(Tokens.RPAREN),functionText+=")",this._readWhitespace()}return functionText},_hexcolor:function(){var color,tokenStream=this._tokenStream,token=null;if(tokenStream.match(Tokens.HASH)){if(token=tokenStream.token(),color=token.value,!/#[a-f0-9]{3,6}/i.test(color))throw new SyntaxError("Expected a hex color but found \'"+color+"\' at line "+token.startLine+", col "+token.startCol+".",token.startLine,token.startCol);this._readWhitespace()}return token},_keyframes:function(){var token,tt,name,tokenStream=this._tokenStream,prefix="";for(tokenStream.mustMatch(Tokens.KEYFRAMES_SYM),token=tokenStream.token(),/^@\\-([^\\-]+)\\-/.test(token.value)&&(prefix=RegExp.$1),this._readWhitespace(),name=this._keyframe_name(),this._readWhitespace(),tokenStream.mustMatch(Tokens.LBRACE),this.fire({type:"startkeyframes",name:name,prefix:prefix,line:token.startLine,col:token.startCol}),this._readWhitespace(),tt=tokenStream.peek();tt==Tokens.IDENT||tt==Tokens.PERCENTAGE;)this._keyframe_rule(),this._readWhitespace(),tt=tokenStream.peek();this.fire({type:"endkeyframes",name:name,prefix:prefix,line:token.startLine,col:token.startCol}),this._readWhitespace(),tokenStream.mustMatch(Tokens.RBRACE)},_keyframe_name:function(){var tokenStream=this._tokenStream;return tokenStream.mustMatch([Tokens.IDENT,Tokens.STRING]),SyntaxUnit.fromToken(tokenStream.token())},_keyframe_rule:function(){var keyList=(this._tokenStream,this._key_list());this.fire({type:"startkeyframerule",keys:keyList,line:keyList[0].line,col:keyList[0].col}),this._readDeclarations(!0),this.fire({type:"endkeyframerule",keys:keyList,line:keyList[0].line,col:keyList[0].col})},_key_list:function(){var tokenStream=this._tokenStream,keyList=[];for(keyList.push(this._key()),this._readWhitespace();tokenStream.match(Tokens.COMMA);)this._readWhitespace(),keyList.push(this._key()),this._readWhitespace();return keyList},_key:function(){var token,tokenStream=this._tokenStream;if(tokenStream.match(Tokens.PERCENTAGE))return SyntaxUnit.fromToken(tokenStream.token());if(tokenStream.match(Tokens.IDENT)){if(token=tokenStream.token(),/from|to/i.test(token.value))return SyntaxUnit.fromToken(token);tokenStream.unget()}
8this._unexpectedToken(tokenStream.LT(1))},_skipCruft:function(){for(;this._tokenStream.match([Tokens.S,Tokens.CDO,Tokens.CDC]););},_readDeclarations:function(checkStart,readMargins){var tt,tokenStream=this._tokenStream;this._readWhitespace(),checkStart&&tokenStream.mustMatch(Tokens.LBRACE),this._readWhitespace();try{for(;;){if(tokenStream.match(Tokens.SEMICOLON)||readMargins&&this._margin());else{if(!this._declaration())break;if(!tokenStream.match(Tokens.SEMICOLON))break}this._readWhitespace()}tokenStream.mustMatch(Tokens.RBRACE),this._readWhitespace()}catch(ex){if(!(ex instanceof SyntaxError)||this.options.strict)throw ex;if(this.fire({type:"error",error:ex,message:ex.message,line:ex.line,col:ex.col}),tt=tokenStream.advance([Tokens.SEMICOLON,Tokens.RBRACE]),tt==Tokens.SEMICOLON)this._readDeclarations(!1,readMargins);else if(tt!=Tokens.RBRACE)throw ex}},_readWhitespace:function(){for(var tokenStream=this._tokenStream,ws="";tokenStream.match(Tokens.S);)ws+=tokenStream.token().value;return ws},_unexpectedToken:function(token){throw new SyntaxError("Unexpected token \'"+token.value+"\' at line "+token.startLine+", col "+token.startCol+".",token.startLine,token.startCol)},_verifyEnd:function(){this._tokenStream.LA(1)!=Tokens.EOF&&this._unexpectedToken(this._tokenStream.LT(1))},_validateProperty:function(property,value){Validation.validate(property,value)},parse:function(input){this._tokenStream=new TokenStream(input,Tokens),this._stylesheet()},parseStyleSheet:function(input){return this.parse(input)},parseMediaQuery:function(input){this._tokenStream=new TokenStream(input,Tokens);var result=this._media_query();return this._verifyEnd(),result},parsePropertyValue:function(input){this._tokenStream=new TokenStream(input,Tokens),this._readWhitespace();var result=this._expr();return this._readWhitespace(),this._verifyEnd(),result},parseRule:function(input){this._tokenStream=new TokenStream(input,Tokens),this._readWhitespace();var result=this._ruleset();return this._readWhitespace(),this._verifyEnd(),result},parseSelector:function(input){this._tokenStream=new TokenStream(input,Tokens),this._readWhitespace();var result=this._selector();return this._readWhitespace(),this._verifyEnd(),result},parseStyleAttribute:function(input){input+="}",this._tokenStream=new TokenStream(input,Tokens),this._readDeclarations()}};for(prop in additions)additions.hasOwnProperty(prop)&&(proto[prop]=additions[prop]);return proto}();var Properties={"align-items":"flex-start | flex-end | center | baseline | stretch","align-content":"flex-start | flex-end | center | space-between | space-around | stretch","align-self":"auto | flex-start | flex-end | center | baseline | stretch","-webkit-align-items":"flex-start | flex-end | center | baseline | stretch","-webkit-align-content":"flex-start | flex-end | center | space-between | space-around | stretch","-webkit-align-self":"auto | flex-start | flex-end | center | baseline | stretch","alignment-adjust":"auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical | <percentage> | <length>","alignment-baseline":"baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical",animation:1,"animation-delay":{multi:"<time>",comma:!0},"animation-direction":{multi:"normal | reverse | alternate | alternate-reverse",comma:!0},"animation-duration":{multi:"<time>",comma:!0},"animation-fill-mode":{multi:"none | forwards | backwards | both",comma:!0},"animation-iteration-count":{multi:"<number> | infinite",comma:!0},"animation-name":{multi:"none | <ident>",comma:!0},"animation-play-state":{multi:"running | paused",comma:!0},"animation-timing-function":1,"-moz-animation-delay":{multi:"<time>",comma:!0},"-moz-animation-direction":{multi:"normal | reverse | alternate | alternate-reverse",comma:!0},"-moz-animation-duration":{multi:"<time>",comma:!0},"-moz-animation-iteration-count":{multi:"<number> | infinite",comma:!0},"-moz-animation-name":{multi:"none | <ident>",comma:!0},"-moz-animation-play-state":{multi:"running | paused",comma:!0},"-ms-animation-delay":{multi:"<time>",comma:!0},"-ms-animation-direction":{multi:"normal | reverse | alternate | alternate-reverse",comma:!0},"-ms-animation-duration":{multi:"<time>",comma:!0},"-ms-animation-iteration-count":{multi:"<number> | infinite",comma:!0},"-ms-animation-name":{multi:"none | <ident>",comma:!0},"-ms-animation-play-state":{multi:"running | paused",comma:!0},"-webkit-animation-delay":{multi:"<time>",comma:!0},"-webkit-animation-direction":{multi:"normal | reverse | alternate | alternate-reverse",comma:!0},"-webkit-animation-duration":{multi:"<time>",comma:!0},"-webkit-animation-fill-mode":{multi:"none | forwards | backwards | both",comma:!0},"-webkit-animation-iteration-count":{multi:"<number> | infinite",comma:!0},"-webkit-animation-name":{multi:"none | <ident>",comma:!0},"-webkit-animation-play-state":{multi:"running | paused",comma:!0},"-o-animation-delay":{multi:"<time>",comma:!0},"-o-animation-direction":{multi:"normal | reverse | alternate | alternate-reverse",comma:!0},"-o-animation-duration":{multi:"<time>",comma:!0},"-o-animation-iteration-count":{multi:"<number> | infinite",comma:!0},"-o-animation-name":{multi:"none | <ident>",comma:!0},"-o-animation-play-state":{multi:"running | paused",comma:!0},appearance:"icon | window | desktop | workspace | document | tooltip | dialog | button | push-button | hyperlink | radio-button | checkbox | menu-item | tab | menu | menubar | pull-down-menu | pop-up-menu | list-menu | radio-group | checkbox-group | outline-tree | range | field | combo-box | signature | password | normal | none | inherit",azimuth:function(expression){var part,simple="<angle> | leftwards | rightwards | inherit",direction="left-side | far-left | left | center-left | center | center-right | right | far-right | right-side",behind=!1,valid=!1;if(ValidationTypes.isAny(expression,simple)||(ValidationTypes.isAny(expression,"behind")&&(behind=!0,valid=!0),ValidationTypes.isAny(expression,direction)&&(valid=!0,behind||ValidationTypes.isAny(expression,"behind"))),expression.hasNext())throw part=expression.next(),val
8id?new ValidationError("Expected end of value but found \'"+part+"\'.",part.line,part.col):new ValidationError("Expected (<\'azimuth\'>) but found \'"+part+"\'.",part.line,part.col)},"backface-visibility":"visible | hidden",background:1,"background-attachment":{multi:"<attachment>",comma:!0},"background-clip":{multi:"<box>",comma:!0},"background-color":"<color> | inherit","background-image":{multi:"<bg-image>",comma:!0},"background-origin":{multi:"<box>",comma:!0},"background-position":{multi:"<bg-position>",comma:!0},"background-repeat":{multi:"<repeat-style>"},"background-size":{multi:"<bg-size>",comma:!0},"baseline-shift":"baseline | sub | super | <percentage> | <length>",behavior:1,binding:1,bleed:"<length>","bookmark-label":"<content> | <attr> | <string>","bookmark-level":"none | <integer>","bookmark-state":"open | closed","bookmark-target":"none | <uri> | <attr>",border:"<border-width> || <border-style> || <color>","border-bottom":"<border-width> || <border-style> || <color>","border-bottom-color":"<color> | inherit","border-bottom-left-radius":"<x-one-radius>","border-bottom-right-radius":"<x-one-radius>","border-bottom-style":"<border-style>","border-bottom-width":"<border-width>","border-collapse":"collapse | separate | inherit","border-color":{multi:"<color> | inherit",max:4},"border-image":1,"border-image-outset":{multi:"<length> | <number>",max:4},"border-image-repeat":{multi:"stretch | repeat | round",max:2},"border-image-slice":function(expression){var part,valid=!1,numeric="<number> | <percentage>",fill=!1,count=0,max=4;for(ValidationTypes.isAny(expression,"fill")&&(fill=!0,valid=!0);expression.hasNext()&&max>count&&(valid=ValidationTypes.isAny(expression,numeric));)count++;if(fill?valid=!0:ValidationTypes.isAny(expression,"fill"),expression.hasNext())throw part=expression.next(),valid?new ValidationError("Expected end of value but found \'"+part+"\'.",part.line,part.col):new ValidationError("Expected ([<number> | <percentage>]{1,4} && fill?) but found \'"+part+"\'.",part.line,part.col)},"border-image-source":"<image> | none","border-image-width":{multi:"<length> | <percentage> | <number> | auto",max:4},"border-left":"<border-width> || <border-style> || <color>","border-left-color":"<color> | inherit","border-left-style":"<border-style>","border-left-width":"<border-width>","border-radius":function(expression){for(var part,valid=!1,simple="<length> | <percentage> | inherit",slash=!1,count=0,max=8;expression.hasNext()&&max>count;){if(valid=ValidationTypes.isAny(expression,simple),!valid){if(!("/"==expression.peek()&&count>0)||slash)break;slash=!0,max=count+5,expression.next()}count++}if(expression.hasNext())throw part=expression.next(),valid?new ValidationError("Expected end of value but found \'"+part+"\'.",part.line,part.col):new ValidationError("Expected (<\'border-radius\'>) but found \'"+part+"\'.",part.line,part.col)},"border-right":"<border-width> || <border-style> || <color>","border-right-color":"<color> | inherit","border-right-style":"<border-style>","border-right-width":"<border-width>","border-spacing":{multi:"<length> | inherit",max:2},"border-style":{multi:"<border-style>",max:4},"border-top":"<border-width> || <border-style> || <color>","border-top-color":"<color> | inherit","border-top-left-radius":"<x-one-radius>","border-top-right-radius":"<x-one-radius>","border-top-style":"<border-style>","border-top-width":"<border-width>","border-width":{multi:"<border-width>",max:4},bottom:"<margin-width> | inherit","-moz-box-align":"start | end | center | baseline | stretch","-moz-box-decoration-break":"slice |clone","-moz-box-direction":"normal | reverse | inherit","-moz-box-flex":"<number>","-moz-box-flex-group":"<integer>","-moz-box-lines":"single | multiple","-moz-box-ordinal-group":"<integer>","-moz-box-orient":"horizontal | vertical | inline-axis | block-axis | inherit","-moz-box-pack":"start | end | center | justify","-webkit-box-align":"start | end | center | baseline | stretch","-webkit-box-decoration-break":"slice |clone","-webkit-box-direction":"normal | reverse | inherit","-webkit-box-flex":"<number>","-webkit-box-flex-group":"<integer>","-webkit-box-lines":"single | multiple","-webkit-box-ordinal-group":"<integer>","-webkit-box-orient":"horizontal | vertical | inline-axis | block-axis | inherit","-webkit-box-pack":"start | end | center | justify","box-shadow":function(expression){var part;if(ValidationTypes.isAny(expression,"none")){if(expression.hasNext())throw part=expression.next(),new ValidationError("Expected end of value but found \'"+part+"\'.",part.line,part.col)}else Validation.multiProperty("<shadow>",expression,!0,1/0)},"box-sizing":"content-box | border-box | inherit","break-after":"auto | always | avoid | left | right | page | column | avoid-p
8age | avoid-column","break-before":"auto | always | avoid | left | right | page | column | avoid-page | avoid-column","break-inside":"auto | avoid | avoid-page | avoid-column","caption-side":"top | bottom | inherit",clear:"none | right | left | both | inherit",clip:1,color:"<color> | inherit","color-profile":1,"column-count":"<integer> | auto","column-fill":"auto | balance","column-gap":"<length> | normal","column-rule":"<border-width> || <border-style> || <color>","column-rule-color":"<color>","column-rule-style":"<border-style>","column-rule-width":"<border-width>","column-span":"none | all","column-width":"<length> | auto",columns:1,content:1,"counter-increment":1,"counter-reset":1,crop:"<shape> | auto",cue:"cue-after | cue-before | inherit","cue-after":1,"cue-before":1,cursor:1,direction:"ltr | rtl | inherit",display:"inline | block | list-item | inline-block | table | inline-table | table-row-group | table-header-group | table-footer-group | table-row | table-column-group | table-column | table-cell | table-caption | grid | inline-grid | none | inherit | -moz-box | -moz-inline-block | -moz-inline-box | -moz-inline-grid | -moz-inline-stack | -moz-inline-table | -moz-grid | -moz-grid-group | -moz-grid-line | -moz-groupbox | -moz-deck | -moz-popup | -moz-stack | -moz-marker | -webkit-box | -webkit-inline-box | -ms-flexbox | -ms-inline-flexbox | flex | -webkit-flex | inline-flex | -webkit-inline-flex","dominant-baseline":1,"drop-initial-after-adjust":"central | middle | after-edge | text-after-edge | ideographic | alphabetic | mathematical | <percentage> | <length>","drop-initial-after-align":"baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical","drop-initial-before-adjust":"before-edge | text-before-edge | central | middle | hanging | mathematical | <percentage> | <length>","drop-initial-before-align":"caps-height | baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical","drop-initial-size":"auto | line | <length> | <percentage>","drop-initial-value":"initial | <integer>",elevation:"<angle> | below | level | above | higher | lower | inherit","empty-cells":"show | hide | inherit",filter:1,fit:"fill | hidden | meet | slice","fit-position":1,flex:"<flex>","flex-basis":"<width>","flex-direction":"row | row-reverse | column | column-reverse","flex-flow":"<flex-direction> || <flex-wrap>","flex-grow":"<number>","flex-shrink":"<number>","flex-wrap":"nowrap | wrap | wrap-reverse","-webkit-flex":"<flex>","-webkit-flex-basis":"<width>","-webkit-flex-direction":"row | row-reverse | column | column-reverse","-webkit-flex-flow":"<flex-direction> || <flex-wrap>","-webkit-flex-grow":"<number>","-webkit-flex-shrink":"<number>","-webkit-flex-wrap":"nowrap | wrap | wrap-reverse","-ms-flex":"<flex>","-ms-flex-align":"start | end | center | stretch | baseline","-ms-flex-direction":"row | row-reverse | column | column-reverse | inherit","-ms-flex-order":"<number>","-ms-flex-pack":"start | end | center | justify","-ms-flex-wrap":"nowrap | wrap | wrap-reverse","float":"left | right | none | inherit","float-offset":1,font:1,"font-family":1,"font-size":"<absolute-size> | <relative-size> | <length> | <percentage> | inherit","font-size-adjust":"<number> | none | inherit","font-stretch":"normal | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded | inherit","font-style":"normal | italic | oblique | inherit","font-variant":"normal | small-caps | inherit","font-weight":"normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit","grid-cell-stacking":"columns | rows | layer","grid-column":1,"grid-columns":1,"grid-column-align":"start | end | center | stretch","grid-column-sizing":1,"grid-column-span":"<integer>","grid-flow":"none | rows | columns","grid-layer":"<integer>","grid-row":1,"grid-rows":1,"grid-row-align":"start | end | center | stretch","grid-row-span":"<integer>","grid-row-sizing":1,"hanging-punctuation":1,height:"<margin-width> | <content-sizing> | inherit","hyphenate-after":"<integer> | auto","hyphenate-before":"<integer> | auto","hyphenate-character":"<string> | auto","hyphenate-lines":"no-limit | <integer>","hyphenate-resource":1,hyphens:"none | manual | auto",icon:1,"image-orientation":"angle | auto","image-rendering":1,"image-resolution":1,"inline-box-align":"initial | last | <integer>","justify-content":"flex-start | flex-end | center | space-between | space-around","-webkit-ju
8stify-content":"flex-start | flex-end | center | space-between | space-around",left:"<margin-width> | inherit","letter-spacing":"<length> | normal | inherit","line-height":"<number> | <length> | <percentage> | normal | inherit","line-break":"auto | loose | normal | strict","line-stacking":1,"line-stacking-ruby":"exclude-ruby | include-ruby","line-stacking-shift":"consider-shifts | disregard-shifts","line-stacking-strategy":"inline-line-height | block-line-height | max-height | grid-height","list-style":1,"list-style-image":"<uri> | none | inherit","list-style-position":"inside | outside | inherit","list-style-type":"disc | circle | square | decimal | decimal-leading-zero | lower-roman | upper-roman | lower-greek | lower-latin | upper-latin | armenian | georgian | lower-alpha | upper-alpha | none | inherit",margin:{multi:"<margin-width> | inherit",max:4},"margin-bottom":"<margin-width> | inherit","margin-left":"<margin-width> | inherit","margin-right":"<margin-width> | inherit","margin-top":"<margin-width> | inherit",mark:1,"mark-after":1,"mark-before":1,marks:1,"marquee-direction":1,"marquee-play-count":1,"marquee-speed":1,"marquee-style":1,"max-height":"<length> | <percentage> | <content-sizing> | none | inherit","max-width":"<length> | <percentage> | <content-sizing> | none | inherit","min-height":"<length> | <percentage> | <content-sizing> | contain-floats | -moz-contain-floats | -webkit-contain-floats | inherit","min-width":"<length> | <percentage> | <content-sizing> | contain-floats | -moz-contain-floats | -webkit-contain-floats | inherit","move-to":1,"nav-down":1,"nav-index":1,"nav-left":1,"nav-right":1,"nav-up":1,opacity:"<number> | inherit",order:"<integer>","-webkit-order":"<integer>",orphans:"<integer> | inherit",outline:1,"outline-color":"<color> | invert | inherit","outline-offset":1,"outline-style":"<border-style> | inherit","outline-width":"<border-width> | inherit",overflow:"visible | hidden | scroll | auto | inherit","overflow-style":1,"overflow-wrap":"normal | break-word","overflow-x":1,"overflow-y":1,padding:{multi:"<padding-width> | inherit",max:4},"padding-bottom":"<padding-width> | inherit","padding-left":"<padding-width> | inherit","padding-right":"<padding-width> | inherit","padding-top":"<padding-width> | inherit",page:1,"page-break-after":"auto | always | avoid | left | right | inherit","page-break-before":"auto | always | avoid | left | right | inherit","page-break-inside":"auto | avoid | inherit","page-policy":1,pause:1,"pause-after":1,"pause-before":1,perspective:1,"perspective-origin":1,phonemes:1,pitch:1,"pitch-range":1,"play-during":1,"pointer-events":"auto | none | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | inherit",position:"static | relative | absolute | fixed | inherit","presentation-level":1,"punctuation-trim":1,quotes:1,"rendering-intent":1,resize:1,rest:1,"rest-after":1,"rest-before":1,richness:1,right:"<margin-width> | inherit",rotation:1,"rotation-point":1,"ruby-align":1,"ruby-overhang":1,"ruby-position":1,"ruby-span":1,size:1,speak:"normal | none | spell-out | inherit","speak-header":"once | always | inherit","speak-numeral":"digits | continuous | inherit","speak-punctuation":"code | none | inherit","speech-rate":1,src:1,stress:1,"string-set":1,"table-layout":"auto | fixed | inherit","tab-size":"<integer> | <length>",target:1,"target-name":1,"target-new":1,"target-position":1,"text-align":"left | right | center | justify | inherit","text-align-last":1,"text-decoration":1,"text-emphasis":1,"text-height":1,"text-indent":"<length> | <percentage> | inherit","text-justify":"auto | none | inter-word | inter-ideograph | inter-cluster | distribute | kashida","text-outline":1,"text-overflow":1,"text-rendering":"auto | optimizeSpeed | optimizeLegibility | geometricPrecision | inherit","text-shadow":1,"text-transform":"capitalize | uppercase | lowercase | none | inherit","text-wrap":"normal | none | avoid",top:"<margin-width> | inherit","-ms-touch-action":"auto | none | pan-x | pan-y","touch-action":"auto | none | pan-x | pan-y",transform:1,"transform-origin":1,"transform-style":1,transition:1,"transition-delay":1,"transition-duration":1,"transition-property":1,"transition-timing-function":1,"unicode
8-bidi":"normal | embed | isolate | bidi-override | isolate-override | plaintext | inherit","user-modify":"read-only | read-write | write-only | inherit","user-select":"none | text | toggle | element | elements | all | inherit","vertical-align":"auto | use-script | baseline | sub | super | top | text-top | central | middle | bottom | text-bottom | <percentage> | <length>",visibility:"visible | hidden | collapse | inherit","voice-balance":1,"voice-duration":1,"voice-family":1,"voice-pitch":1,"voice-pitch-range":1,"voice-rate":1,"voice-stress":1,"voice-volume":1,volume:1,"white-space":"normal | pre | nowrap | pre-wrap | pre-line | inherit | -pre-wrap | -o-pre-wrap | -moz-pre-wrap | -hp-pre-wrap","white-space-collapse":1,widows:"<integer> | inherit",width:"<length> | <percentage> | <content-sizing> | auto | inherit","word-break":"normal | keep-all | break-all","word-spacing":"<length> | normal | inherit","word-wrap":"normal | break-word","writing-mode":"horizontal-tb | vertical-rl | vertical-lr | lr-tb | rl-tb | tb-rl | bt-rl | tb-lr | bt-lr | lr-bt | rl-bt | lr | rl | tb | inherit","z-index":"<integer> | auto | inherit",zoom:"<number> | <percentage> | normal"};PropertyName.prototype=new SyntaxUnit,PropertyName.prototype.constructor=PropertyName,PropertyName.prototype.toString=function(){return(this.hack?this.hack:"")+this.text},PropertyValue.prototype=new SyntaxUnit,PropertyValue.prototype.constructor=PropertyValue,PropertyValueIterator.prototype.count=function(){return this._parts.length},PropertyValueIterator.prototype.isFirst=function(){return 0===this._i},PropertyValueIterator.prototype.hasNext=function(){return this._i<this._parts.length},PropertyValueIterator.prototype.mark=function(){this._marks.push(this._i)},PropertyValueIterator.prototype.peek=function(count){return this.hasNext()?this._parts[this._i+(count||0)]:null},PropertyValueIterator.prototype.next=function(){return this.hasNext()?this._parts[this._i++]:null},PropertyValueIterator.prototype.previous=function(){return this._i>0?this._parts[--this._i]:null},PropertyValueIterator.prototype.restore=function(){this._marks.length&&(this._i=this._marks.pop())},PropertyValuePart.prototype=new SyntaxUnit,PropertyValuePart.prototype.constructor=PropertyValuePart,PropertyValuePart.fromToken=function(token){return new PropertyValuePart(token.value,token.startLine,token.startCol)};var Pseudos={":first-letter":1,":first-line":1,":before":1,":after":1};Pseudos.ELEMENT=1,Pseudos.CLASS=2,Pseudos.isElement=function(pseudo){return 0===pseudo.indexOf("::")||Pseudos[pseudo.toLowerCase()]==Pseudos.ELEMENT},Selector.prototype=new SyntaxUnit,Selector.prototype.constructor=Selector,SelectorPart.prototype=new SyntaxUnit,SelectorPart.prototype.constructor=SelectorPart,SelectorSubPart.prototype=new SyntaxUnit,SelectorSubPart.prototype.constructor=SelectorSubPart,Specificity.prototype={constructor:Specificity,compare:function(other){var i,len,comps=["a","b","c","d"];for(i=0,len=comps.length;len>i;i++){if(this[comps[i]]<other[comps[i]])return-1;if(this[comps[i]]>other[comps[i]])return 1}return 0},valueOf:function(){return 1e3*this.a+100*this.b+10*this.c+this.d},toString:function(){return this.a+","+this.b+","+this.c+","+this.d}},Specificity.calculate=function(selector){function updateValues(part){var i,j,len,num,modifier,elementName=part.elementName?part.elementName.text:"";for(elementName&&"*"!=elementName.charAt(elementName.length-1)&&d++,i=0,len=part.modifiers.length;len>i;i++)switch(modifier=part.modifiers[i],modifier.type){case"class":case"attribute":c++;break;case"id":b++;break;case"pseudo":Pseudos.isElement(modifier.text)?d++:c++;break;case"not":for(j=0,num=modifier.args.length;num>j;j++)updateValues(modifier.args[j])}}var i,len,part,b=0,c=0,d=0;for(i=0,len=selector.parts.length;len>i;i++)part=selector.parts[i],part instanceof SelectorPart&&updateValues(part);return new Specificity(0,b,c,d)};var h=/^[0-9a-fA-F]$/,nonascii=/^[\\u0080-\\uFFFF]$/,nl=/\\n|\\r\\n|\\r|\\f/;TokenStream.prototype=mix(new TokenStreamBase,{_getToken:function(){var c,reader=this._reader,token=null,startLine=reader.getLine(),startCol=reader.getCol();for(c=reader.read();c;){switch(c){case"/":token="*"==reader.peek()?this.commentToken(c,startLine,startCol):this.charToken(c,startLine,startCol);break;case"|":case"~":case"^":case"$":case"*":token="="==reader.peek()?this.comparisonToken(c,startLine,startCol):this.charToken(c,startLine,startCol);break;
8case\'"\':case"\'":token=this.stringToken(c,startLine,startCol);break;case"#":token=isNameChar(reader.peek())?this.hashToken(c,startLine,startCol):this.charToken(c,startLine,startCol);break;case".":token=isDigit(reader.peek())?this.numberToken(c,startLine,startCol):this.charToken(c,startLine,startCol);break;case"-":token="-"==reader.peek()?this.htmlCommentEndToken(c,startLine,startCol):isNameStart(reader.peek())?this.identOrFunctionToken(c,startLine,startCol):this.charToken(c,startLine,startCol);break;case"!":token=this.importantToken(c,startLine,startCol);break;case"@":token=this.atRuleToken(c,startLine,startCol);break;case":":token=this.notToken(c,startLine,startCol);break;case"<":token=this.htmlCommentStartToken(c,startLine,startCol);break;case"U":case"u":if("+"==reader.peek()){token=this.unicodeRangeToken(c,startLine,startCol);break}default:token=isDigit(c)?this.numberToken(c,startLine,startCol):isWhitespace(c)?this.whitespaceToken(c,startLine,startCol):isIdentStart(c)?this.identOrFunctionToken(c,startLine,startCol):this.charToken(c,startLine,startCol)}break}return token||null!==c||(token=this.createToken(Tokens.EOF,null,startLine,startCol)),token},createToken:function(tt,value,startLine,startCol,options){var reader=this._reader;return options=options||{},{value:value,type:tt,channel:options.channel,endChar:options.endChar,hide:options.hide||!1,startLine:startLine,startCol:startCol,endLine:reader.getLine(),endCol:reader.getCol()}},atRuleToken:function(first,startLine,startCol){var ident,rule=first,reader=this._reader,tt=Tokens.CHAR;return reader.mark(),ident=this.readName(),rule=first+ident,tt=Tokens.type(rule.toLowerCase()),(tt==Tokens.CHAR||tt==Tokens.UNKNOWN)&&(rule.length>1?tt=Tokens.UNKNOWN_SYM:(tt=Tokens.CHAR,rule=first,reader.reset())),this.createToken(tt,rule,startLine,startCol)},charToken:function(c,startLine,startCol){var tt=Tokens.type(c),opts={};return-1==tt?tt=Tokens.CHAR:opts.endChar=Tokens[tt].endChar,this.createToken(tt,c,startLine,startCol,opts)},commentToken:function(first,startLine,startCol){var comment=(this._reader,this.readComment(first));return this.createToken(Tokens.COMMENT,comment,startLine,startCol)},comparisonToken:function(c,startLine,startCol){var reader=this._reader,comparison=c+reader.read(),tt=Tokens.type(comparison)||Tokens.CHAR;return this.createToken(tt,comparison,startLine,startCol)\n},hashToken:function(first,startLine,startCol){var name=(this._reader,this.readName(first));return this.createToken(Tokens.HASH,name,startLine,startCol)},htmlCommentStartToken:function(first,startLine,startCol){var reader=this._reader,text=first;return reader.mark(),text+=reader.readCount(3),"\x3c!--"==text?this.createToken(Tokens.CDO,text,startLine,startCol):(reader.reset(),this.charToken(first,startLine,startCol))},htmlCommentEndToken:function(first,startLine,startCol){var reader=this._reader,text=first;return reader.mark(),text+=reader.readCount(2),"--\x3e"==text?this.createToken(Tokens.CDC,text,startLine,startCol):(reader.reset(),this.charToken(first,startLine,startCol))},identOrFunctionToken:function(first,startLine,startCol){var reader=this._reader,ident=this.readName(first),tt=Tokens.IDENT;return"("==reader.peek()?(ident+=reader.read(),"url("==ident.toLowerCase()?(tt=Tokens.URI,ident=this.readURI(ident),"url("==ident.toLowerCase()&&(tt=Tokens.FUNCTION)):tt=Tokens.FUNCTION):":"==reader.peek()&&"progid"==ident.toLowerCase()&&(ident+=reader.readTo("("),tt=Tokens.IE_FUNCTION),this.createToken(tt,ident,startLine,startCol)},importantToken:function(first,startLine,startCol){var temp,c,reader=this._reader,important=first,tt=Tokens.CHAR;for(reader.mark(),c=reader.read();c;){if("/"==c){if("*"!=reader.peek())break;if(temp=this.readComment(c),""===temp)break}else{if(!isWhitespace(c)){if(/i/i.test(c)){temp=reader.readCount(8),/mportant/i.test(temp)&&(important+=c+temp,tt=Tokens.IMPORTANT_SYM);break}break}important+=c+this.readWhitespace()}c=reader.read()}return tt==Tokens.CHAR?(reader.reset(),this.charToken(first,startLine,startCol)):this.createToken(tt,important,startLine,startCol)},notToken:function(first,startLine,startCol){var reader=this._reader,text=first;return reader.mark(),text+=reader.readCount(4),":not("==text.toLowerCase()?this.createToken(Tokens.NOT,text,startLine,startCol):(reader.reset(),this.charToken(first,startLine,startCol))},numberToken:function(first,startLine,startCol){var ident,reader=this._reader,value=this.readNumber(first),tt=Tokens.NUMBER,c=reader.peek();return isIdentStart(c)?(ident=this.readName(reader.read()),value+=ident,tt=/^em$|^ex$|^px$|^gd$|^rem$|^vw$|^vh$|^vmax$|^vmin$|^ch$|^cm$|^mm$|^in$|^pt$|^pc$/i.test(ident)?Tokens.LENGTH:/^deg|^rad$|^grad$/i.test(ident)?Tokens.ANGLE:/^ms$|^s$/i.test(ident)?Tokens.TIME:/^hz$|^khz$/i.test(ident)?Tokens.FREQ:/^dpi$|^dpcm$/i.test(ident)?Tokens.RESOLUTION:Tokens.DIMENSION):"%"==c&&(value+=reader.read(),tt=Tokens.PERCENTAGE),this.createToken(tt,value,startLine,startCol)},stringToken:function(first,startLine,startCol){for(var delim=first,string=first,reader=this._reader,prev=first,tt=Tokens.STRING,c=reader.read();c&&(string+=c,c!=delim||"\\\\"==prev);){if(isNewLine(reader.peek())&&"\\\\"!=c){tt=Tokens.INVALID;break}prev=c,c=reader.read()}return null===c&&(tt=Tokens.INVALID),this.createToken(tt,string,startLine,startCol)},unicodeRangeToken:function(first,startLine,startCol){var temp,reader=this._reader,value=first,tt=Tokens.CHAR;return"+"==reader.peek()&&(reader.mark(),value+=reader.read(),value+=this.readUnicodeRangePart(!0),2==value.length?reader.reset():(tt=Tokens.UNICODE_RANGE,-1==value.indexOf("?")&&"-"==reader.peek()&&(reader.mark(),temp=reader.read(),temp+=this.readUnicodeRangePart(!1),1==temp.length?reader.reset():value+=temp))),this.createToken(tt,value,startLine,startCol)},whitespaceToken:function(first,startLine,startCol){var value=(this._reader,first+this.readWhitespace());return this.createToken(Tokens.S,value,startLine,startCol)},readUnicodeRangePart:function(allowQuestionMark){for(var reader=this._reader,part="",c=reader.peek();isHexDigit(c)&&6>part.length;)reader.read(),part+=c,c=reader.peek();if(allowQuestionMark)for(;"?"==c&&6>part.length;)reader.read(),part+=c,c=reader.peek();return part},readWhitespace:function(){for(var reader=this._reader,whitespace="",c=reader.peek();isWhitespace(c);)reader.read(),whitespace+=c,c=reader.peek();return whitespace},readNumber:function(first){for(var reader=this._reader,number=first,hasDot="."==first,c=reader.peek();c;){if(isDigit(c))number+=reader.read();else{if("."!=c)break;if(hasDot)break;hasDot=!0,number+=reader.read()}c=reader.peek()}return number},readString:function(){for(var reader=this._reader,delim=reader.read(),string=delim,prev=delim,c=reader.peek();c&&(c=reader.read(),string+=c,c!=delim||"\\\\"==prev);){if(isNewLine(reader.peek())&&"\\\\"!=c){string="";break}prev=c,c=reader.peek()}return null===c&&(string=""),string},readURI:function(first){var reader=this._reader,uri=first,inner="",c=reader.peek();for(reader.mark();c&&isWhitespace(c);)reader.read(),c=reader.peek();for(inner="\'"==c||\'"\'==c?this.readString():this.readURL(),c=reader.peek();c&&isWhitespace(c);)reader.read(),c=reader.peek();return""===inner||")"!=c?(uri=first,reader.reset()):uri+=inner+reader.read(),uri},readURL:function(){for(var reader=this._reader,url="",c=reader.peek();/^[!#$%&\\\\*-~]$/.test(c);)url+=reader.read(),c=reader.peek();return url},readName:function(first){for(var reader=this._reader,ident=first||"",c=reader.peek();;)if("\\\\"==c)ident+=this.readEscape(reader.read()),c=reader.peek();else{if(!c||!isNameChar(c))break;ident+=reader.read(),c=reader.peek()}return ident},readEscape:function(first){var reader=this._reader,cssEscape=first||"",i=0,c=reader.peek();if(isHexDigit(c))do cssEscape+=reader.read(),c=reader.peek();while(c&&isHexDigit(c)&&6>++i);return 3==cssEscape.length&&/\\s/.test(c)||7==cssEscape.length||1==cssEscape.length?reader.read():c="",cssEscape+c},readComment:function(first){var reader=this._reader,comment=first||"",c=reader.read();if("*"==c){for(;c;){if(comment+=c,comment.length>2&&"*"==c&&"/"==reader.peek()){comment+=reader.read();break}c=reader.read()}return comment}return""}});var Tokens=[{name:"CDO"},{name:"CDC"},{name:"S",whitespace:!0},{name:"COMMENT",comment:!0,hide:!0,channel:"comment"},{name:"INCLUDES",text:"~="},{name:"DASHMATCH",text:"|="},{name:"PREFIXMATCH",text:"^="},{name:"SUFFIXMATCH",text:"$="},{name:"SUBSTRINGMATCH",text:"*="},{name:"STRING"},{name:"IDENT"},{name:"HASH"},{name:"IMPORT_SYM",text:"@import"},{name:"PAGE_SYM",text:"@page"},{name:"MEDIA_SYM",text:"@media"},{name:"FONT_FACE_SYM",text:"@font-face"},{name:"CHARSET_SYM",text:"@charset"},{name:"NAMESPACE_SYM",text:"@namespace"},{name:"VIEWPORT_SYM",text:["@viewport","@-ms-viewport"]},{name:"UNKNOWN_SYM"},{name:"KEYFRAMES_SYM",text:["@keyframes","@-webkit-keyframes","@-moz-keyframes","@-o-keyframes"]},{name:"IMPORTANT_SYM"},{name:"LENGTH"},{name:"ANGLE"},{name:"TIME"},{name:"FREQ"},{name:"DIMENSION"},{name:"PERCENTAGE"},{name:"NUMBER"},{name:"URI"},{name:"FUNCTION"},{name:"UNICODE_RANGE"},{name:"INVALID"},{name:"PLUS",text:"+"},{name:"GREATER",text:">"},{name:"COMMA",text:","},{name:"TILDE",text:"~"},{name:"NOT"},{name:"TOPLEFTCORNER_SYM",text:"@top-left-corner"},{name:"TOPLEFT_SYM",text:"@top-left"},{name:"TOPCENTER_SYM",text:"@top-center"},{name:"TOPRIGHT_SYM",text:"@top-right"},{name:"TOPRIGHTCORNER_SYM",text:"@top-right-corner"},{name:"BOTTOMLEFTCORNER_SYM",text:"@bottom-left-corner"},{name:"BOTTOMLEFT_SYM",text:"@bottom-left"},{name:"BOTTOMCENTER_SYM",text:"@bottom-center"}
8,{name:"BOTTOMRIGHT_SYM",text:"@bottom-right"},{name:"BOTTOMRIGHTCORNER_SYM",text:"@bottom-right-corner"},{name:"LEFTTOP_SYM",text:"@left-top"},{name:"LEFTMIDDLE_SYM",text:"@left-middle"},{name:"LEFTBOTTOM_SYM",text:"@left-bottom"},{name:"RIGHTTOP_SYM",text:"@right-top"},{name:"RIGHTMIDDLE_SYM",text:"@right-middle"},{name:"RIGHTBOTTOM_SYM",text:"@right-bottom"},{name:"RESOLUTION",state:"media"},{name:"IE_FUNCTION"},{name:"CHAR"},{name:"PIPE",text:"|"},{name:"SLASH",text:"/"},{name:"MINUS",text:"-"},{name:"STAR",text:"*"},{name:"LBRACE",endChar:"}",text:"{"},{name:"RBRACE",text:"}"},{name:"LBRACKET",endChar:"]",text:"["},{name:"RBRACKET",text:"]"},{name:"EQUALS",text:"="},{name:"COLON",text:":"},{name:"SEMICOLON",text:";"},{name:"LPAREN",endChar:")",text:"("},{name:"RPAREN",text:")"},{name:"DOT",text:"."}];(function(){var nameMap=[],typeMap={};Tokens.UNKNOWN=-1,Tokens.unshift({name:"EOF"});for(var i=0,len=Tokens.length;len>i;i++)if(nameMap.push(Tokens[i].name),Tokens[Tokens[i].name]=i,Tokens[i].text)if(Tokens[i].text instanceof Array)for(var j=0;Tokens[i].text.length>j;j++)typeMap[Tokens[i].text[j]]=i;else typeMap[Tokens[i].text]=i;Tokens.name=function(tt){return nameMap[tt]},Tokens.type=function(c){return typeMap[c]||-1}})();var Validation={validate:function(property,value){var name=(""+property).toLowerCase(),expression=(value.parts,new PropertyValueIterator(value)),spec=Properties[name];if(spec)"number"!=typeof spec&&("string"==typeof spec?spec.indexOf("||")>-1?this.groupProperty(spec,expression):this.singleProperty(spec,expression,1):spec.multi?this.multiProperty(spec.multi,expression,spec.comma,spec.max||1/0):"function"==typeof spec&&spec(expression));else if(0!==name.indexOf("-"))throw new ValidationError("Unknown property \'"+property+"\'.",property.line,property.col)},singleProperty:function(types,expression,max){for(var part,result=!1,value=expression.value,count=0;expression.hasNext()&&max>count&&(result=ValidationTypes.isAny(expression,types));)count++;if(!result)throw expression.hasNext()&&!expression.isFirst()?(part=expression.peek(),new ValidationError("Expected end of value but found \'"+part+"\'.",part.line,part.col)):new ValidationError("Expected ("+types+") but found \'"+value+"\'.",value.line,value.col);if(expression.hasNext())throw part=expression.next(),new ValidationError("Expected end of value but found \'"+part+"\'.",part.line,part.col)},multiProperty:function(types,expression,comma,max){for(var part,result=!1,value=expression.value,count=0;expression.hasNext()&&!result&&max>count&&ValidationTypes.isAny(expression,types);)if(count++,expression.hasNext()){if(comma){if(","!=expression.peek())break;part=expression.next()}}else result=!0;if(!result)throw expression.hasNext()&&!expression.isFirst()?(part=expression.peek(),new ValidationError("Expected end of value but found \'"+part+"\'.",part.line,part.col)):(part=expression.previous(),comma&&","==part?new ValidationError("Expected end of value but found \'"+part+"\'.",part.line,part.col):new ValidationError("Expected ("+types+") but found \'"+value+"\'.",value.line,value.col));if(expression.hasNext())throw part=expression.next(),new ValidationError("Expected end of value but found \'"+part+"\'.",part.line,part.col)},groupProperty:function(types,expression){for(var name,part,result=!1,value=expression.value,typeCount=types.split("||").length,groups={count:0},partial=!1;expression.hasNext()&&!result&&(name=ValidationTypes.isAnyOfGroup(expression,types))&&!groups[name];)groups[name]=1,groups.count++,partial=!0,groups.count!=typeCount&&expression.hasNext()||(result=!0);if(!result)throw partial&&expression.hasNext()?(part=expression.peek(),new ValidationError("Expected end of value but found \'"+part+"\'.",part.line,part.col)):new ValidationError("Expected ("+types+") but found \'"+value+"\'.",value.line,value.col);if(expression.hasNext())throw part=expression.next(),new ValidationError("Expected end of value but found \'"+part+"\'.",part.line,part.col)}};ValidationError.prototype=Error();var ValidationTypes={isLiteral:function(part,literals){var i,len,text=(""+part.text).toLowerCase(),args=literals.split(" | "),found=!1;for(i=0,len=args.length;len>i&&!found;i++)text==args[i].toLowerCase()&&(found=!0);return found},isSimple:function(type){return!!this.simple[type]},isComplex:function(type){return!!this.complex[type]},isAny:function(expression,types){var i,len,args=types.split(" | "),found=!1;for(i=0,len=args.length;len>i&&!found&&expression.hasNext();i++)found=this.isType(expression,args[i]);return found},isAnyOfGroup:function(expression,types){var i,len,args=types.split(" || "),found=!1;for(i=0,len=args.length;len>i&&!found;i++)found=this.isType(expression,args[i]);return found?args[i-1]:!1},isType:function(expression,type){var part=expression.peek(),result=!1;return"<"!=type.charAt(0)?(result=this.isLiteral(part,type),result&&expression.next()):this.simple[type]?(result=this.simple[type](part),result&&expression.next()):result=this.complex[type](expression),result},simple:{"<absolute-size>":function(part){return ValidationTypes.isLiteral(part,"xx-small | x-small | small | medium | large | x-large | xx-large")},"<attachment>":function(part){return ValidationTypes.isLiteral(part,"scroll | fixed | local")},"<attr>":function(part){return"function"==part.type&&"attr"==part.name},"<bg-image>":function(part){return this["<image>"](part)||this["<gradient>"](part)||"none"==part},"<gradient>":function(part){return"function"==part.type&&/^(?:\\-(?:ms|moz|o|webkit)\\-)?(?:repeating\\-)?(?:radial\\-|linear\\-)?gradient/i.test(part)},"<box>":function(part){return ValidationTypes.isLiteral(part,"padding-box | border-box | content-box")},"<content>":function(part){return"function"==part.type&&"content"==part.name},"<relative-size>":function(part){return ValidationTypes.isLiteral(part,"smaller | larger")},"<ident>":function(part){return"identifier"==part.type},"<length>":function(part){return"function"==part.type&&/^(?:\\-(?:ms|moz|o|webkit)\\-)?calc/i.test(part)?!0:"length"==part.type||"number"==part.type||"integer"==part.type||"0"==part},"<color>":function(part){return"color"==part.type||"transparent"==part},"<number>":function(part){return"number"==part.type||this["<integer>"](part)},"<integer>":function(part){return"integer"==part.type},"<line>":function(part){return"integer"==part.type},"<angle>":function(part){return"angle"==part.type},"<uri>":function(part){return"uri"==part.type},"<image>":function(part){return this["<uri>"](part)},"<percentage>":function(part){return"percentage"==part.type||"0"==part},"<border-width>":function(part){return this["<length>"](part)||ValidationTypes.isLiteral(part,"thin | medium | thick")},"<border-style>":function(part){return ValidationTypes.isLiteral(part,"none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset")},"<content-sizing>":function(part){return ValidationTypes.isLiteral(part,"fill-available | -moz-available | -webkit-fill-available | max-content | -moz-max-content | -webkit-max-content | min-content | -moz-min-content | -webkit-min-content | fit-content | -moz-fit-content | -webkit-fit-content")},"<margin-width>":function(part){return this["<length>"](part)||this["<percentage>"](part)||ValidationTypes.isLiteral(part,"auto")},"<padding-width>":function(part){return this["<length>"](part)||this["<percentage>"](part)},"<shape>":function(part){return"function"==part.type&&("rect"==part.name||"inset-rect"==p
8art.name)},"<time>":function(part){return"time"==part.type},"<flex-grow>":function(part){return this["<number>"](part)},"<flex-shrink>":function(part){return this["<number>"](part)},"<width>":function(part){return this["<margin-width>"](part)},"<flex-basis>":function(part){return this["<width>"](part)},"<flex-direction>":function(part){return ValidationTypes.isLiteral(part,"row | row-reverse | column | column-reverse")},"<flex-wrap>":function(part){return ValidationTypes.isLiteral(part,"nowrap | wrap | wrap-reverse")}},complex:{"<bg-position>":function(expression){for(var result=!1,numeric="<percentage> | <length>",xDir="left | right",yDir="top | bottom",count=0;expression.peek(count)&&","!=expression.peek(count);)count++;return 3>count?ValidationTypes.isAny(expression,xDir+" | center | "+numeric)?(result=!0,ValidationTypes.isAny(expression,yDir+" | center | "+numeric)):ValidationTypes.isAny(expression,yDir)&&(result=!0,ValidationTypes.isAny(expression,xDir+" | center")):ValidationTypes.isAny(expression,xDir)?ValidationTypes.isAny(expression,yDir)?(result=!0,ValidationTypes.isAny(expression,numeric)):ValidationTypes.isAny(expression,numeric)&&(ValidationTypes.isAny(expression,yDir)?(result=!0,ValidationTypes.isAny(expression,numeric)):ValidationTypes.isAny(expression,"center")&&(result=!0)):ValidationTypes.isAny(expression,yDir)?ValidationTypes.isAny(expression,xDir)?(result=!0,ValidationTypes.isAny(expression,numeric)):ValidationTypes.isAny(expression,numeric)&&(ValidationTypes.isAny(expression,xDir)?(result=!0,ValidationTypes.isAny(expression,numeric)):ValidationTypes.isAny(expression,"center")&&(result=!0)):ValidationTypes.isAny(expression,"center")&&ValidationTypes.isAny(expression,xDir+" | "+yDir)&&(result=!0,ValidationTypes.isAny(expression,numeric)),result},"<bg-size>":function(expression){var result=!1,numeric="<percentage> | <length> | auto";return ValidationTypes.isAny(expression,"cover | contain")?result=!0:ValidationTypes.isAny(expression,numeric)&&(result=!0,ValidationTypes.isAny(expression,numeric)),result},"<repeat-style>":function(expression){var part,result=!1,values="repeat | space | round | no-repeat";return expression.hasNext()&&(part=expression.next(),ValidationTypes.isLiteral(part,"repeat-x | repeat-y")?result=!0:ValidationTypes.isLiteral(part,values)&&(result=!0,expression.hasNext()&&ValidationTypes.isLiteral(expression.peek(),values)&&expression.next())),result},"<shadow>":function(expression){var result=!1,count=0,inset=!1,color=!1;if(expression.hasNext()){for(ValidationTypes.isAny(expression,"inset")&&(inset=!0),ValidationTypes.isAny(expression,"<color>")&&(color=!0);ValidationTypes.isAny(expression,"<length>")&&4>count;)count++;expression.hasNext()&&(color||ValidationTypes.isAny(expression,"<color>"),inset||ValidationTypes.isAny(expression,"inset")),result=count>=2&&4>=count}return result},"<x-one-radius>":function(expression){var result=!1,simple="<length> | <percentage> | inherit";return ValidationTypes.isAny(expression,simple)&&(result=!0,ValidationTypes.isAny(expression,simple)),result},"<flex>":function(expression){var part,result=!1;if(ValidationTypes.isAny(expression,"none | inherit")?result=!0:ValidationTypes.isType(expression,"<flex-grow>")?expression.peek()?ValidationTypes.isType(expression,"<flex-shrink>")?result=expression.peek()?ValidationTypes.isType(expression,"<flex-basis>"):!0:ValidationTypes.isType(expression,"<flex-basis>")&&(result=null===expression.peek()):result=!0:ValidationTypes.isType(expression,"<flex-basis>")&&(result=!0),!result)throw part=expression.peek(),new ValidationError("Expected (none | [ <flex-grow> <flex-shrink>? || <flex-basis> ]) but found \'"+expression.value.text+"\'.",part.line,part.col);return result}}};parserlib.css={Colors:Colors,Combinator:Combinator,Parser:Parser,PropertyName:PropertyName,PropertyValue:PropertyValue,PropertyValuePart:PropertyValuePart,MediaFeature:MediaFeature,MediaQuery:MediaQuery,Selector:Selector,SelectorPart:SelectorPart,SelectorSubPart:SelectorSubPart,Specificity:Specificity,TokenStream:TokenStream,Tokens:Tokens,ValidationError:ValidationError}}(),function(){for(var prop in parserlib)exports[prop]=parserlib[prop]}();var util={isArray:function(ar){return Array.isArray(ar)||"object"==typeof ar&&"[object Array]"===objectToString(ar)},isDate:function(d){return"object"==typeof d&&"[object Date]"===objectToString(d)},isRegExp:function(re){return"object"==typeof re&&"[object RegExp]"===objectToString(re)},getRegExpFlags:function(re){var flags="";return re.global&&(flags+="g"),re.ignoreCase&&(flags+="i"),re.multiline&&(flags+="m"),flags}};"object"==typeof module&&(module.exports=clone),clone.clonePrototype=function(parent){if(null===parent)return null;var c=function(){};return c.prototype=parent,new c};var CSSLint=function(){function applyEmbeddedRuleset(text,ruleset){var valueMap,embedded=text&&text.match(embeddedRuleset),rules=embedded&&embedded[1];return rules&&(valueMap={"true":2,"":1,"false":0,2:2,1:1,0:0},rules.toLowerCase().split(",").forEach(function(rule){var pair=rule.split(":"),property=pair[0]||"",value=pair[1]||"";ruleset[property.trim()]=valueMap[value.trim()]})),ruleset}var rules=[],formatters=[],embeddedRuleset=/\\/\\*csslint([^\\*]*)\\*\\//,api=new parserlib.util.EventTarget;return api.version="@VERSION@",api.addRule=function(rule){rules.push(rule),rules[rule.id]=rule},api.clearRules=function(){rules=[]},api.getRules=function(){return[].concat(rules).sort(function(a,b){return a.id>b.id?1:0})},api.getRuleset=function(){for(var ruleset={},i=0,len=rules.length;len>i;)ruleset[rules[i++].id]=1;return ruleset},api.addFormatter=function(formatter){formatters[formatter.id]=formatter},api.getFormatter=function(formatId){return formatters[formatId]},api.format=function(results,filename,formatId,options){var formatter=this.getFormatter(formatId),result=null;return formatter&&(result=formatter.startFormat(),result+=formatter.formatResults(results,filename,options||{}),result+=formatter.endFormat()),result},api.hasFormat=function(formatId){return formatters.hasOwnProperty(formatId)},api.verify=function(text,ruleset){var reporter,lines,report,i=0,parser=new parserlib.css.Parser({starHack:!0,ieFilters:!0,underscoreHack:!0,strict:!1});lines=text.replace(/\\n\\r?/g,"$split$").split("$split$"),ruleset||(ruleset
8=this.getRuleset()),embeddedRuleset.test(text)&&(ruleset=clone(ruleset),ruleset=applyEmbeddedRuleset(text,ruleset)),reporter=new Reporter(lines,ruleset),ruleset.errors=2;for(i in ruleset)ruleset.hasOwnProperty(i)&&ruleset[i]&&rules[i]&&rules[i].init(parser,reporter);try{parser.parse(text)}catch(ex){reporter.error("Fatal error, cannot continue: "+ex.message,ex.line,ex.col,{})}return report={messages:reporter.messages,stats:reporter.stats,ruleset:reporter.ruleset},report.messages.sort(function(a,b){return a.rollup&&!b.rollup?1:!a.rollup&&b.rollup?-1:a.line-b.line}),report},api}();Reporter.prototype={constructor:Reporter,error:function(message,line,col,rule){this.messages.push({type:"error",line:line,col:col,message:message,evidence:this.lines[line-1],rule:rule||{}})},warn:function(message,line,col,rule){this.report(message,line,col,rule)},report:function(message,line,col,rule){this.messages.push({type:2===this.ruleset[rule.id]?"error":"warning",line:line,col:col,message:message,evidence:this.lines[line-1],rule:rule})},info:function(message,line,col,rule){this.messages.push({type:"info",line:line,col:col,message:message,evidence:this.lines[line-1],rule:rule})},rollupError:function(message,rule){this.messages.push({type:"error",rollup:!0,message:message,rule:rule})},rollupWarn:function(message,rule){this.messages.push({type:"warning",rollup:!0,message:message,rule:rule})},stat:function(name,value){this.stats[name]=value}},CSSLint._Reporter=Reporter,CSSLint.Util={mix:function(receiver,supplier){var prop;for(prop in supplier)supplier.hasOwnProperty(prop)&&(receiver[prop]=supplier[prop]);return prop},indexOf:function(values,value){if(values.indexOf)return values.indexOf(value);for(var i=0,len=values.length;len>i;i++)if(values[i]===value)return i;return-1},forEach:function(values,func){if(values.forEach)return values.forEach(func);for(var i=0,len=values.length;len>i;i++)func(values[i],i,values)}},CSSLint.addRule({id:"adjoining-classes",name:"Disallow adjoining classes",desc:"Don\'t use adjoining classes.",browsers:"IE6",init:function(parser,reporter){var rule=this;parser.addListener("startrule",function(event){var selector,part,modifier,classCount,i,j,k,selectors=event.selectors;for(i=0;selectors.length>i;i++)for(selector=selectors[i],j=0;selector.parts.length>j;j++)if(part=selector.parts[j],part.type===parser.SELECTOR_PART_TYPE)for(classCount=0,k=0;part.modifiers.length>k;k++)modifier=part.modifiers[k],"class"===modifier.type&&classCount++,classCount>1&&reporter.report("Don\'t use adjoining classes.",part.line,part.col,rule)})}}),CSSLint.addRule({id:"box-model",name:"Beware of broken box size",desc:"Don\'t use width or height when using padding or border.",browsers:"All",init:function(parser,reporter){function startRule(){properties={},boxSizing=!1}function endRule(){var prop,value;if(!boxSizing){if(properties.height)for(prop in heightProperties)heightProperties.hasOwnProperty(prop)&&properties[prop]&&(value=properties[prop].value,("padding"!==prop||2!==value.parts.length||0!==value.parts[0].value)&&reporter.report("Using height with "+prop+" can sometimes make elements larger than you expect.",properties[prop].line,properties[prop].col,rule));if(properties.width)for(prop in widthProperties)widthProperties.hasOwnProperty(prop)&&properties[prop]&&(value=properties[prop].value,("padding"!==prop||2!==value.parts.length||0!==value.parts[1].value)&&reporter.report("Using width with "+prop+" can sometimes make elements larger than you expect.",properties[prop].line,properties[prop].col,rule))}}var properties,rule=this,widthProperties={border:1,"border-left":1,"border-right":1,padding:1,"padding-left":1,"padding-right":1},heightProperties={border:1,"border-bottom":1,"border-top":1,padding:1,"padding-bottom":1,"padding-top":1},boxSizing=!1;parser.addListener("startrule",startRule),parser.addListener("startfontface",startRule),parser.addListener("startpage",startRule),parser.addListener("startpagemargin",startRule),parser.addListener("startkeyframerule",startRule),parser.addListener("property",function(event){var name=event.property.text.toLowerCase();heightProperties[name]||widthProperties[name]?/^0\\S*$/.test(event.value)||"border"===name&&"none"==""+event.value||(properties[name]={line:event.property.line,col:event.property.col,value:event.value}):/^(width|height)/i.test(name)&&/^(length|percentage)/.test(event.value.parts[0].type)?properties[name]=1:"box-sizing"===name&&(boxSizing=!0)}),parser.addListener("endrule",endRule),parser.addListener("endfontface",endRule),parser.addListener("endpage",endRule),parser.addListener("endpagemargin",endRule),parser.addListener("endkeyframerule",endRule)}}),CSSLint.addRule({id:"box-sizing",name:"Disallow use of box-sizing",desc:"The box-sizing properties isn\'t supported in IE6 and IE7.",browsers:"IE6, IE7",tags:["Compatibility"],init:function(parser,reporter){var rule=this;parser.addListener("property",function(event){var name=event.property.text.toLowerCase();"box-sizing"===name&&reporter.report("The box-sizing property isn\'t supported in IE6 and IE7.",event.line,event.col,rule)})}}),CSSLint.addRule({id:"bulletproof-font-face",name:"Use the bulletproof @font-face syntax",desc:"Use the bulletproof @font-face syntax to avoid 404\'s in old IE (http://www.fontspring.com/blog/the-new-bulletproof-font-face-syntax).",browsers:"All",init:function(parser,reporter){var line,col,rule=this,fontFaceRule=!1,firstSrc=!0,ruleFailed=!1;parser.addListener("startfontface",function(){fontFaceRule=!0}),parser.addListener("property",function(event){if(fontFaceRule){var propertyName=(""+event.property).toLowerCase(),value=""+event.value;if(line=event.line,col=event.col,"src"===propertyName){var regex=/^\\s?url\\([\'"].+\\.eot\\?.*[\'"]\\)\\s*format\\([\'"]embedded-opentype[\'"]\\).*$/i;!value.match(regex)&&firstSrc?(ruleFailed=!0,firstSrc=!1):value.match(regex)&&!firstSrc&&(ruleFailed=!1)}}}),parser.addListener("endfontface",function(){fontFaceRule=!1,ruleFailed&&reporter.report("@font-face declaration doesn\'t follow the fontspring bulletproof syntax.",line,col,rule)})}}),CSSLint.addRule({id:"compatible-vendor-prefixes",name:"Require compatible vendor prefixes",desc:"Include all compatible vendor prefixes to reach a wider range of users.",browsers:"All",init:function(parser,reporter){var compatiblePrefixes,properties,prop,variations,prefixed,i,len,rule=this,inKeyFrame=!1,arrayPush=Array.prototype.push,applyTo=[];compatiblePrefixes={animation:"webkit moz","animation-delay":"webkit moz","animation-direction":"webkit moz","animation-duration":"webkit moz","animation-fill-mode":"webkit moz","animation-iteration-count":"webkit moz","animation-name":"webkit moz","animation-play-state":"webkit moz","animation-timing-function":"webkit moz",appearance:"webkit moz","border-end":"webkit moz","border-end-color":"webkit moz","border-end-style":"webkit moz","border-end-width":"webkit moz","border-image":"webkit moz o","border-radius":"webkit","border-start":"webkit moz","border-start-color":"webkit moz","border-start-style":"webkit moz","border-start-width":"webkit moz","box-align":"webkit moz ms","box-direction":"webkit moz ms","box-flex":"webkit moz ms","box-lines":"webkit ms","box-ordinal-group":"webkit moz ms","box-orient":"webkit moz ms","box-pack":"webkit moz ms","box-sizing":"webkit moz","box-shadow":"webkit moz","column-count":"webkit moz ms","column-gap":"webkit moz ms","column-rule":"webkit moz ms","column-rule-color":"webkit moz ms","column-rule-style":"webkit moz ms","column-rule-width":"webkit moz ms","column-width":"webkit moz ms",hyphens:"epub moz","line-break":"webkit ms","margin-end":"webkit moz","margin-start":"webkit moz","marquee-speed":"webkit wap","marquee-style":"webkit wap","padding-end":"webkit moz","padding-start":"webkit moz","tab-size":"moz o","text-size-adjust":"webkit ms",transform:"webkit moz ms o","transform-origin":"webkit moz ms o",transition:"webkit moz o","transition-delay":"webkit moz o","transition-duration":"webkit moz o","transition-property":"webkit moz o","transition-timing-function":"webkit moz o","user-modify":"webkit moz","user-select":"webkit moz ms","word-break":"epub ms","writing-mode":"epub ms"};
8for(prop in compatiblePrefixes)if(compatiblePrefixes.hasOwnProperty(prop)){for(variations=[],prefixed=compatiblePrefixes[prop].split(" "),i=0,len=prefixed.length;len>i;i++)variations.push("-"+prefixed[i]+"-"+prop);compatiblePrefixes[prop]=variations,arrayPush.apply(applyTo,variations)}parser.addListener("startrule",function(){properties=[]}),parser.addListener("startkeyframes",function(event){inKeyFrame=event.prefix||!0}),parser.addListener("endkeyframes",function(){inKeyFrame=!1}),parser.addListener("property",function(event){var name=event.property;CSSLint.Util.indexOf(applyTo,name.text)>-1&&(inKeyFrame&&"string"==typeof inKeyFrame&&0===name.text.indexOf("-"+inKeyFrame+"-")||properties.push(name))}),parser.addListener("endrule",function(){if(properties.length){var i,len,name,prop,variations,value,full,actual,item,propertiesSpecified,propertyGroups={};for(i=0,len=properties.length;len>i;i++){name=properties[i];for(prop in compatiblePrefixes)compatiblePrefixes.hasOwnProperty(prop)&&(variations=compatiblePrefixes[prop],CSSLint.Util.indexOf(variations,name.text)>-1&&(propertyGroups[prop]||(propertyGroups[prop]={full:variations.slice(0),actual:[],actualNodes:[]}),-1===CSSLint.Util.indexOf(propertyGroups[prop].actual,name.text)&&(propertyGroups[prop].actual.push(name.text),propertyGroups[prop].actualNodes.push(name))))}for(prop in propertyGroups)if(propertyGroups.hasOwnProperty(prop)&&(value=propertyGroups[prop],full=value.full,actual=value.actual,full.length>actual.length))for(i=0,len=full.length;len>i;i++)item=full[i],-1===CSSLint.Util.indexOf(actual,item)&&(propertiesSpecified=1===actual.length?actual[0]:2===actual.length?actual.join(" and "):actual.join(", "),reporter.report("The property "+item+" is compatible with "+propertiesSpecified+" and should be included as well.",value.actualNodes[0].line,value.actualNodes[0].col,rule))}})}}),CSSLint.addRule({id:"display-property-grouping",name:"Require properties appropriate for display",desc:"Certain properties shouldn\'t be used with certain display property values.",browsers:"All",init:function(parser,reporter){function reportProperty(name,display,msg){properties[name]&&("string"!=typeof propertiesToCheck[name]||properties[name].value.toLowerCase()!==propertiesToCheck[name])&&reporter.report(msg||name+" can\'t be used with display: "+display+".",properties[name].line,properties[name].col,rule)}function startRule(){properties={}}function endRule(){var display=properties.display?properties.display.value:null;if(display)switch(display){case"inline":reportProperty("height",display),reportProperty("width",display),reportProperty("margin",display),reportProperty("margin-top",display),reportProperty("margin-bottom",display),reportProperty("float",display,"display:inline has no effect on floated elements (but may be used to fix the IE6 double-margin bug).");break;case"block":reportProperty("vertical-align",display);\nbreak;case"inline-block":reportProperty("float",display);break;default:0===display.indexOf("table-")&&(reportProperty("margin",display),reportProperty("margin-left",display),reportProperty("margin-right",display),reportProperty("margin-top",display),reportProperty("margin-bottom",display),reportProperty("float",display))}}var properties,rule=this,propertiesToCheck={display:1,"float":"none",height:1,width:1,margin:1,"margin-left":1,"margin-right":1,"margin-bottom":1,"margin-top":1,padding:1,"padding-left":1,"padding-right":1,"padding-bottom":1,"padding-top":1,"vertical-align":1};parser.addListener("startrule",startRule),parser.addListener("startfontface",startRule),parser.addListener("startkeyframerule",startRule),parser.addListener("startpagemargin",startRule),parser.addListener("startpage",startRule),parser.addListener("property",function(event){var name=event.property.text.toLowerCase();propertiesToCheck[name]&&(properties[name]={value:event.value.text,line:event.property.line,col:event.property.col})}),parser.addListener("endrule",endRule),parser.addListener("endfontface",endRule),parser.addListener("endkeyframerule",endRule),parser.addListener("endpagemargin",endRule),parser.addListener("endpage",endRule)}}),CSSLint.addRule({id:"duplicate-background-images",name:"Disallow duplicate background images",desc:"Every background-image should be unique. Use a common class for e.g. sprites.",browsers:"All",init:function(parser,reporter){var rule=this,stack={};parser.addListener("property",function(event){var i,len,name=event.property.text,value=event.value;if(name.match(/background/i))for(i=0,len=value.parts.length;len>i;i++)"uri"===value.parts[i].type&&(stack[value.parts[i].uri]===void 0?stack[value.parts[i].uri]=event:reporter.report("Backgroun
8d image \'"+value.parts[i].uri+"\' was used multiple times, first declared at line "+stack[value.parts[i].uri].line+", col "+stack[value.parts[i].uri].col+".",event.line,event.col,rule))})}}),CSSLint.addRule({id:"duplicate-properties",name:"Disallow duplicate properties",desc:"Duplicate properties must appear one after the other.",browsers:"All",init:function(parser,reporter){function startRule(){properties={}}var properties,lastProperty,rule=this;parser.addListener("startrule",startRule),parser.addListener("startfontface",startRule),parser.addListener("startpage",startRule),parser.addListener("startpagemargin",startRule),parser.addListener("startkeyframerule",startRule),parser.addListener("property",function(event){var property=event.property,name=property.text.toLowerCase();!properties[name]||lastProperty===name&&properties[name]!==event.value.text||reporter.report("Duplicate property \'"+event.property+"\' found.",event.line,event.col,rule),properties[name]=event.value.text,lastProperty=name})}}),CSSLint.addRule({id:"empty-rules",name:"Disallow empty rules",desc:"Rules without any properties specified should be removed.",browsers:"All",init:function(parser,reporter){var rule=this,count=0;parser.addListener("startrule",function(){count=0}),parser.addListener("property",function(){count++}),parser.addListener("endrule",function(event){var selectors=event.selectors;0===count&&reporter.report("Rule is empty.",selectors[0].line,selectors[0].col,rule)})}}),CSSLint.addRule({id:"errors",name:"Parsing Errors",desc:"This rule looks for recoverable syntax errors.",browsers:"All",init:function(parser,reporter){var rule=this;parser.addListener("error",function(event){reporter.error(event.message,event.line,event.col,rule)})}}),CSSLint.addRule({id:"fallback-colors",name:"Require fallback colors",desc:"For older browsers that don\'t support RGBA, HSL, or HSLA, provide a fallback color.",browsers:"IE6,IE7,IE8",init:function(parser,reporter){function startRule(){properties={},lastProperty=null}var lastProperty,properties,rule=this,propertiesToCheck={color:1,background:1,"border-color":1,"border-top-color":1,"border-right-color":1,"border-bottom-color":1,"border-left-color":1,border:1,"border-top":1,"border-right":1,"border-bottom":1,"border-left":1,"background-color":1};parser.addListener("startrule",startRule),parser.addListener("startfontface",startRule),parser.addListener("startpage",startRule),parser.addListener("startpagemargin",startRule),parser.addListener("startkeyframerule",startRule),parser.addListener("property",function(event){var property=event.property,name=property.text.toLowerCase(),parts=event.value.parts,i=0,colorType="",len=parts.length;if(propertiesToCheck[name])for(;len>i;)"color"===parts[i].type&&("alpha"in parts[i]||"hue"in parts[i]?(/([^\\)]+)\\(/.test(parts[i])&&(colorType=RegExp.$1.toUpperCase()),lastProperty&&lastProperty.property.text.toLowerCase()===name&&"compat"===lastProperty.colorType||reporter.report("Fallback "+name+" (hex or RGB) should precede "+colorType+" "+name+".",event.line,event.col,rule)):event.colorType="compat"),i++;lastProperty=event})}}),CSSLint.addRule({id:"floats",name:"Disallow too many floats",desc:"This rule tests if the float property is used too many times",browsers:"All",init:function(parser,reporter){var rule=this,count=0;parser.addListener("property",function(event){"float"===event.property.text.toLowerCase()&&"none"!==event.value.text.toLowerCase()&&count++}),parser.addListener("endstylesheet",function(){reporter.stat("floats",count),count>=10&&reporter.rollupWarn("Too many floats ("+count+"), you\'re probably using them for layout. Consider using a grid system instead.",rule)})}}),CSSLint.addRule({id:"font-faces",name:"Don\'t use too many web fonts",desc:"Too many different web fonts in the same stylesheet.",browsers:"All",init:function(parser,reporter){var rule=this,count=0;parser.addListener("startfontface",function(){count++}),parser.addListener("endstylesheet",function(){count>5&&reporter.rollupWarn("Too many @font-face declarations ("+count+").",rule)})}}),CSSLint.addRule({id:"font-sizes",name:"Disallow too many font sizes",desc:"Checks the number of font-size declarations.",browsers:"All",init:function(parser,reporter){var rule=this,count=0;parser.addListener("property",function(event){"font-size"==""+event.property&&count++}),parser.addListener("endstylesheet",function(){reporter.stat("font-sizes",count),count>=10&&reporter.rollupWarn("Too many font-size declarations ("+count+"), abstraction needed.",rule)})}}),CSSLint.addRule({id:"gradients",name:"Require all gradient definitions",desc:"When using a vendor-prefixed gradient, make sure to use them all.",browsers:"All",init:function(parser,reporter){var gradients,rule=this;parser.addListener("startrule",function(){gradients={moz:0,webkit:0,oldWebkit:0,o:0}}),parser.addListener("property",function(event){/\\-(moz|o|webkit)(?:\\-(?:linear|radial))\\-gradient/i.test(event.value)?gradients[RegExp.$1]=1:/\\-webkit\\-gradient/i.test(event.value)&&(gradients.oldWebkit=1)}),parser.addListener("endrule",function(event){var missing=[];gradients.moz||missing.push("Firefox 3.6+"),gradients.webkit||missing.push("Webkit (Safari 5+, Chrome)"),gradients.oldWebkit||missing.push("Old Webkit (Safari 4+, Chrome)"),gradients.o||missing.push("Opera 11.1+"),missing.length&&4>missing.length&&reporter.report("Missing vendor-prefixed CSS gradients for "+missing.join(", ")+".",event.selectors[0].line,event.selectors[0].col,rule)})}}),CSSLint.addRule({id:"ids",name:"Disallow IDs in selectors",desc:"Selectors should not contain IDs.",browsers:"All",init:function(parser,reporter){var rule=this;parser.addListener("startrule",function(event){var selector,part,modifier,idCount,i,j,
8k,selectors=event.selectors;for(i=0;selectors.length>i;i++){for(selector=selectors[i],idCount=0,j=0;selector.parts.length>j;j++)if(part=selector.parts[j],part.type===parser.SELECTOR_PART_TYPE)for(k=0;part.modifiers.length>k;k++)modifier=part.modifiers[k],"id"===modifier.type&&idCount++;1===idCount?reporter.report("Don\'t use IDs in selectors.",selector.line,selector.col,rule):idCount>1&&reporter.report(idCount+" IDs in the selector, really?",selector.line,selector.col,rule)}})}}),CSSLint.addRule({id:"import",name:"Disallow @import",desc:"Don\'t use @import, use <link> instead.",browsers:"All",init:function(parser,reporter){var rule=this;parser.addListener("import",function(event){reporter.report("@import prevents parallel downloads, use <link> instead.",event.line,event.col,rule)})}}),CSSLint.addRule({id:"important",name:"Disallow !important",desc:"Be careful when using !important declaration",browsers:"All",init:function(parser,reporter){var rule=this,count=0;parser.addListener("property",function(event){event.important===!0&&(count++,reporter.report("Use of !important",event.line,event.col,rule))}),parser.addListener("endstylesheet",function(){reporter.stat("important",count),count>=10&&reporter.rollupWarn("Too many !important declarations ("+count+"), try to use less than 10 to avoid specificity issues.",rule)})}}),CSSLint.addRule({id:"known-properties",name:"Require use of known properties",desc:"Properties should be known (listed in CSS3 specification) or be a vendor-prefixed property.",browsers:"All",init:function(parser,reporter){var rule=this;parser.addListener("property",function(event){event.invalid&&reporter.report(event.invalid.message,event.line,event.col,rule)})}}),CSSLint.addRule({id:"order-alphabetical",name:"Alphabetical order",desc:"Assure properties are in alphabetical order",browsers:"All",init:function(parser,reporter){var properties,rule=this,startRule=function(){properties=[]};parser.addListener("startrule",startRule),parser.addListener("startfontface",startRule),parser.addListener("startpage",startRule),parser.addListener("startpagemargin",startRule),parser.addListener("startkeyframerule",startRule),parser.addListener("property",function(event){var name=event.property.text,lowerCasePrefixLessName=name.toLowerCase().replace(/^-.*?-/,"");properties.push(lowerCasePrefixLessName)}),parser.addListener("endrule",function(event){var currentProperties=properties.join(","),expectedProperties=properties.sort().join(",");currentProperties!==expectedProperties&&reporter.report("Rule doesn\'t have all its properties in alphabetical ordered.",event.line,event.col,rule)})}}),CSSLint.addRule({id:"outline-none",name:"Disallow outline: none",desc:"Use of outline: none or outline: 0 should be limited to :focus rules.",browsers:"All",tags:["Accessibility"],init:function(parser,reporter){function startRule(event){lastRule=event.selectors?{line:event.line,col:event.col,selectors:event.selectors,propCount:0,outline:!1}:null}function endRule(){lastRule&&lastRule.outline&&(-1===(""+lastRule.selectors).toLowerCase().indexOf(":focus")?reporter.report("Outlines should only be modified using :focus.",lastRule.line,lastRule.col,rule):1===lastRule.propCount&&reporter.report("Outlines shouldn\'t be hidden unless other visual changes are made.",lastRule.line,lastRule.col,rule))}var lastRule,rule=this;parser.addListener("startrule",startRule),parser.addListener("startfontface",startRule),parser.addListener("startpage",startRule),parser.addListener("startpagemargin",startRule),parser.addListener("startkeyframerule",startRule),parser.addListener("property",function(event){var name=event.property.text.toLowerCase(),value=event.value;lastRule&&(lastRule.propCount++,"outline"!==name||"none"!=""+value&&"0"!=""+value||(lastRule.outline=!0))}),parser.addListener("endrule",endRule),parser.addListener("endfontface",endRule),parser.addListener("endpage",endRule),parser.addListener("endpagemargin",endRule),parser.addListener("endkeyframerule",endRule)}}),CSSLint.addRule({id:"overqualified-elements",name:"Disallow overqualified elements",desc:"Don\'t use classes or IDs with elements (a.foo or a#foo).",browsers:"All",init:function(parser,reporter){var rule=this,classes={};parser.addListener("startrule",function(event){var selector,part,modifier,i,j,k,selectors=event.selectors;for(i=0;selectors.length>i;i++)for(selector=selectors[i],j=0;selector.parts.length>j;j++)if(part=selector.parts[j],part.type===parser.SELECTOR_PART_TYPE)for(k=0;part.modifiers.length>k;k++)modifier=part.modifiers[k],part.elementName&&"id"===modifier.type?reporter.report("Element ("+part+") is overqualified, just use "+modifier+" without element name.",part.line,part.col,rule):"class"===modifier.type&&(classes[modifier]||(classes[modifier]=[]),classes[modifier].push({modifier:modifier,part:part}))}),parser.addListener("endstylesheet",function(){var prop;for(prop in classes)classes.hasOwnProperty(prop)&&1===classes[prop].length&&classes[prop][0].part.elementName&&reporter.report("Element ("+classes[prop][0].part+") is overqualified, just use "+classes[prop][0].modifier+" without element name.",classes[prop][0].part.line,classes[prop][0].part.col,rule)})}}),CSSLint.addRule({id:"qualified-headings",name:"Disallow qualified headings",desc:"Headings should not be qualified (namespaced).",browsers:"All",init:function(parser,reporter){var rule=this;parser.addListener("startrule",function(event){var selector,part,i,j,selectors=event.selectors;for(i=0;selectors.length>i;i++)for(selector=selectors[i],j=0;selector.parts.length>j;j++)part=selector.parts[j],part.type===parser.SELECTOR_PART_TYPE&&part.elementName&&/h[1-6]/.test(""+part.elementName)&&j>0&&reporter.report("Heading ("+part.elementName+") should not be qualified.",part.line,part.col,rule)})}}),CSSLint.addRule({id:"regex-selectors",name:"Disallow selectors that look like regexs",de
8sc:"Selectors that look like regular expressions are slow and should be avoided.",browsers:"All",init:function(parser,reporter){var rule=this;parser.addListener("startrule",function(event){var selector,part,modifier,i,j,k,selectors=event.selectors;for(i=0;selectors.length>i;i++)for(selector=selectors[i],j=0;selector.parts.length>j;j++)if(part=selector.parts[j],part.type===parser.SELECTOR_PART_TYPE)for(k=0;part.modifiers.length>k;k++)modifier=part.modifiers[k],"attribute"===modifier.type&&/([\\~\\|\\^\\$\\*]=)/.test(modifier)&&reporter.report("Attribute selectors with "+RegExp.$1+" are slow!",modifier.line,modifier.col,rule)})}}),CSSLint.addRule({id:"rules-count",name:"Rules Count",desc:"Track how many rules there are.",browsers:"All",init:function(parser,reporter){var count=0;parser.addListener("startrule",function(){count++}),parser.addListener("endstylesheet",function(){reporter.stat("rule-count",count)})}}),CSSLint.addRule({id:"selector-max-approaching",name:"Warn when approaching the 4095 selector limit for IE",desc:"Will warn when selector count is >= 3800 selectors.",browsers:"IE",init:function(parser,reporter){var rule=this,count=0;parser.addListener("startrule",function(event){count+=event.selectors.length}),parser.addListener("endstylesheet",function(){count>=3800&&reporter.report("You have "+count+" selectors. Internet Explorer supports a maximum of 4095 selectors per stylesheet. Consider refactoring.",0,0,rule)})}}),CSSLint.addRule({id:"selector-max",name:"Error when past the 4095 selector limit for IE",desc:"Will error when selector count is > 4095.",browsers:"IE",init:function(parser,reporter){var rule=this,count=0;parser.addListener("startrule",function(event){count+=event.selectors.length}),parser.addListener("endstylesheet",function(){count>4095&&reporter.report("You have "+count+" selectors. Internet Explorer supports a maximum of 4095 selectors per stylesheet. Consider refactoring.",0,0,rule)})}}),CSSLint.addRule({id:"selector-newline",name:"Disallow new-line characters in selectors",desc:"New-line characters in selectors are usually a forgotten comma and not a descendant combinator.",browsers:"All",init:function(parser,reporter){function startRule(event){var i,len,selector,p,n,pLen,part,part2,type,currentLine,nextLine,selectors=event.selectors;for(i=0,len=selectors.length;len>i;i++)for(selector=selectors[i],p=0,pLen=selector.parts.length;pLen>p;p++)for(n=p+1;pLen>n;n++)part=selector.parts[p],part2=selector.parts[n],type=part.type,currentLine=part.line,nextLine=part2.line,"descendant"===type&&nextLine>currentLine&&reporter.report("newline character found in selector (forgot a comma?)",currentLine,selectors[i].parts[0].col,rule)}var rule=this;parser.addListener("startrule",startRule)}}),CSSLint.addRule({id:"shorthand",name:"Require shorthand properties",desc:"Use shorthand properties where possible.",browsers:"All",init:function(parser,reporter){function startRule(){properties={}}function endRule(event){var prop,i,len,total;for(prop in mapping)if(mapping.hasOwnProperty(prop)){for(total=0,i=0,len=mapping[prop].length;len>i;i++)total+=properties[mapping[prop][i]]?1:0;total===mapping[prop].length&&reporter.report("The properties "+mapping[prop].join(", ")+" can be replaced by "+prop+".",event.line,event.col,rule)}}var prop,i,len,properties,rule=this,propertiesToCheck={},mapping={margin:["margin-top","margin-bottom","margin-left","margin-right"],padding:["padding-top","padding-bottom","padding-left","padding-right"]};for(prop in mapping)if(mapping.hasOwnProperty(prop))for(i=0,len=mapping[prop].length;len>i;i++)propertiesToCheck[mapping[prop][i]]=prop;parser.addListener("startrule",startRule),parser.addListener("startfontface",startRule),parser.addListener("property",function(event){var name=(""+event.property).toLowerCase();propertiesToCheck[name]&&(properties[name]=1)}),parser.addListener("endrule",endRule),parser.addListener("endfontface",endRule)}}),CSSLint.addRule({id:"star-property-hack",name:"Disallow properties with a star prefix",desc:"Checks for the star property hack (targets IE6/7)",browsers:"All",init:function(parser,reporter){var rule=this;parser.addListener("property",function(event){var property=event.property;"*"===property.hack&&reporter.report("Property with star prefix found.",event.property.line,event.property.col,rule)})}}),CSSLint.addRule({id:"text-indent",name:"Disallow negative text-indent",desc:"Checks for text indent less than -99px",browsers:"All",init:function(parser,reporter){function startRule(){textIndent=!1,direction="inherit"}function endRule(){textIndent&&"ltr"!==direction&&reporter.report("Negative text-indent doesn\'t work well with RTL. If you use text-indent for image replacement explicitly set direction for that item to ltr.",textIndent.line,textIndent.col,rule)}var textIndent,direction,rule=this;parser.addListener("startrule",startRule),parser.addListener("startfontface",startRule),parser.addListener("property",function(event){var name=(""+event.property).toLowerCase(),value=event.value;"text-indent"===name&&-99>value.parts[0].value?textIndent=event.property:"direction"===name&&"ltr"==""+value&&(direction="ltr")}),parser.addListener("endrule",endRule),parser.addListener("endfontface",endRule)}}),CSSLint.addRule({id:"underscore-property-hack",name:"Disallow properties with an underscore prefix",desc:"Checks for the underscore property hack (targets IE6)",browsers:"All",init:function(parser,reporter){var rule=this;parser.addListener("property",function(event){var property=event.property;"_"===property.hack&&reporter.report("Property with underscore prefix found.",event.property.line,event.property.col,rule)})}}),CSSLint.addRule({id:"unique-headings",name:"Headings should only be defined once",desc:"Headings should be defined only once.",browsers:"All",init:function(parser,reporter){var rule=this,headings={h1:0,h2:0,h3:0,h4:0,h5:0,h6:0};parser.addListener("startrule",function(event){var selector,part,pseudo,i,j,selectors=event.selectors;for(i=0;selectors.length>i;i++)if(selector=selectors[i],part=selector.parts[selector.parts.length-1],part.elementName&&/(h[1-6])/i.test(""+part.elementName)){for(j=0;part.modifiers.length>j;j++)if("pseudo"===part.modifiers[j].type){pseudo=!0;break}pseudo||(headings[RegExp.$1]++,headings[RegExp.$1]>1&&reporter.report("Heading ("+part.elementName+") has already been defined.",part.line,part.col,rule))}}),parser.addListener("endstylesheet",function(){var prop,messages=[];for(prop in headings)headings.hasOwnProperty(prop)&&headings[prop]>1&&messages.push(headings[prop]+" "+prop+"s");messages.length&&reporter.rollupWarn("You have "+messages.join(", ")+" defined in this stylesheet.",rule)})}}),CSSLint.addRule({id:"universal-selector",name:"Disallow universal selector",desc:"The universal selector (*) is known to be slow.",browsers:"All",init:function(parser,reporter){var rule=this;parser.addListener("startrule",function(event){var selector,part,i,selectors=event.selectors;for(i=0;selectors.length>i;i++)selector=selectors[i],part=selector.parts[selector.parts.length-1],"*"===part.elementName&&reporter.report(rule.desc,part.line,part.col,rule)})}}),CSSLint.addRule({id:"unqualified-attributes",name:"Disallow unqualified attribute selectors",desc:"Unqualified attribute selectors are known to be slow.",browsers:"All",init:function(parser,reporter){var rule=this;parser.addListener("startrule",function(event){var selector,part,modifier,i,k,selectors=event.selectors;for(i=0;selectors.length>i;i++)if(selector=selectors[i],part=selector.parts[selector.parts.length-1],part.type===parser.SELECTOR_PART_TYPE)for(k=0;part.modifiers.length>k;k++)modifier=part.modifiers[k],"attribute"!==modifier.type||part.elementName&&"*"!==part.elementName||reporter.report(rule.desc,part.line,part.col,rule)})}}),CSSLint.addRule({id:"vendor-prefix",name:"Require standard property with vendor prefix",desc:"When using a vendor-prefixed property, make sure to include the standard one.",browsers:"All",init:function(parser,reporter){function startRule(){properties={},num=1}function endRule(){var prop,i,len,needed,actual,needsStandard=[];for(prop in properties)propertiesToCheck[prop]&&needsStandard.push({actual:prop,needed:propertiesToCheck[prop]});for(i=0,len=needsStandard.length;len>i;i++)needed=needsStandard[i].needed,actual=needsStandard[i].actual,properties[needed]?properties[needed][0].pos<properties[actual][0].pos&&reporter.report("Standard property \'"+needed+"\' should come after vendor-prefixed property \'"+actual+"\'.",properties[actual][0].name.line,properties[actual][0].name.col,rule):reporter.report("Missing standard property \'"+needed+"\' to go along with \'"+actual+"\'.",properties[actual][0].name.line,properties[actual][0].name.col,rule)}var properties,num,rule=this,propertiesToCheck={"-webkit-border-radius":"border-radius","-webkit-border-top-left-radius":"border-top-left-radius","-webkit-border-top-right-radius":"border-top-right-radius","-webkit-border-bottom-left-radius":"border-bottom-left-radius","-webkit-border-bottom-right-radius":"border-bottom-right-radius","-o-border-radius":"border-radius","-o-border-top-left-radius":"border-top-left-radius","-o-border-top-right-radius":"border-top-right-radius","-o-border-bottom-left-radius":"border-bottom-left-radius","-o-border-bottom-right-radius":"border-bottom-right-radius","-moz-border-radius":"border-radius","-moz-border-radius-topleft":"border-top-left-radius","-moz-border-radius-topright":"border-top-right-radius","-moz-border-radius-bottomleft":"border-bottom-left-radius","-moz-border-radius-bottomright":"border-bottom-right-radius","-moz-column-count":"column-count","-webkit-column-count":"column-count","-moz-column-gap":"column-gap","-webkit-column-gap":"column-gap","-moz-column-rule":"column-rule","-webkit-column-rule":"column-rule","-moz-column-rule-style":"column-rule-style","-webkit-column-rule-style":"column-rule-style","-moz-column-rule-color":"column-rule-color","-webkit-column-rule-color":"column-rule-color","-moz-column-rule-width":"column-rule-width","-webkit-column-rule-width":"column-rule-width","-moz-column-width":"column-width","-webkit-column-width":"column-width","-webkit-column-span":"column-span","-webkit-columns":"columns","-moz-box-shadow":"box-shadow","-webkit-box-shadow":"box-shadow","-moz-transform":"transform","-webkit-transform":"transform","-o-transform":"transform","-ms-transform":"transform","-moz-transform-origin":"transform-origin","-webkit-transform-origin":"transform-origin","-o-transform-origin":"transform-origin","-ms-transform-origin":"transform-origin","-moz-box-sizing":"box-sizing","-webkit-box-sizing":"box-sizing"};parser.addListener("startrule",startRule),parser.addListener("startfontface",startRule),parser.addListener("startpage",startRule),parser.addListener("startpagemargin",startRule),parser.addListener("startkeyframerule",startRule),parser.addListener("property",function(event){var name=event.property.text.toLowerCase();properties[name]||(properties[name]=[]),properties[name].push({name:event.property,value:event.value,pos:num++})}),parser.addListener("endrule",endRule),parser.addListener("endfontface",endRule),parser.addListener("endpage",endRule),parser.addListener("endpagemargin",endRule),parser.addListener("endkeyframerule",endRule)}}),CSSLint.addRule({id:"zero-units",name:"Disallow units for 0 values",desc:"You don\'t need to specify units when a value is 0.",browsers:"All",init:function(parser,reporter){var rule=this;parser.addListener("property",function(event){for(var parts=event.value.parts,i=0,len=parts.length;len>i;
8)!parts[i].units&&"percentage"!==parts[i].type||0!==parts[i].value||"time"===parts[i].type||reporter.report("Values of 0 shouldn\'t have units specified.",parts[i].line,parts[i].col,rule),i++})}}),function(){var xmlEscape=function(str){return str&&str.constructor===String?str.replace(/[\\"&><]/g,function(match){switch(match){case\'"\':return""";case"&":return"&";case"<":return"<";case">":return">"}}):""};CSSLint.addFormatter({id:"checkstyle-xml",name:"Checkstyle XML format",startFormat:function(){return\'<?xml version="1.0" encoding="utf-8"?><checkstyle>\'},endFormat:function(){return"</checkstyle>"},readError:function(filename,message){return\'<file name="\'+xmlEscape(filename)+\'"><error line="0" column="0" severty="error" message="\'+xmlEscape(message)+\'"></error></file>\'},formatResults:function(results,filename){var messages=results.messages,output=[],generateSource=function(rule){return rule&&"name"in rule?"net.csslint."+rule.name.replace(/\\s/g,""):""};return messages.length>0&&(output.push(\'<file name="\'+filename+\'">\'),CSSLint.Util.forEach(messages,function(message){message.rollup||output.push(\'<error line="\'+message.line+\'" column="\'+message.col+\'" severity="\'+message.type+\'"\'+\' message="\'+xmlEscape(message.message)+\'" source="\'+generateSource(message.rule)+\'"/>\')}),output.push("</file>")),output.join("")}})}(),CSSLint.addFormatter({id:"compact",name:"Compact, \'porcelain\' format",startFormat:function(){return""},endFormat:function(){return""},formatResults:function(results,filename,options){var messages=results.messages,output="";options=options||{};var capitalize=function(str){return str.charAt(0).toUpperCase()+str.slice(1)};return 0===messages.length?options.quiet?"":filename+": Lint Free!":(CSSLint.Util.forEach(messages,function(message){output+=message.rollup?filename+": "+capitalize(message.type)+" - "+message.message+"\\n":filename+": "+"line "+message.line+", col "+message.col+", "+capitalize(message.type)+" - "+message.message+" ("+message.rule.id+")\\n"}),output)}}),CSSLint.addFormatter({id:"csslint-xml",name:"CSSLint XML format",startFormat:function(){return\'<?xml version="1.0" encoding="utf-8"?><csslint>\'},endFormat:function(){return"</csslint>"},formatResults:function(results,filename){var messages=results.messages,output=[],escapeSpecialCharacters=function(str){return str&&str.constructor===String?str.replace(/\\"/g,"\'").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"):""};return messages.length>0&&(output.push(\'<file name="\'+filename+\'">\'),CSSLint.Util.forEach(messages,function(message){message.rollup?output.push(\'<issue severity="\'+message.type+\'" reason="\'+escapeSpecialCharacters(message.message)+\'" evidence="\'+escapeSpecialCharacters(message.evidence)+\'"/>\'):output.push(\'<issue line="\'+message.line+\'" char="\'+message.col+\'" severity="\'+message.type+\'"\'+\' reason="\'+escapeSpecialCharacters(message.message)+\'" evidence="\'+escapeSpecialCharacters(message.evidence)+\'"/>\')}),output.push("</file>")),output.join("")}}),CSSLint.addFormatter({id:"junit-xml",name:"JUNIT XML format",startFormat:function(){return\'<?xml version="1.0" encoding="utf-8"?><testsuites>\'},endFormat:function(){return"</testsuites>"},formatResults:function(results,filename){var messages=results.messages,output=[],tests={error:0,failure:0},generateSource=function(rule){return rule&&"name"in rule?"net.csslint."+rule.name.replace(/\\s/g,""):""},escapeSpecialCharacters=function(str){return str&&str.constructor===String?str.replace(/\\"/g,"\'").replace(/</g,"<").replace(/>/g,">"):""};return messages.length>0&&(messages.forEach(function(message){var type="warning"===message.type?"error":message.type;message.rollup||(output.push(\'<testcase time="0" name="\'+generateSource(message.rule)+\'">\'),output.push("<"+type+\' message="\'+escapeSpecialCharacters(message.message)+\'"><![CDATA[\'+message.line+":"+message.col+":"+escapeSpecialCharacters(message.evidence)+"]]></"+type+">"),output.push("</testcase>"),tests[type]+=1)}),output.unshift(\'<testsuite time="0" tests="\'+messages.length+\'" skipped="0" errors="\'+tests.error+\'" failures="\'+tests.failure+\'" package="net.csslint" name="\'+filename+\'">\'),output.push("</testsuite>")),output.join("")}}),CSSLint.addFormatter({id:"lint-xml",name:"Lint XML format",startFormat:function(){return\'<?xml version="1.0" encoding="utf-8"?><lint>\'},endFormat:function(){return"</lint>"},formatResults:function(results,filename){var messages=results.messages,output=[],escapeSpecialCharacters=function(str){return str&&str.constructor===String?str.replace(/\\"/g,"\'").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"):""};return messages.length>0&&(output.push(\'<file name="\'+filename+\'">\'),CSSLint.Util.forEach(messages,function(message){message.rollup?output.push(\'<issue severity="\'+message.type+\'" reason="\'+escapeSpecialCharacters(message.message)+\'" evidence="\'+escapeSpecialCharacters(message.evidence)+\'"/>\'):output.push(\'<issue line="\'+message.line+\'" char="\'+message.col+\'" severity="\'+message.type+\'"\'+\' reason="\'+escapeSpecialCharacters(message.message)+\'" evidence="\'+escapeSpecialCharacters(message.evidence)+\'"/>\')}),output.push("</file>")),output.join("")}}),CSSLint.addFormatter({id:"text",name:"Plain Text",startFormat:function(){return""},endFormat:function(){return""},formatResults:function(results,filename,options){var messages=results.messages,output="";if(options=options||{},0===messages.length)return options.quiet?"":"\\n\\ncsslint: No errors in "+filename+".";output="\\n\\ncsslint: There ",output+=1===messages.length?"is 1 problem":"are "+messages.length+" problems",output+=" in "+filename+".";var pos=filename.lastIndexOf("/"),shortFilename=filename;return-1===pos&&(pos=filename.lastIndexOf("\\\\")),pos>-1&&(shortFilename=filename.substring(pos+1)),CSSLint.Util.forEach(messages,function(message,i){output=output+"\\n\\n"+shortFilename,message.rollup?(output+="\\n"+(i+1)+": "+message.type,output+="\\n"+message.message):(output+="\\n"+(i+1)+": "+message.type+" at line "+message.line+", col "+message.col,output+="\\n"+message.message,output+="\\n"+message.evidence)}),output}}),module.exports.CSSLint=CSSLint}),ace.define("ace/mode/css_worker",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/worker/mirror","ace/mode/css/csslint"],function(acequire,exports){"use strict";var oop=acequire("../lib/oop"),lang=acequire("../lib/lang"),Mirror=acequire("../wor
8ker/mirror").Mirror,CSSLint=acequire("./css/csslint").CSSLint,Worker=exports.Worker=function(sender){Mirror.call(this,sender),this.setTimeout(400),this.ruleset=null,this.setDisabledRules("ids|order-alphabetical"),this.setInfoRules("adjoining-classes|qualified-headings|zero-units|gradients|import|outline-none|vendor-prefix")};oop.inherits(Worker,Mirror),function(){this.setInfoRules=function(ruleNames){"string"==typeof ruleNames&&(ruleNames=ruleNames.split("|")),this.infoRules=lang.arrayToMap(ruleNames),this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.setDisabledRules=function(ruleNames){if(ruleNames){"string"==typeof ruleNames&&(ruleNames=ruleNames.split("|"));\nvar all={};CSSLint.getRules().forEach(function(x){all[x.id]=!0}),ruleNames.forEach(function(x){delete all[x]}),this.ruleset=all}else this.ruleset=null;this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.onUpdate=function(){var value=this.doc.getValue();if(!value)return this.sender.emit("annotate",[]);var infoRules=this.infoRules,result=CSSLint.verify(value,this.ruleset);this.sender.emit("annotate",result.messages.map(function(msg){return{row:msg.line-1,column:msg.col-1,text:msg.message,type:infoRules[msg.rule.id]?"info":msg.type,rule:msg.rule.name}}))}}.call(Worker.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,"sentinel",{}),"sentinel"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError("Function.prototype.bind called on incompatible "+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,"__defineGetter__"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,"XXX"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return"[object Array]"==_toString(obj)});var boxedString=Object("a"),splitString="a"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitStr
8ing&&"[object String]"==_toString(this)?this.split(""):object,thisp=arguments[1],i=-1,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=[],thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError("reduce of empty array with no initial value")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError("reduceRight of empty array with no initial value")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(object,property){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleStr
8ing=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if("object"!=typeof prototype)throw new TypeError("typeof prototype["+typeof prototype+"] != \'object\'");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom="undefined"==typeof document||doesDefinePropertyWork(document.createElement("div"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR="Property description must be an object: ",ERR_NON_OBJECT_TARGET="Object.defineProperty called on non-object: ",ERR_ACCESSORS_NOT_SUPPORTED="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(object,property,descriptor){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if("object"!=typeof descriptor&&"function"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,"value"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,"get")&&defineGetter(object,property,descriptor.get),owns(descriptor,"set")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return"function"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name="";owns(object,name);)name+="?";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError("Object.keys called on a non-object");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws="\t\\n\v\\f\\r  áá ââââââ
ââââââ¯âã\\u2028\\u2029\ufeff";if(!String.prototype.trim||ws.trim()){ws="["+ws+"]";var trimBeginRegexp=RegExp("^"+ws+ws+"*"),trimEndRegexp=RegExp(ws+ws+"*$");String.prototype.trim=function(){return(this+"").replace(trimBeginRegexp,"").replace(trimEndRegexp,"")}}var toObject=function(o){if(null==o)throw new TypeError("can\'t convert "+o+" to object");return Object(o)}});'},function(e,t){e.exports.id="ace/mode/html_worker",e.exports.src='"no use strict";(function(window){function resolveModuleId(id,paths){for(var testPath=id,tail="";testPath;){var alias=paths[testPath];if("string"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,"/")+(tail||alias.main||alias.name);if(alias===!1)return"";var i=testPath.lastIndexOf("/");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:"error",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf("!")){var chunks=moduleName.split("!");return window.normalizeModule(parentId,chunks[0])+"!"+window.normalizeModule(parentId,chunks[1])}if("."==moduleName.charAt(0)){var base=parentId.split("/").slice(0,-1).join("/");for(moduleName=(base?base+"/":"")+moduleName;-1!==moduleName.indexOf(".")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,"").replace(/\\/\\.\\//,"/").replace(/[^\\/]+\\/\\.\\.\\//,"")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error("worker.js acequire() accepts only (parentId, id) as arguments");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports
8),module.exports;if(!window.acequire.tlns)return console.log("unable to load "+id);var path=resolveModuleId(id,window.acequire.tlns);return".js"!=path.slice(-3)&&(path+=".js"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,"string"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),"function"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=["require","exports","module"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case"require":return req;case"exports":return module.exports;case"module":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire("ace/lib/event_emitter").EventEmitter,oop=window.acequire("ace/lib/oop"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:"call",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:"event",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error("Unknown command:"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire("ace/lib/es5-shim"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}})(this),ace.define("ace/lib/oop",["require","exports","module"],function(acequire,exports){"use strict";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define("ace/lib/lang",["require","exports","module"],function(acequire,exports){"use strict";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split("").reverse().join("")},exports.stringRepeat=function(string,count){for(var result="";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,"")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,"")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&"object"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if("object"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if("[object Object]"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,"\\\\$1")},exports.escapeHTML=function(str){return str.replace(/&/g,"&").replace(/"/g,""").replace(/\'/g,"'").replace(/</g,"<")},exports.getMatchOffsets=function(string,regExp){var matches=[];return string.replace(regExp,function(str){matches.push({offset:arguments[arguments.length-2],length:str.length})}),matches},exports.deferredCall=function(fcn){var timer=null,callback=function(){timer=null,fcn()},deferred=function(timeout){return deferred.cancel(),timer=setTimeout(callback,timeout||0),deferred};return deferred.schedule=deferred,deferred.call=function(){return this.cancel(),fcn(),deferred},deferred.cancel=function(){return clearTimeout(timer),timer=null,deferred},deferred.isPending=function(){return timer},deferred},exports.delayedCall=function(fcn,defaultTimeout){var timer=null,callback=function(){timer=null,fcn()},_self=function(timeout){null==timer&&(timer=setTimeout(callback,timeout||defaultTimeout))};return _self.delay=function(timeout){timer&&clearTimeout(timer),timer=setTimeout(callback,timeout||defaultTimeout)},_self.schedule=_self,_self.call=function(){this.cancel(),fcn()},_self.cancel=function(){timer&&clearTimeout(timer),timer=null},_self.isPending=function(){return timer},_self
vendor: 18,820 bytes, line 8
8}}),ace.define("ace/range",["require","exports","module"],function(acequire,exports){"use strict";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){"object"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){"object"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define("ace/apply_delta",["require","exports","module"],function(acequire,exports){"use strict";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||"";switch(delta.action){case"insert":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case"remove":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(acequire,exports){"use strict";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){"object"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?"unshift":"push"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),EventEmitter=acequire("./lib/event_emitter").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.column<point2.column;return point1.row<point2.row||point1.row==point2.row&&bColIsAfter}function $getTransformedPoint(delta,point,moveIfEqual){var deltaIsInsert="insert"==delta.action,deltaRowShift=(deltaIsInsert?1:-1)*(delta.end.row-delta.start.row),deltaColShift=(deltaIsInsert?1:-1)*(delta.end.column-delta.start.column),deltaStart=delta.start,deltaEnd=deltaIsInsert?deltaStart:delta.end;return $pointsInOrder(point,deltaStart,moveIfEqual)?{row:point.row,column:point.column}:$pointsInOrder(deltaEnd,point,!moveIfEqual)?{row:point.row+deltaRowShift,column:point.column+(point.row==deltaEnd.row?deltaColShift:0)}:{row:deltaStart.row,column:deltaStart.column}}oop.implement(this,EventEmitter),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(delta){if(!(delta.start.row==delta.end.row&&delta.start.row!=this.row||delta.start.row>this.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal("change",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),applyDelta=acequire("./apply_delta").applyDelta,EventEmitter=acequire("./lib/event_emitter").EventEmitter,Range=acequire("./range").Range,Anchor=acequire("./anchor").Anchor,Document=function(textOrLines){this.$lines=[""],0===textOrLines.length?this.$lines=[""]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==="aaa".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,"\\n").split("\\n")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:"\\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\\r\\n";case"unix":return"\\n";default:return this.$autoNewLine||"\\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return"\\r\\n"==text||"\\r"==text||"\\n"==text},this.getLine=function(row){return this.$lines[row]||""},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||"").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, [\'\', \'\']) instead."),this.insertMergedLines(position,["",""])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:"insert",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([""]),column=0):(lines=[""].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:"insert",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:"remove",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:"remove",lines:["",""]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert="insert"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal("change",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(""),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:"insert"==delta.action?"remove":"insert",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define("ace/
8worker/mirror",["require","exports","module","ace/range","ace/document","ace/lib/lang"],function(acequire,exports){"use strict";acequire("../range").Range;var Document=acequire("../document").Document,lang=acequire("../lib/lang"),Mirror=exports.Mirror=function(sender){this.sender=sender;var doc=this.doc=new Document(""),deferredUpdate=this.deferredUpdate=lang.delayedCall(this.onUpdate.bind(this)),_self=this;sender.on("change",function(e){var data=e.data;if(data[0].start)doc.applyDeltas(data);else for(var i=0;data.length>i;i+=2){if(Array.isArray(data[i+1]))var d={action:"insert",start:data[i],lines:data[i+1]};else var d={action:"remove",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define("ace/mode/html/saxparser",["require","exports","module"],function(acequire,exports,module){module.exports=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a="function"==typeof acequire&&acequire;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw Error("Cannot find module \'"+o+"\'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof acequire&&acequire,o=0;r.length>o;o++)s(r[o]);return s}({1:[function(_dereq_,module,exports){function isScopeMarker(node){return"http://www.w3.org/1999/xhtml"===node.namespaceURI?"applet"===node.localName||"caption"===node.localName||"marquee"===node.localName||"object"===node.localName||"table"===node.localName||"td"===node.localName||"th"===node.localName:"http://www.w3.org/1998/Math/MathML"===node.namespaceURI?"mi"===node.localName||"mo"===node.localName||"mn"===node.localName||"ms"===node.localName||"mtext"===node.localName||"annotation-xml"===node.localName:"http://www.w3.org/2000/svg"===node.namespaceURI?"foreignObject"===node.localName||"desc"===node.localName||"title"===node.localName:void 0}function isListItemScopeMarker(node){return isScopeMarker(node)||"http://www.w3.org/1999/xhtml"===node.namespaceURI&&"ol"===node.localName||"http://www.w3.org/1999/xhtml"===node.namespaceURI&&"ul"===node.localName}function isTableScopeMarker(node){return"http://www.w3.org/1999/xhtml"===node.namespaceURI&&"table"===node.localName||"http://www.w3.org/1999/xhtml"===node.namespaceURI&&"html"===node.localName}function isTableBodyScopeMarker(node){return"http://www.w3.org/1999/xhtml"===node.namespaceURI&&"tbody"===node.localName||"http://www.w3.org/1999/xhtml"===node.namespaceURI&&"tfoot"===node.localName||"http://www.w3.org/1999/xhtml"===node.namespaceURI&&"thead"===node.localName||"http://www.w3.org/1999/xhtml"===node.namespaceURI&&"html"===node.localName}function isTableRowScopeMarker(node){return"http://www.w3.org/1999/xhtml"===node.namespaceURI&&"tr"===node.localName||"http://www.w3.org/1999/xhtml"===node.namespaceURI&&"html"===node.localName}function isButtonScopeMarker(node){return isScopeMarker(node)||"http://www.w3.org/1999/xhtml"===node.namespaceURI&&"button"===node.localName}function isSelectScopeMarker(node){return!("http://www.w3.org/1999/xhtml"===node.namespaceURI&&"optgroup"===node.localName||"http://www.w3.org/1999/xhtml"===node.namespaceURI&&"option"===node.localName)}function ElementStack(){this.elements=[],this.rootNode=null,this.headElement=null,this.bodyElement=null}ElementStack.prototype._inScope=function(localName,isMarker){for(var i=this.elements.length-1;i>=0;i--){var node=this.elements[i];if(node.localName===localName)return!0;if(isMarker(node))return!1}},ElementStack.prototype.push=function(item){this.elements.push(item)},ElementStack.prototype.pushHtmlElement=function(item){this.rootNode=item.node,this.push(item)},ElementStack.prototype.pushHeadElement=function(item){this.headElement=item.node,this.push(item)},ElementStack.prototype.pushBodyElement=function(item){this.bodyElement=item.node,this.push(item)},ElementStack.prototype.pop=function(){return this.elements.pop()},ElementStack.prototype.remove=function(item){this.elements.splice(this.elements.indexOf(item),1)},ElementStack.prototype.popUntilPopped=function(localName){var element;do element=this.pop();while(element.localName!=localName)},ElementStack.prototype.popUntilTableScopeMarker=function(){for(;!isTableScopeMarker(this.top);)this.pop()},ElementStack.prototype.popUntilTableBodyScopeMarker=function(){for(;!isTableBodyScopeMarker(this.top);)this.pop()},ElementStack.prototype.popUntilTableRowScopeMarker=function(){for(;!isTableRowScopeMarker(this.top);)this.pop()},ElementStack.prototype.item=function(index){return this.elements[index]},ElementStack.prototype.contains=function(element){return-1!==this.elements.indexOf(element)},ElementStack.prototype.inScope=function(localName){return this._inScope(localName,isScopeMarker)},ElementStack.prototype.inListItemScope=function(localName){return this._inScope(localName,isListItemScopeMarker)},ElementStack.prototype.inTableScope=function(localName){return this._inScope(localName,isTableScopeMarker)},ElementStack.prototype.inButtonScope=function(localName){return this._inScope(localName,isButtonScopeMarker)},ElementStack.prototype.inSelectScope=function(localName){return this._inScope(localName,isSelectScopeMarker)},ElementStack.prototype.hasNumberedHeaderElementInScope=function(){for(var i=this.elements.length-1;i>=0;i--){var node=this.elements[i];if(node.isNumberedHeader())return!0;
8if(isScopeMarker(node))return!1}},ElementStack.prototype.furthestBlockForFormattingElement=function(element){for(var furthestBlock=null,i=this.elements.length-1;i>=0;i--){var node=this.elements[i];\nif(node.node===element)break;node.isSpecial()&&(furthestBlock=node)}return furthestBlock},ElementStack.prototype.findIndex=function(localName){for(var i=this.elements.length-1;i>=0;i--)if(this.elements[i].localName==localName)return i;return-1},ElementStack.prototype.remove_openElements_until=function(callback){for(var element,finished=!1;!finished;)element=this.elements.pop(),finished=callback(element);return element},Object.defineProperty(ElementStack.prototype,"top",{get:function(){return this.elements[this.elements.length-1]}}),Object.defineProperty(ElementStack.prototype,"length",{get:function(){return this.elements.length}}),exports.ElementStack=ElementStack},{}],2:[function(_dereq_,module,exports){function isAlphaNumeric(c){return c>="0"&&"9">=c||c>="a"&&"z">=c||c>="A"&&"Z">=c}function isHexDigit(c){return c>="0"&&"9">=c||c>="a"&&"f">=c||c>="A"&&"F">=c}function isDecimalDigit(c){return c>="0"&&"9">=c}var entities=_dereq_("html5-entities"),InputStream=_dereq_("./InputStream").InputStream,namedEntityPrefixes={};Object.keys(entities).forEach(function(entityKey){for(var i=0;entityKey.length>i;i++)namedEntityPrefixes[entityKey.substring(0,i+1)]=!0});var EntityParser={};EntityParser.consumeEntity=function(buffer,tokenizer,additionalAllowedCharacter){var decodedCharacter="",consumedCharacters="",ch=buffer.char();if(ch===InputStream.EOF)return!1;if(consumedCharacters+=ch,"\t"==ch||"\\n"==ch||"\v"==ch||" "==ch||"<"==ch||"&"==ch)return buffer.unget(consumedCharacters),!1;if(additionalAllowedCharacter===ch)return buffer.unget(consumedCharacters),!1;if("#"==ch){if(ch=buffer.shift(1),ch===InputStream.EOF)return tokenizer._parseError("expected-numeric-entity-but-got-eof"),buffer.unget(consumedCharacters),!1;consumedCharacters+=ch;var radix=10,isDigit=isDecimalDigit;if("x"==ch||"X"==ch){if(radix=16,isDigit=isHexDigit,ch=buffer.shift(1),ch===InputStream.EOF)return tokenizer._parseError("expected-numeric-entity-but-got-eof"),buffer.unget(consumedCharacters),!1;consumedCharacters+=ch}if(isDigit(ch)){for(var code="";ch!==InputStream.EOF&&isDigit(ch);)code+=ch,ch=buffer.char();code=parseInt(code,radix);var replacement=this.replaceEntityNumbers(code);if(replacement&&(tokenizer._parseError("invalid-numeric-entity-replaced"),code=replacement),code>65535&&1114111>=code){code-=65536;var first=((1047552&code)>>10)+55296,second=(1023&code)+56320;decodedCharacter=String.fromCharCode(first,second)}else decodedCharacter=String.fromCharCode(code);return";"!==ch&&(tokenizer._parseError("numeric-entity-without-semicolon"),buffer.unget(ch)),decodedCharacter}return buffer.unget(consumedCharacters),tokenizer._parseError("expected-numeric-entity"),!1}if(ch>="a"&&"z">=ch||ch>="A"&&"Z">=ch){for(var mostRecentMatch="";namedEntityPrefixes[consumedCharacters]&&(entities[consumedCharacters]&&(mostRecentMatch=consumedCharacters),";"!=ch)&&(ch=buffer.char(),ch!==InputStream.EOF);)consumedCharacters+=ch;return mostRecentMatch?(decodedCharacter=entities[mostRecentMatch],";"===ch||!additionalAllowedCharacter||!isAlphaNumeric(ch)&&"="!==ch?(consumedCharacters.length>mostRecentMatch.length&&buffer.unget(consumedCharacters.substring(mostRecentMatch.length)),";"!==ch&&tokenizer._parseError("named-entity-without-semicolon"),decodedCharacter):(buffer.unget(consumedCharacters),!1)):(tokenizer._parseError("expected-named-entity"),buffer.unget(consumedCharacters),!1)}},EntityParser.replaceEntityNumbers=function(c){switch(c){case 0:return 65533;case 19:return 16;case 128:return 8364;case 129:return 129;case 130:return 8218;case 131:return 402;case 132:return 8222;case 133:return 8230;case 134:return 8224;case 135:return 8225;case 136:return 710;case 137:return 8240;case 138:return 352;case 139:return 8249;case 140:return 338;case 141:return 141;case 142:return 381;case 143:return 143;case 144:return 144;case 145:return 8216;case 146:return 8217;case 147:return 8220;case 148:return 8221;case 149:return 8226;case 150:return 8211;case 151:return 8212;case 152:return 732;case 153:return 8482;case 154:return 353;case 155:return 8250;case 156:return 339;case 157:return 157;case 158:return 382;case 159:return 376;default:if(c>=55296&&57343>=c||c>1114111)return 65533;if(c>=1&&8>=c||c>=14&&31>=c||c>=127&&159>=c||c>=64976&&65007>=c||11==c||65534==c||131070==c||3145726==c||196607==c||262142==c||262143==c||327678==c||327679==c||393214==c||393215==c||458750==c||458751==c||524286==c||524287==c||589822==c||589823==c||655358==c||655359==c||720894==c||720895==c||786430==c||786431==c||851966==c||851967==c||917502==c||917503==c||983038==c||983039==c||1048574==c||1048575==c||1114110==c||1114111==c)return c}},exports.EntityParser=EntityParser},{"./InputStream":3,"html5-entities":12}],3:[function(_dereq_,module,exports){function InputStream(){this.data="",this.start=0,this.committed=0,this.eof=!1,this.lastLocation={line:0,column:0}}InputStream.EOF=-1,InputStream.DRAIN=-2,InputStream.prototype={slice:function(){if(this.start>=this.data.length){if(!this.eof)throw InputStream.DRAIN;return InputStream.EOF}return this.data.slice(this.start,this.data.length)},"char":function(){if(!this.eof&&this.start>=this.data.length-1)throw InputStream.DRAIN;
8if(this.start>=this.data.length)return InputStream.EOF;var ch=this.data[this.start++];return"\\r"===ch&&(ch="\\n"),ch},advance:function(amount){if(this.start+=amount,this.start>=this.data.length){if(!this.eof)throw InputStream.DRAIN;return InputStream.EOF}this.committed>this.data.length/2&&(this.lastLocation=this.location(),this.data=this.data.slice(this.committed),this.start=this.start-this.committed,this.committed=0)},matchWhile:function(re){if(this.eof&&this.start>=this.data.length)return"";var r=RegExp("^"+re+"+"),m=r.exec(this.slice());if(m){if(!this.eof&&m[0].length==this.data.length-this.start)throw InputStream.DRAIN;return this.advance(m[0].length),m[0]}return""},matchUntil:function(re){var m,s;if(s=this.slice(),s===InputStream.EOF)return"";if(m=RegExp(re+(this.eof?"|$":"")).exec(s)){var t=this.data.slice(this.start,this.start+m.index);return this.advance(m.index),t.replace(/\\r/g,"\\n").replace(/\\n{2,}/g,"\\n")}throw InputStream.DRAIN},append:function(data){this.data+=data},shift:function(n){if(!this.eof&&this.start+n>=this.data.length)throw InputStream.DRAIN;if(this.eof&&this.start>=this.data.length)return InputStream.EOF;var d=""+this.data.slice(this.start,this.start+n);return this.advance(Math.min(n,this.data.length-this.start)),d},peek:function(n){if(!this.eof&&this.start+n>=this.data.length)throw InputStream.DRAIN;return this.eof&&this.start>=this.data.length?InputStream.EOF:""+this.data.slice(this.start,Math.min(this.start+n,this.data.length))},length:function(){return this.data.length-this.start-1},unget:function(d){d!==InputStream.EOF&&(this.start-=d.length)},undo:function(){this.start=this.committed},commit:function(){this.committed=this.start},location:function(){var lastLine=this.lastLocation.line,lastColumn=this.lastLocation.column,read=this.data.slice(0,this.committed),newlines=read.match(/\\n/g),line=newlines?lastLine+newlines.length:lastLine,column=newlines?read.length-read.lastIndexOf("\\n")-1:lastColumn+read.length;return{line:line,column:column}}},exports.InputStream=InputStream},{}],4:[function(_dereq_,module,exports){function StackItem(namespaceURI,localName,attributes,node){this.localName=localName,this.namespaceURI=namespaceURI,this.attributes=attributes,this.node=node}function getAttribute(item,name){for(var i=0;item.attributes.length>i;i++)if(item.attributes[i].nodeName==name)return item.attributes[i].nodeValue;return null}var SpecialElements={"http://www.w3.org/1999/xhtml":["address","applet","area","article","aside","base","basefont","bgsound","blockquote","body","br","button","caption","center","col","colgroup","dd","details","dir","div","dl","dt","embed","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","iframe","img","input","isindex","li","link","listing","main","marquee","menu","menuitem","meta","nav","noembed","noframes","noscript","object","ol","p","param","plaintext","pre","script","section","select","source","style","summary","table","tbody","td","textarea","tfoot","th","thead","title","tr","track","ul","wbr","xmp"],"http://www.w3.org/1998/Math/MathML":["mi","mo","mn","ms","mtext","annotation-xml"],"http://www.w3.org/2000/svg":["foreignObject","desc","title"]};StackItem.prototype.isSpecial=function(){return this.namespaceURI in SpecialElements&&SpecialElements[this.namespaceURI].indexOf(this.localName)>-1},StackItem.prototype.isFosterParenting=function(){return"http://www.w3.org/1999/xhtml"===this.namespaceURI?"table"===this.localName||"tbody"===this.localName||"tfoot"===this.localName||"thead"===this.localName||"tr"===this.localName:!1},StackItem.prototype.isNumberedHeader=function(){return"http://www.w3.org/1999/xhtml"===this.namespaceURI?"h1"===this.localName||"h2"===this.localName||"h3"===this.localName||"h4"===this.localName||"h5"===this.localName||"h6"===this.localName:!1},StackItem.prototype.isForeign=function(){return"http://www.w3.org/1999/xhtml"!=this.namespaceURI},StackItem.prototype.isHtmlIntegrationPoint=function(){if("http://www.w3.org/1998/Math/MathML"===this.namespaceURI){if("annotation-xml"!==this.localName)return!1;var encoding=getAttribute(this,"encoding");return encoding?(encoding=encoding.toLowerCase(),"text/html"===encoding||"application/xhtml+xml"===encoding):!1}return"http://www.w3.org/2000/svg"===this.namespaceURI?"foreignObject"===this.localName||"desc"===this.localName||"title"===this.localName:!1},StackItem.prototype.isMathMLTextIntegrationPoint=function(){return"http://www.w3.org/1998/Math/MathML"===this.namespaceURI?"mi"===this.localName||"mo"===this.localName||"mn"===this.localName||"ms"===this.localName||"mtext"===this.localName:!1},exports.StackItem=StackItem},{}],5:[function(_dereq_,module,exports){function isWhitespace(c){return" "===c||"\\n"===c||"\t"===c||"\\r"===c||"\\f"===c}function isAlpha(c){return c>="A"&&"Z">=c||c>="a"&&"z">=c}function Tokenizer(tokenHandler){this._tokenHandler=tokenHandler,this._state=Tokenizer.DATA,this._inputStream=new InputStream,this._currentToken=null,this._temporaryBuffer="",this._additionalAllowedCharacter=""}var InputStream=_dereq_("./InputStream").InputStream,EntityParser=_dereq_("./EntityParser").EntityParser;Tokenizer.prototype._parseError=function(code,args){this._tokenHandler.parseError(code,args)},Tokenizer.prototype._emitToken=function(token){if("StartTag"===token.type)for(var i=1;token.data.length>i;i++)token.data[i].nodeName||token.data.splice(i--,1);else"EndTag"===token.type&&(token.selfClosing&&this._parseError("self-closing-flag-on-end-tag"),0!==token.data.length&&this._parseError("attributes-in-end-tag"));this._tokenHandler.processToken(token),"StartTag"===token.type&&token.selfClosing&&!this._tokenHandler.isSelfClosingFlagAcknowledged()&&this._parseError("non-void-element-with-trailing-solidus",{name:token.name})},Tokenizer.prototype._emitCurrentToken=function(){this._state=Tokenizer.DATA,this._emitToken(this._currentToken)},Tokenizer.prototype._currentAttribute=function(){return this._currentToken.data[this._currentToken.data.length-1]},Tokenizer.prototype.setState=function(state){this._state=state},Tokenizer.prototype.tokenize=function(source){function data_state(buffer){var data=buffer.char();if(data===InputStream.EOF)return tokenizer._emitToken({type:"EOF",data:null}),!1;if("&"===data)tokenizer.setState(character_reference_in_data_state);else if("<"===data)tokenizer.setState(tag_open_state);else if("\\0"===data)tokenizer._emitToken({type:"Characters",data:data}),buffer.commit();else{var chars=buffer.matchUntil("&|<|\\0");tokenizer._emitToken({type:"Characters",data:data+chars}),buffer.commit()}return!0}function character_reference_in_data_state(buffer){var character=EntityParser.consumeEntity(buffer,tokenizer);return tokenizer.setState(data_state),tokenizer._emitToken({type:"Characters",data:character||"&"}),!0}function rcdata_state(buffer){var data=buffer.char();if(data===InputStream.EOF)return tokenizer._emitToken({type:"EOF",data:null}),!1;if("&"===data)tokenizer.setState(character_reference_in_rcdata_state);else if("<"===data)tokenizer.setState(rcdata_less_than_sign_state);else if("\\0"===data)tokenizer._parseError("invalid-codepoint"),tokenizer._emitToken({type:"Characters",data:"�"}),buffer.commit();else{var chars=buffer.matchUntil("&|<|\\0");tokenizer._emitToken({type:"Characters",data:data+chars}),buffer.commit()}return!0}function character_reference_in_rcdata_state(buffer){var character=EntityParser.consumeEntity(buffer,tokenizer);return tokenizer.setState(rcdata_state),tokenizer._emitToken({type:"Characters",data:character||"&"}),!0}function rawtext_state(buffer){var data=buffer.char();if(data===InputStream.EOF)return tokenizer._emitToken({type:"EOF",data:null}),!1;if("<"===data)tokenizer.setState(rawtext_less_than_sign_state);else if("\\0"===data)tokenizer._parseError("invalid-codepoint"),tokenizer._emitToken({type:"Characters",data:"�"}),buffer.commit();else{var chars=buffer.matchUntil("<|\\0");tokenizer._emitToken({type:"Characters",data:data+chars})}return!0}function plaintext_state(buffer){var data=buffer.char();if(data===InputStream.EOF)return tokenizer._emitToken({type:"EOF",data:null}),!1;if("\\0"===data)tokenizer._parseError("invalid-codepoint"),tokenizer._emitToken({type:"Characters",data:"�"}),buffer.commit();else{var chars=buffer.matchUntil("\\0");tokenizer._emitToken({type:"Characters",data:data+chars})}return!0}function script_data_state(buffer){var data=buffer.char();if(data===InputStream.EOF)return tokenizer._emitToken({type:"EOF",data:null}),!1;if("<"===data)tokenizer.setState(script_data_less_than_sign_state);else if("\\0"===data)tokenizer._parseError("invalid-codepoint"),tokenizer._emitToken({type:"Characters",data:"�"}),buffer.commit();else{var chars=buffer.matchUntil("<|\\0");tokenizer._emitToken({type:"Characters",data:data+chars})}return!0}function rcdata_less_than_sign_state(buffer){var data=buffer.char();return"/"===data?(this._temporaryBuffer="",tokenizer.setState(rcdata_end_tag_open_state)):(tokenizer._emitToken({type:"Characters",data:"<"}
8),buffer.unget(data),tokenizer.setState(rcdata_state)),!0}function rcdata_end_tag_open_state(buffer){var data=buffer.char();return isAlpha(data)?(this._temporaryBuffer+=data,tokenizer.setState(rcdata_end_tag_name_state)):(tokenizer._emitToken({type:"Characters",data:"</"}),buffer.unget(data),tokenizer.setState(rcdata_state)),!0}function rcdata_end_tag_name_state(buffer){var appropriate=tokenizer._currentToken&&tokenizer._currentToken.name===this._temporaryBuffer.toLowerCase(),data=buffer.char();return isWhitespace(data)&&appropriate?(tokenizer._currentToken={type:"EndTag",name:this._temporaryBuffer,data:[],selfClosing:!1},tokenizer.setState(before_attribute_name_state)):"/"===data&&appropriate?(tokenizer._currentToken={type:"EndTag",name:this._temporaryBuffer,data:[],selfClosing:!1},tokenizer.setState(self_closing_tag_state)):">"===data&&appropriate?(tokenizer._currentToken={type:"EndTag",name:this._temporaryBuffer,data:[],selfClosing:!1},tokenizer._emitCurrentToken(),tokenizer.setState(data_state)):isAlpha(data)?(this._temporaryBuffer+=data,buffer.commit()):(tokenizer._emitToken({type:"Characters",data:"</"+this._temporaryBuffer}),buffer.unget(data),tokenizer.setState(rcdata_state)),!0}function rawtext_less_than_sign_state(buffer){var data=buffer.char();return"/"===data?(this._temporaryBuffer="",tokenizer.setState(rawtext_end_tag_open_state)):(tokenizer._emitToken({type:"Characters",data:"<"}),buffer.unget(data),tokenizer.setState(rawtext_state)),!0}function rawtext_end_tag_open_state(buffer){var data=buffer.char();return isAlpha(data)?(this._temporaryBuffer+=data,tokenizer.setState(rawtext_end_tag_name_state)):(tokenizer._emitToken({type:"Characters",data:"</"}),buffer.unget(data),tokenizer.setState(rawtext_state)),!0}function rawtext_end_tag_name_state(buffer){var appropriate=tokenizer._currentToken&&tokenizer._currentToken.name===this._temporaryBuffer.toLowerCase(),data=buffer.char();return isWhitespace(data)&&appropriate?(tokenizer._currentToken={type:"EndTag",name:this._temporaryBuffer,data:[],selfClosing:!1},tokenizer.setState(before_attribute_name_state)):"/"===data&&appropriate?(tokenizer._currentToken={type:"EndTag",name:this._temporaryBuffer,data:[],selfClosing:!1},tokenizer.setState(self_closing_tag_state)):">"===data&&appropriate?(tokenizer._currentToken={type:"EndTag",name:this._temporaryBuffer,data:[],selfClosing:!1},tokenizer._emitCurrentToken(),tokenizer.setState(data_state)):isAlpha(data)?(this._temporaryBuffer+=data,buffer.commit()):(tokenizer._emitToken({type:"Characters",data:"</"+this._temporaryBuffer}),buffer.unget(data),tokenizer.setState(rawtext_state)),!0}function script_data_less_than_sign_state(buffer){var data=buffer.char();return"/"===data?(this._temporaryBuffer="",tokenizer.setState(script_data_end_tag_open_state)):"!"===data?(tokenizer._emitToken({type:"Characters",data:"<!"}),tokenizer.setState(script_data_escape_start_state)):(tokenizer._emitToken({type:"Characters",data:"<"}),buffer.unget(data),tokenizer.setState(script_data_state)),!0}function script_data_end_tag_open_state(buffer){var data=buffer.char();return isAlpha(data)?(this._temporaryBuffer+=data,tokenizer.setState(script_data_end_tag_name_state)):(tokenizer._emitToken({type:"Characters",data:"</"}),buffer.unget(data),tokenizer.setState(script_data_state)),!0}function script_data_end_tag_name_state(buffer){var appropriate=tokenizer._currentToken&&tokenizer._currentToken.name===this._temporaryBuffer.toLowerCase(),data=buffer.char();return isWhitespace(data)&&appropriate?(tokenizer._currentToken={type:"EndTag",name:"script",data:[],selfClosing:!1},tokenizer.setState(before_attribute_name_state)):"/"===data&&appropriate?(tokenizer._currentToken={type:"EndTag",name:"script",data:[],selfClosing:!1},tokenizer.setState(self_closing_tag_state)):">"===data&&appropriate?(tokenizer._currentToken={type:"EndTag",name:"script",data:[],selfClosing:!1},tokenizer._emitCurrentToken()):isAlpha(data)?(this._temporaryBuffer+=data,buffer.commit()):(tokenizer._emitToken({type:"Characters",data:"</"+this._temporaryBuffer}),buffer.unget(data),tokenizer.setState(script_data_state)),!0}function script_data_escape_start_state(buffer){var data=buffer.char();return"-"===data?(tokenizer._emitToken({type:"Characters",data:"-"}),tokenizer.setState(script_data_escape_start_dash_state)):(buffer.unget(d
8ata),tokenizer.setState(script_data_state)),!0}function script_data_escape_start_dash_state(buffer){var data=buffer.char();return"-"===data?(tokenizer._emitToken({type:"Characters",data:"-"}),tokenizer.setState(script_data_escaped_dash_dash_state)):(buffer.unget(data),tokenizer.setState(script_data_state)),!0}function script_data_escaped_state(buffer){var data=buffer.char();if(data===InputStream.EOF)buffer.unget(data),tokenizer.setState(data_state);else if("-"===data)tokenizer._emitToken({type:"Characters",data:"-"}),tokenizer.setState(script_data_escaped_dash_state);else if("<"===data)tokenizer.setState(script_data_escaped_less_then_sign_state);else if("\\0"===data)tokenizer._parseError("invalid-codepoint"),tokenizer._emitToken({type:"Characters",data:"�"}),buffer.commit();else{var chars=buffer.matchUntil("<|-|\\0");tokenizer._emitToken({type:"Characters",data:data+chars})}return!0}function script_data_escaped_dash_state(buffer){var data=buffer.char();return data===InputStream.EOF?(buffer.unget(data),tokenizer.setState(data_state)):"-"===data?(tokenizer._emitToken({type:"Characters",data:"-"}),tokenizer.setState(script_data_escaped_dash_dash_state)):"<"===data?tokenizer.setState(script_data_escaped_less_then_sign_state):"\\0"===data?(tokenizer._parseError("invalid-codepoint"),tokenizer._emitToken({type:"Characters",data:"�"}),tokenizer.setState(script_data_escaped_state)):(tokenizer._emitToken({type:"Characters",data:data}),tokenizer.setState(script_data_escaped_state)),!0}function script_data_escaped_dash_dash_state(buffer){var data=buffer.char();return data===InputStream.EOF?(tokenizer._parseError("eof-in-script"),buffer.unget(data),tokenizer.setState(data_state)):"<"===data?tokenizer.setState(script_data_escaped_less_then_sign_state):">"===data?(tokenizer._emitToken({type:"Characters",data:">"}),tokenizer.setState(script_data_state)):"\\0"===data?(tokenizer._parseError("invalid-codepoint"),tokenizer._emitToken({type:"Characters",data:"�"}),tokenizer.setState(script_data_escaped_state)):(tokenizer._emitToken({type:"Characters",data:data}),tokenizer.setState(script_data_escaped_state)),!0}function script_data_escaped_less_then_sign_state(buffer){var data=buffer.char();return"/"===data?(this._temporaryBuffer="",tokenizer.setState(script_data_escaped_end_tag_open_state)):isAlpha(data)?(tokenizer._emitToken({type:"Characters",data:"<"+data}),this._temporaryBuffer=data,tokenizer.setState(script_data_double_escape_start_state)):(tokenizer._emitToken({type:"Characters",data:"<"}),buffer.unget(data),tokenizer.setState(script_data_escaped_state)),!0}function script_data_escaped_end_tag_open_state(buffer){var data=buffer.char();return isAlpha(data)?(this._temporaryBuffer=data,tokenizer.setState(script_data_escaped_end_tag_name_state)):(tokenizer._emitToken({type:"Characters",data:"</"}),buffer.unget(data),tokenizer.setState(script_data_escaped_state)),!0}function script_data_escaped_end_tag_name_state(buffer){var appropriate=tokenizer._currentToken&&tokenizer._currentToken.name===this._temporaryBuffer.toLowerCase(),data=buffer.char();return isWhitespace(data)&&appropriate?(tokenizer._currentToken={type:"EndTag",name:"script",data:[],selfClosing:!1},tokenizer.setState(before_attribute_name_state)):"/"===data&&appropriate?(tokenizer._currentToken={type:"EndTag",name:"script",data:[],selfClosing:!1},tokenizer.setState(self_closing_tag_state)):">"===data&&appropriate?(tokenizer._currentToken={type:"EndTag",name:"script",data:[],selfClosing:!1},tokenizer.setState(data_state),tokenizer._emitCurrentToken()):isAlpha(data)?(this._temporaryBuffer+=data,buffer.commit()):(tokenizer._emitToken({type:"Characters",data:"</"+this._temporaryBuffer}),buffer.unget(data),tokenizer.setState(script_data_escaped_state)),!0}function script_data_double_escape_start_state(buffer){var data=buffer.char();return isWhitespace(data)||"/"===data||">"===data?(tokenizer._emitToken({type:"Characters",data:data}),"script"===this._temporaryBuffer.toLowerCase()?tokenizer.setState(script_data_double_escaped_state):tokenizer.setState(script_data_escaped_state)):isAlpha(data)?(tokenizer._emitToken({type:"Characters",data:data}
8),this._temporaryBuffer+=data,buffer.commit()):(buffer.unget(data),tokenizer.setState(script_data_escaped_state)),!0}function script_data_double_escaped_state(buffer){var data=buffer.char();return data===InputStream.EOF?(tokenizer._parseError("eof-in-script"),buffer.unget(data),tokenizer.setState(data_state)):"-"===data?(tokenizer._emitToken({type:"Characters",data:"-"}),tokenizer.setState(script_data_double_escaped_dash_state)):"<"===data?(tokenizer._emitToken({type:"Characters",data:"<"}),tokenizer.setState(script_data_double_escaped_less_than_sign_state)):"\\0"===data?(tokenizer._parseError("invalid-codepoint"),tokenizer._emitToken({type:"Characters",data:"�"}),buffer.commit()):(tokenizer._emitToken({type:"Characters",data:data}),buffer.commit()),!0}function script_data_double_escaped_dash_state(buffer){var data=buffer.char();return data===InputStream.EOF?(tokenizer._parseError("eof-in-script"),buffer.unget(data),tokenizer.setState(data_state)):"-"===data?(tokenizer._emitToken({type:"Characters",data:"-"}),tokenizer.setState(script_data_double_escaped_dash_dash_state)):"<"===data?(tokenizer._emitToken({type:"Characters",data:"<"}),tokenizer.setState(script_data_double_escaped_less_than_sign_state)):"\\0"===data?(tokenizer._parseError("invalid-codepoint"),tokenizer._emitToken({type:"Characters",data:"�"}),tokenizer.setState(script_data_double_escaped_state)):(tokenizer._emitToken({type:"Characters",data:data}),tokenizer.setState(script_data_double_escaped_state)),!0}function script_data_double_escaped_dash_dash_state(buffer){var data=buffer.char();return data===InputStream.EOF?(tokenizer._parseError("eof-in-script"),buffer.unget(data),tokenizer.setState(data_state)):"-"===data?(tokenizer._emitToken({type:"Characters",data:"-"}),buffer.commit()):"<"===data?(tokenizer._emitToken({type:"Characters",data:"<"}),tokenizer.setState(script_data_double_escaped_less_than_sign_state)):">"===data?(tokenizer._emitToken({type:"Characters",data:">"}),tokenizer.setState(script_data_state)):"\\0"===data?(tokenizer._parseError("invalid-codepoint"),tokenizer._emitToken({type:"Characters",data:"�"}),tokenizer.setState(script_data_double_escaped_state)):(tokenizer._emitToken({type:"Characters",data:data}),tokenizer.setState(script_data_double_escaped_state)),!0}function script_data_double_escaped_less_than_sign_state(buffer){var data=buffer.char();return"/"===data?(tokenizer._emitToken({type:"Characters",data:"/"}),this._temporaryBuffer="",tokenizer.setState(script_data_double_escape_end_state)):(buffer.unget(data),tokenizer.setState(script_data_double_escaped_state)),!0}function script_data_double_escape_end_state(buffer){var data=buffer.char();return isWhitespace(data)||"/"===data||">"===data?(tokenizer._emitToken({type:"Characters",data:data}),"script"===this._temporaryBuffer.toLowerCase()?tokenizer.setState(script_data_escaped_state):tokenizer.setState(script_data_double_escaped_state)):isAlpha(data)?(tokenizer._emitToken({type:"Characters",data:data}),this._temporaryBuffer+=data,buffer.commit()):(buffer.unget(data),tokenizer.setState(script_data_double_escaped_state)),!0}function tag_open_state(buffer){var data=buffer.char();return data===InputStream.EOF?(tokenizer._parseError("bare-less-than-sign-at-eof"),tokenizer._emitToken({type:"Characters",data:"<"}),buffer.unget(data),tokenizer.setState(data_state)):isAlpha(data)?(tokenizer._currentToken={type:"StartTag",name:data.toLowerCase(),data:[]},tokenizer.setState(tag_name_state)):"!"===data?tokenizer.setState(markup_declaration_open_state):"/"===data?tokenizer.setState(close_tag_open_state):">"===data?(tokenizer._parseError("expected-tag-name-but-got-right-bracket"),tokenizer._emitToken({type:"Characters",data:"<>"}),tokenizer.setState(data_state)):"?"===data?(tokenizer._parseError("expected-tag-name-but-got-question-mark"),buffer.unget(data),tokenizer.setState(bogus_comment_state)):(tokenizer._parseError("expected-tag-name"),tokenizer._emitToken({type:"Characters",data:"<"}),buffer.unget(data),tokenizer.setState(data_state)),!0}function close_tag_open_state(buffer){var data=buffer.char();return data===InputStream.EOF?(tokenizer._parseError("expected-closing-tag-but-got-eof"),tokenizer._emitToken({type:"Characters",data:"</"}
8),buffer.unget(data),tokenizer.setState(data_state)):isAlpha(data)?(tokenizer._currentToken={type:"EndTag",name:data.toLowerCase(),data:[]},tokenizer.setState(tag_name_state)):">"===data?(tokenizer._parseError("expected-closing-tag-but-got-right-bracket"),tokenizer.setState(data_state)):(tokenizer._parseError("expected-closing-tag-but-got-char",{data:data}),buffer.unget(data),tokenizer.setState(bogus_comment_state)),!0}function tag_name_state(buffer){var data=buffer.char();return data===InputStream.EOF?(tokenizer._parseError("eof-in-tag-name"),buffer.unget(data),tokenizer.setState(data_state)):isWhitespace(data)?tokenizer.setState(before_attribute_name_state):isAlpha(data)?tokenizer._currentToken.name+=data.toLowerCase():">"===data?tokenizer._emitCurrentToken():"/"===data?tokenizer.setState(self_closing_tag_state):"\\0"===data?(tokenizer._parseError("invalid-codepoint"),tokenizer._currentToken.name+="�"):tokenizer._currentToken.name+=data,buffer.commit(),!0}function before_attribute_name_state(buffer){var data=buffer.char();if(data===InputStream.EOF)tokenizer._parseError("expected-attribute-name-but-got-eof"),buffer.unget(data),tokenizer.setState(data_state);else{if(isWhitespace(data))return!0;isAlpha(data)?(tokenizer._currentToken.data.push({nodeName:data.toLowerCase(),nodeValue:""}),tokenizer.setState(attribute_name_state)):">"===data?tokenizer._emitCurrentToken():"/"===data?tokenizer.setState(self_closing_tag_state):"\'"===data||\'"\'===data||"="===data||"<"===data?(tokenizer._parseError("invalid-character-in-attribute-name"),tokenizer._currentToken.data.push({nodeName:data,nodeValue:""}),tokenizer.setState(attribute_name_state)):"\\0"===data?(tokenizer._parseError("invalid-codepoint"),tokenizer._currentToken.data.push({nodeName:"�",nodeValue:""})):(tokenizer._currentToken.data.push({nodeName:data,nodeValue:""}),tokenizer.setState(attribute_name_state))}return!0}function attribute_name_state(buffer){var data=buffer.char(),leavingThisState=!0,shouldEmit=!1;if(data===InputStream.EOF?(tokenizer._parseError("eof-in-attribute-name"),buffer.unget(data),tokenizer.setState(data_state),shouldEmit=!0):"="===data?tokenizer.setState(before_attribute_value_state):isAlpha(data)?(tokenizer._currentAttribute().nodeName+=data.toLowerCase(),leavingThisState=!1):">"===data?shouldEmit=!0:isWhitespace(data)?tokenizer.setState(after_attribute_name_state):"/"===data?tokenizer.setState(self_closing_tag_state):"\'"===data||\'"\'===data?(tokenizer._parseError("invalid-character-in-attribute-name"),tokenizer._currentAttribute().nodeName+=data,leavingThisState=!1):"\\0"===data?(tokenizer._parseError("invalid-codepoint"),tokenizer._currentAttribute().nodeName+="�"):(tokenizer._currentAttribute().nodeName+=data,leavingThisState=!1),leavingThisState){for(var attributes=tokenizer._currentToken.data,currentAttribute=attributes[attributes.length-1],i=attributes.length-2;i>=0;i--)if(currentAttribute.nodeName===attributes[i].nodeName){tokenizer._parseError("duplicate-attribute",{name:currentAttribute.nodeName}),currentAttribute.nodeName=null;break}shouldEmit&&tokenizer._emitCurrentToken()}else buffer.commit();return!0}function after_attribute_name_state(buffer){var data=buffer.char();if(data===InputStream.EOF)tokenizer._parseError("expected-end-of-tag-but-got-eof"),buffer.unget(data),tokenizer.setState(data_state);else{if(isWhitespace(data))return!0;"="===data?tokenizer.setState(before_attribute_value_state):">"===data?tokenizer._emitCurrentToken():isAlpha(data)?(tokenizer._currentToken.data.push({nodeName:data,nodeValue:""}),tokenizer.setState(attribute_name_state)):"/"===data?tokenizer.setState(self_closing_tag_state):"\'"===data||\'"\'===data||"<"===data?(tokenizer._parseError("invalid-character-after-attribute-name"),tokenizer._currentToken.data.push({nodeName:data,nodeValue:""}),tokenizer.setState(attribute_name_state)):"\\0"===data?(tokenizer._parseError("invalid-codepoint"),tokenizer._currentToken.data.push({nodeName:"�",nodeValue:""})):(tokenizer._currentToken.data.push({nodeName:data,nodeValue:""}),tokenizer.setState(attribute_name_state))}return!0}function before_attribute_value_state(buffer){var data=buffer.char();if(data===InputStream.EOF)tokenizer._parseError("expected-attribute-value-but-got-eof"),buffer.unget(d
8ata),tokenizer.setState(data_state);else{if(isWhitespace(data))return!0;\'"\'===data?tokenizer.setState(attribute_value_double_quoted_state):"&"===data?(tokenizer.setState(attribute_value_unquoted_state),buffer.unget(data)):"\'"===data?tokenizer.setState(attribute_value_single_quoted_state):">"===data?(tokenizer._parseError("expected-attribute-value-but-got-right-bracket"),tokenizer._emitCurrentToken()):"="===data||"<"===data||"`"===data?(tokenizer._parseError("unexpected-character-in-unquoted-attribute-value"),tokenizer._currentAttribute().nodeValue+=data,tokenizer.setState(attribute_value_unquoted_state)):"\\0"===data?(tokenizer._parseError("invalid-codepoint"),tokenizer._currentAttribute().nodeValue+="�"):(tokenizer._currentAttribute().nodeValue+=data,tokenizer.setState(attribute_value_unquoted_state))}return!0\n}function attribute_value_double_quoted_state(buffer){var data=buffer.char();if(data===InputStream.EOF)tokenizer._parseError("eof-in-attribute-value-double-quote"),buffer.unget(data),tokenizer.setState(data_state);else if(\'"\'===data)tokenizer.setState(after_attribute_value_state);else if("&"===data)this._additionalAllowedCharacter=\'"\',tokenizer.setState(character_reference_in_attribute_value_state);else if("\\0"===data)tokenizer._parseError("invalid-codepoint"),tokenizer._currentAttribute().nodeValue+="�";else{var s=buffer.matchUntil(\'[\\0"&]\');data+=s,tokenizer._currentAttribute().nodeValue+=data}return!0}function attribute_value_single_quoted_state(buffer){var data=buffer.char();return data===InputStream.EOF?(tokenizer._parseError("eof-in-attribute-value-single-quote"),buffer.unget(data),tokenizer.setState(data_state)):"\'"===data?tokenizer.setState(after_attribute_value_state):"&"===data?(this._additionalAllowedCharacter="\'",tokenizer.setState(character_reference_in_attribute_value_state)):"\\0"===data?(tokenizer._parseError("invalid-codepoint"),tokenizer._currentAttribute().nodeValue+="�"):tokenizer._currentAttribute().nodeValue+=data+buffer.matchUntil("\\0|[\'&]"),!0}function attribute_value_unquoted_state(buffer){var data=buffer.char();if(data===InputStream.EOF)tokenizer._parseError("eof-after-attribute-value"),buffer.unget(data),tokenizer.setState(data_state);else if(isWhitespace(data))tokenizer.setState(before_attribute_name_state);else if("&"===data)this._additionalAllowedCharacter=">",tokenizer.setState(character_reference_in_attribute_value_state);else if(">"===data)tokenizer._emitCurrentToken();else if(\'"\'===data||"\'"===data||"="===data||"`"===data||"<"===data)tokenizer._parseError("unexpected-character-in-unquoted-attribute-value"),tokenizer._currentAttribute().nodeValue+=data,buffer.commit();else if("\\0"===data)tokenizer._parseError("invalid-codepoint"),tokenizer._currentAttribute().nodeValue+="�";else{var o=buffer.matchUntil("\\0|[\t\\n\v\\f \\r&<>\\"\'=`]");o===InputStream.EOF&&(tokenizer._parseError("eof-in-attribute-value-no-quotes"),tokenizer._emitCurrentToken()),buffer.commit(),tokenizer._currentAttribute().nodeValue+=data+o}return!0}function character_reference_in_attribute_value_state(buffer){var character=EntityParser.consumeEntity(buffer,tokenizer,this._additionalAllowedCharacter);return this._currentAttribute().nodeValue+=character||"&",\'"\'===this._additionalAllowedCharacter?tokenizer.setState(attribute_value_double_quoted_state):"\'"===this._additionalAllowedCharacter?tokenizer.setState(attribute_value_single_quoted_state):">"===this._additionalAllowedCharacter&&tokenizer.setState(attribute_value_unquoted_state),!0}function after_attribute_value_state(buffer){var data=buffer.char();return data===InputStream.EOF?(tokenizer._parseError("eof-after-attribute-value"),buffer.unget(data),tokenizer.setState(data_state)):isWhitespace(data)?tokenizer.setState(before_attribute_name_state):">"===data?(tokenizer.setState(data_state),tokenizer._emitCurrentToken()):"/"===data?tokenizer.setState(self_closing_tag_state):(tokenizer._parseError("unexpected-character-after-attribute-value"),buffer.unget(data),tokenizer.setState(before_attribute_name_state)),!0}function self_closing_tag_state(buffer){var c=buffer.char();return c===InputStream.EOF?(tokenizer._parseError("unexpected-eof-after-solidus-in-tag"),buffer.unget(c),tokenizer.setState(data_state)):">"===c?(tokenizer._currentToken.selfClosing=!0,tokenizer.setState(data_state),tokenizer._emitCurrentToken()):(tokenizer._parseError("unexpected-character-after-solidus-in-tag"),buffer.unget(c),tokenizer.setState(before_attribute_name_state)),!0}function bogus_comment_state(buffer){var data=buffer.matchUntil(">");return data=data.replace(/\\u0000/g,"�"),buffer.char(),tokenizer._emitToken({type:"Comment",data:data}),tokenizer.setState(data_state),!0}function markup_declaration_open_state(buffer){var chars=buffer.shift(2);if("--"===chars)tokenizer._currentToken={type:"Comment",data:""},tokenizer.setState(comment_start_state);else{var newchars=buffer.shift(5);if(newchars===InputStream.EOF||chars===InputStream.EOF)return tokenizer._parseError("expected-dashes-or-doctype"),tokenizer.setState(bogus_comment_state),buffer.unget(chars),!0;chars+=newchars,"DOCTYPE"===chars.toUpperCase()?(tokenizer._currentToken={type:"Doctype",name:"",publicId:null,
8systemId:null,forceQuirks:!1},tokenizer.setState(doctype_state)):tokenizer._tokenHandler.isCdataSectionAllowed()&&"[CDATA["===chars?tokenizer.setState(cdata_section_state):(tokenizer._parseError("expected-dashes-or-doctype"),buffer.unget(chars),tokenizer.setState(bogus_comment_state))}return!0}function cdata_section_state(buffer){var data=buffer.matchUntil("]]>");return buffer.shift(3),data&&tokenizer._emitToken({type:"Characters",data:data}),tokenizer.setState(data_state),!0}function comment_start_state(buffer){var data=buffer.char();return data===InputStream.EOF?(tokenizer._parseError("eof-in-comment"),tokenizer._emitToken(tokenizer._currentToken),buffer.unget(data),tokenizer.setState(data_state)):"-"===data?tokenizer.setState(comment_start_dash_state):">"===data?(tokenizer._parseError("incorrect-comment"),tokenizer._emitToken(tokenizer._currentToken),tokenizer.setState(data_state)):"\\0"===data?(tokenizer._parseError("invalid-codepoint"),tokenizer._currentToken.data+="�"):(tokenizer._currentToken.data+=data,tokenizer.setState(comment_state)),!0}function comment_start_dash_state(buffer){var data=buffer.char();return data===InputStream.EOF?(tokenizer._parseError("eof-in-comment"),tokenizer._emitToken(tokenizer._currentToken),buffer.unget(data),tokenizer.setState(data_state)):"-"===data?tokenizer.setState(comment_end_state):">"===data?(tokenizer._parseError("incorrect-comment"),tokenizer._emitToken(tokenizer._currentToken),tokenizer.setState(data_state)):"\\0"===data?(tokenizer._parseError("invalid-codepoint"),tokenizer._currentToken.data+="�"):(tokenizer._currentToken.data+="-"+data,tokenizer.setState(comment_state)),!0}function comment_state(buffer){var data=buffer.char();return data===InputStream.EOF?(tokenizer._parseError("eof-in-comment"),tokenizer._emitToken(tokenizer._currentToken),buffer.unget(data),tokenizer.setState(data_state)):"-"===data?tokenizer.setState(comment_end_dash_state):"\\0"===data?(tokenizer._parseError("invalid-codepoint"),tokenizer._currentToken.data+="�"):(tokenizer._currentToken.data+=data,buffer.commit()),!0}function comment_end_dash_state(buffer){var data=buffer.char();return data===InputStream.EOF?(tokenizer._parseError("eof-in-comment-end-dash"),tokenizer._emitToken(tokenizer._currentToken),buffer.unget(data),tokenizer.setState(data_state)):"-"===data?tokenizer.setState(comment_end_state):"\\0"===data?(tokenizer._parseError("invalid-codepoint"),tokenizer._currentToken.data+="-�",tokenizer.setState(comment_state)):(tokenizer._currentToken.data+="-"+data+buffer.matchUntil("\\0|-"),buffer.char()),!0}function comment_end_state(buffer){var data=buffer.char();return data===InputStream.EOF?(tokenizer._parseError("eof-in-comment-double-dash"),tokenizer._emitToken(tokenizer._currentToken),buffer.unget(data),tokenizer.setState(data_state)):">"===data?(tokenizer._emitToken(tokenizer._currentToken),tokenizer.setState(data_state)):"!"===data?(tokenizer._parseError("unexpected-bang-after-double-dash-in-comment"),tokenizer.setState(comment_end_bang_state)):"-"===data?(tokenizer._parseError("unexpected-dash-after-double-dash-in-comment"),tokenizer._currentToken.data+=data):"\\0"===data?(tokenizer._parseError("invalid-codepoint"),tokenizer._currentToken.data+="--�",tokenizer.setState(comment_state)):(tokenizer._parseError("unexpected-char-in-comment"),tokenizer._currentToken.data+="--"+data,tokenizer.setState(comment_state)),!0}function comment_end_bang_state(buffer){var data=buffer.char();return data===InputStream.EOF?(tokenizer._parseError("eof-in-comment-end-bang-state"),tokenizer._emitToken(tokenizer._currentToken),buffer.unget(data),tokenizer.setState(data_state)):">"===data?(tokenizer._emitToken(tokenizer._currentToken),tokenizer.setState(data_state)):"-"===data?(tokenizer._currentToken.data+="--!",tokenizer.setState(comment_end_dash_state)):(tokenizer._currentToken.data+="--!"+data,tokenizer.setState(comment_state)),!0}function doctype_state(buffer){var data=buffer.char();return data===InputStream.EOF?(tokenizer._parseError("expected-doctype-name-but-got-eof"),tokenizer._currentToken.forceQuirks=!0,buffer.unget(d
8ata),tokenizer.setState(data_state),tokenizer._emitCurrentToken()):isWhitespace(data)?tokenizer.setState(before_doctype_name_state):(tokenizer._parseError("need-space-after-doctype"),buffer.unget(data),tokenizer.setState(before_doctype_name_state)),!0}function before_doctype_name_state(buffer){var data=buffer.char();return data===InputStream.EOF?(tokenizer._parseError("expected-doctype-name-but-got-eof"),tokenizer._currentToken.forceQuirks=!0,buffer.unget(data),tokenizer.setState(data_state),tokenizer._emitCurrentToken()):isWhitespace(data)||(">"===data?(tokenizer._parseError("expected-doctype-name-but-got-right-bracket"),tokenizer._currentToken.forceQuirks=!0,tokenizer.setState(data_state),tokenizer._emitCurrentToken()):(isAlpha(data)&&(data=data.toLowerCase()),tokenizer._currentToken.name=data,tokenizer.setState(doctype_name_state))),!0}function doctype_name_state(buffer){var data=buffer.char();return data===InputStream.EOF?(tokenizer._currentToken.forceQuirks=!0,buffer.unget(data),tokenizer._parseError("eof-in-doctype-name"),tokenizer.setState(data_state),tokenizer._emitCurrentToken()):isWhitespace(data)?tokenizer.setState(after_doctype_name_state):">"===data?(tokenizer.setState(data_state),tokenizer._emitCurrentToken()):(isAlpha(data)&&(data=data.toLowerCase()),tokenizer._currentToken.name+=data,buffer.commit()),!0}function after_doctype_name_state(buffer){var data=buffer.char();if(data===InputStream.EOF)tokenizer._currentToken.forceQuirks=!0,buffer.unget(data),tokenizer._parseError("eof-in-doctype"),tokenizer.setState(data_state),tokenizer._emitCurrentToken();else if(isWhitespace(data));else if(">"===data)tokenizer.setState(data_state),tokenizer._emitCurrentToken();else{if(["p","P"].indexOf(data)>-1){var expected=[["u","U"],["b","B"],["l","L"],["i","I"],["c","C"]],matched=expected.every(function(expected){return data=buffer.char(),expected.indexOf(data)>-1});if(matched)return tokenizer.setState(after_doctype_public_keyword_state),!0}else if(["s","S"].indexOf(data)>-1){var expected=[["y","Y"],["s","S"],["t","T"],["e","E"],["m","M"]],matched=expected.every(function(expected){return data=buffer.char(),expected.indexOf(data)>-1});if(matched)return tokenizer.setState(after_doctype_system_keyword_state),!0}buffer.unget(data),tokenizer._currentToken.forceQuirks=!0,data===InputStream.EOF?(tokenizer._parseError("eof-in-doctype"),buffer.unget(data),tokenizer.setState(data_state),tokenizer._emitCurrentToken()):(tokenizer._parseError("expected-space-or-right-bracket-in-doctype",{data:data}),tokenizer.setState(bogus_doctype_state))}return!0}function after_doctype_public_keyword_state(buffer){var data=buffer.char();return data===InputStream.EOF?(tokenizer._parseError("eof-in-doctype"),tokenizer._currentToken.forceQuirks=!0,buffer.unget(data),tokenizer.setState(data_state),tokenizer._emitCurrentToken()):isWhitespace(data)?tokenizer.setState(before_doctype_public_identifier_state):"\'"===data||\'"\'===data?(tokenizer._parseError("unexpected-char-in-doctype"),buffer.unget(data),tokenizer.setState(before_doctype_public_identifier_state)):(buffer.unget(data),tokenizer.setState(before_doctype_public_identifier_state)),!0}function before_doctype_public_identifier_state(buffer){var data=buffer.char();return data===InputStream.EOF?(tokenizer._parseError("eof-in-doctype"),tokenizer._currentToken.forceQuirks=!0,buffer.unget(data),tokenizer.setState(data_state),tokenizer._emitCurrentToken()):isWhitespace(data)||(\'"\'===data?(tokenizer._currentToken.publicId="",tokenizer.setState(doctype_public_identifier_double_quoted_state)):"\'"===data?(tokenizer._currentToken.publicId="",tokenizer.setState(doctype_public_identifier_single_quoted_state)):">"===data?(tokenizer._parseError("unexpected-end-of-doctype"),tokenizer._currentToken.forceQuirks=!0,tokenizer.setState(data_state),tokenizer._emitCurrentToken()):(tokenizer._parseError("unexpected-char-in-doctype"),tokenizer._currentToken.forceQuirks=!0,tokenizer.setState(bogus_doctype_state))),!0}function doctype_public_identifier_double_quoted_state(buffer){var data=buffer.char();return data===InputStream.EOF?(tokenizer._parseError("eof-in-doctype"),tokenizer._currentToken.forceQuirks=!0,buffer.unget(d
8ata),tokenizer.setState(data_state),tokenizer._emitCurrentToken()):\'"\'===data?tokenizer.setState(after_doctype_public_identifier_state):">"===data?(tokenizer._parseError("unexpected-end-of-doctype"),tokenizer._currentToken.forceQuirks=!0,tokenizer.setState(data_state),tokenizer._emitCurrentToken()):tokenizer._currentToken.publicId+=data,!0}function doctype_public_identifier_single_quoted_state(buffer){var data=buffer.char();return data===InputStream.EOF?(tokenizer._parseError("eof-in-doctype"),tokenizer._currentToken.forceQuirks=!0,buffer.unget(data),tokenizer.setState(data_state),tokenizer._emitCurrentToken()):"\'"===data?tokenizer.setState(after_doctype_public_identifier_state):">"===data?(tokenizer._parseError("unexpected-end-of-doctype"),tokenizer._currentToken.forceQuirks=!0,tokenizer.setState(data_state),tokenizer._emitCurrentToken()):tokenizer._currentToken.publicId+=data,!0}function after_doctype_public_identifier_state(buffer){var data=buffer.char();return data===InputStream.EOF?(tokenizer._parseError("eof-in-doctype"),tokenizer._currentToken.forceQuirks=!0,tokenizer._emitCurrentToken(),buffer.unget(data),tokenizer.setState(data_state)):isWhitespace(data)?tokenizer.setState(between_doctype_public_and_system_identifiers_state):">"===data?(tokenizer.setState(data_state),tokenizer._emitCurrentToken()):\'"\'===data?(tokenizer._parseError("unexpected-char-in-doctype"),tokenizer._currentToken.systemId="",tokenizer.setState(doctype_system_identifier_double_quoted_state)):"\'"===data?(tokenizer._parseError("unexpected-char-in-doctype"),tokenizer._currentToken.systemId="",tokenizer.setState(doctype_system_identifier_single_quoted_state)):(tokenizer._parseError("unexpected-char-in-doctype"),tokenizer._currentToken.forceQuirks=!0,tokenizer.setState(bogus_doctype_state)),!0}function between_doctype_public_and_system_identifiers_state(buffer){var data=buffer.char();return data===InputStream.EOF?(tokenizer._parseError("eof-in-doctype"),tokenizer._currentToken.forceQuirks=!0,tokenizer._emitCurrentToken(),buffer.unget(data),tokenizer.setState(data_state)):isWhitespace(data)||(">"===data?(tokenizer._emitCurrentToken(),tokenizer.setState(data_state)):\'"\'===data?(tokenizer._currentToken.systemId="",tokenizer.setState(doctype_system_identifier_double_quoted_state)):"\'"===data?(tokenizer._currentToken.systemId="",tokenizer.setState(doctype_system_identifier_single_quoted_state)):(tokenizer._parseError("unexpected-char-in-doctype"),tokenizer._currentToken.forceQuirks=!0,tokenizer.setState(bogus_doctype_state))),!0}function after_doctype_system_keyword_state(buffer){var data=buffer.char();return data===InputStream.EOF?(tokenizer._parseError("eof-in-doctype"),tokenizer._currentToken.forceQuirks=!0,tokenizer._emitCurrentToken(),buffer.unget(data),tokenizer.setState(data_state)):isWhitespace(data)?tokenizer.setState(before_doctype_system_identifier_state):"\'"===data||\'"\'===data?(tokenizer._parseError("unexpected-char-in-doctype"),buffer.unget(data),tokenizer.setState(before_doctype_system_identifier_state)):(buffer.unget(data),tokenizer.setState(before_doctype_system_identifier_state)),!0}function before_doctype_system_identifier_state(buffer){var data=buffer.char();return data===InputStream.EOF?(tokenizer._parseError("eof-in-doctype"),tokenizer._currentToken.forceQuirks=!0,tokenizer._emitCurrentToken(),buffer.unget(data),tokenizer.setState(data_state)):isWhitespace(data)||(\'"\'===data?(tokenizer._currentToken.systemId="",tokenizer.setState(doctype_system_identifier_double_quoted_state)):"\'"===data?(tokenizer._currentToken.systemId="",tokenizer.setState(doctype_system_identifier_single_quoted_state)):">"===data?(tokenizer._parseError("unexpected-end-of-doctype"),tokenizer._currentToken.forceQuirks=!0,tokenizer._emitCurrentToken(),tokenizer.setState(data_state)):(tokenizer._parseError("unexpected-char-in-doctype"),tokenizer._currentToken.forceQuirks=!0,tokenizer.setState(bogus_doctype_state))),!0}function doctype_system_identifier_double_quoted_state(buffer){var data=buffer.char();return data===InputStream.EOF?(tokenizer._parseError("eof-in-doctype"),tokenizer._currentToken.forceQuirks=!0,tokenizer._emitCurrentToken(),buffer.unget(d
8ata),tokenizer.setState(data_state)):\'"\'===data?tokenizer.setState(after_doctype_system_identifier_state):">"===data?(tokenizer._parseError("unexpected-end-of-doctype"),tokenizer._currentToken.forceQuirks=!0,tokenizer._emitCurrentToken(),tokenizer.setState(data_state)):tokenizer._currentToken.systemId+=data,!0}function doctype_system_identifier_single_quoted_state(buffer){var data=buffer.char();return data===InputStream.EOF?(tokenizer._parseError("eof-in-doctype"),tokenizer._currentToken.forceQuirks=!0,tokenizer._emitCurrentToken(),buffer.unget(data),tokenizer.setState(data_state)):"\'"===data?tokenizer.setState(after_doctype_system_identifier_state):">"===data?(tokenizer._parseError("unexpected-end-of-doctype"),tokenizer._currentToken.forceQuirks=!0,tokenizer._emitCurrentToken(),tokenizer.setState(data_state)):tokenizer._currentToken.systemId+=data,!0}function after_doctype_system_identifier_state(buffer){var data=buffer.char();return data===InputStream.EOF?(tokenizer._parseError("eof-in-doctype"),tokenizer._currentToken.forceQuirks=!0,tokenizer._emitCurrentToken(),buffer.unget(data),tokenizer.setState(data_state)):isWhitespace(data)||(">"===data?(tokenizer._emitCurrentToken(),tokenizer.setState(data_state)):(tokenizer._parseError("unexpected-char-in-doctype"),tokenizer.setState(bogus_doctype_state))),!0}function bogus_doctype_state(buffer){var data=buffer.char();return data===InputStream.EOF?(buffer.unget(data),tokenizer._emitCurrentToken(),tokenizer.setState(data_state)):">"===data&&(tokenizer._emitCurrentToken(),tokenizer.setState(data_state)),!0}Tokenizer.DATA=data_state,Tokenizer.RCDATA=rcdata_state,Tokenizer.RAWTEXT=rawtext_state,Tokenizer.SCRIPT_DATA=script_data_state,Tokenizer.PLAINTEXT=plaintext_state,this._state=Tokenizer.DATA,this._inputStream.append(source),this._tokenHandler.startTokenization(this),this._inputStream.eof=!0;for(var tokenizer=this;this._state.call(this,this._inputStream););},Object.defineProperty(Tokenizer.prototype,"lineNumber",{get:function(){return this._inputStream.location().line}}),Object.defineProperty(Tokenizer.prototype,"columnNumber",{get:function(){return this._inputStream.location().column}}),exports.Tokenizer=Tokenizer},{"./EntityParser":2,"./InputStream":3}],6:[function(_dereq_,module,exports){function isWhitespace(ch){return" "===ch||"\\n"===ch||"\t"===ch||"\\r"===ch||"\\f"===ch}function isWhitespaceOrReplacementCharacter(ch){return isWhitespace(ch)||"�"===ch}function isAllWhitespace(characters){for(var i=0;characters.length>i;i++){var ch=characters[i];if(!isWhitespace(ch))return!1}return!0}function isAllWhitespaceOrReplacementCharacters(characters){for(var i=0;characters.length>i;i++){var ch=characters[i];if(!isWhitespaceOrReplacementCharacter(ch))return!1}return!0}function getAttribute(node,name){for(var i=0;node.attributes.length>i;i++){var attribute=node.attributes[i];if(attribute.nodeName===name)return attribute}return null}function CharacterBuffer(characters){this.characters=characters,this.current=0,this.end=this.characters.length}function TreeBuilder(){this.tokenizer=null,this.errorHandler=null,this.scriptingEnabled=!1,this.document=null,this.head=null,this.form=null,this.openElements=new ElementStack,this.activeFormattingElements=[],this.insertionMode=null,this.insertionModeName="",this.originalInsertionMode="",this.inQuirksMode=!1,this.compatMode="no quirks",this.framesetOk=!0,this.redirectAttachToFosterParent=!1,this.selfClosingFlagAcknowledged=!1,this.context="",this.pendingTableCharacters=[],this.shouldSkipLeadingNewline=!1;var tree=this,modes=this.insertionModes={};modes.base={end_tag_handlers:{"-default":"endTagOther"},start_tag_handlers:{"-default":"startTagOther"},processEOF:function(){tree.generateImpliedEndTags(),tree.openElements.length>2?tree.parseError("expected-closing-tag-but-got-eof"):2==tree.openElements.length&&"body"!=tree.openElements.item(1).localName?tree.parseError("expected-closing-tag-but-got-eof"):tree.context&&tree.openElements.length>1},processComment:function(data){tree.insertComment(data,tree.currentStackItem().node)},processDoctype:function(){tree.parseError("unexpected-doctype")},processStartTag:function(name,attributes,selfClosing){if(this[this.start_tag_handlers[name]])this[this.start_tag_handlers[name]](name,attributes,selfClosing);else{if(!this[this.start_tag_handlers["-default"]])throw Error("No handler found for "+name);this[this.start_tag_handlers["-default"]](name,attributes,selfClosing)}},processEndTag:function(name){if(this[this.end_tag_handlers[name]])this[this.end_tag_handlers[name]](name);else{if(!this[this.end_tag_handlers["-default"]])throw Error("No handler found for "+name);this[this.end_tag_handlers["-default"]](name)}},startTagHtml:function(name,attributes){modes.inBody.startTagHtml(name,attributes)}},modes.initial=Object.create(modes.base),modes.initial.processEOF=function(){tree.parseError("expected-doctype-but-got-eof"),this.anythingElse(),tree.insertionMode.processEOF()},modes.initial.processComment=function(data){tree.insertComment(data,tree.document)},modes.initial.processDoctype=function(name,publicId,systemId,forceQuirks){function publicIdStartsWith(string){return 0===publicId.toLowerCase().indexOf(string)}tree.insertDoctype(name||"",publicId||"",systemId||""),forceQuirks||"html"!=name||null!=publicId&&(["+//silmaril//dtd html pro v0r11 19970101//","-//advasoft ltd//dtd html 3.0 aswedit + extensions//","-//as//dtd html 3.0 aswedit + extensions//","-//ietf//dtd html 2.0 level 1//","-//ietf//dtd html 2.0 level 2//","-//ietf//dtd html 2.0 strict level 1//","-//ietf//dtd html 2.0 strict level 2//","-//ietf//dtd html 2.0 strict//","-//ietf//dtd html 2.0//","-//ietf//dtd html 2.1e//","-//ietf//dtd html 3.0//","-//ietf//dtd html 3.0//","-//ietf//dtd html 3.2 final//","-//ietf//dtd html 3.2//","-//ietf//dtd html 3//","-//ietf//dtd html level 0//","-//ietf//dtd html level 0//","-//ietf//dtd html level 1//","-//ietf//dtd html level 1//","-//ietf//dtd html level 2//","-//ietf//dtd html level 2//","-//ietf//dtd html level 3//","-//ietf//dtd html level 3//","-//ietf//dtd html strict level 0//","-//ietf//dtd html strict level 0//","-//ietf//dtd html strict level 1//","-//ietf//dtd html strict level 1//","-//ietf//dtd html strict level 2//","-//ietf//dtd html strict level 2//","-//ietf//dtd html strict level 3//","-//ietf//dtd html strict level 3//","-//ietf//dtd html strict//","-//ietf//dtd html strict//","-//ietf//dtd html strict//","-//ietf//dtd html//","-//ietf//dtd html//","-//ietf//dtd html//","-//metrius//dtd metrius presentational//","-//microsoft//dtd internet explorer 2.0 html strict//","-//microsoft//dtd internet explorer 2.0 html//","-//microsoft//dtd internet explorer 2.0 tables//","-//microsoft//dtd internet explorer 3.0 html strict//","-//microsoft//dtd internet explorer 3.0 html//","-//microsoft//dtd internet explorer 3.0 tables//","-//netscape comm. corp.//dtd html//","-//netscape comm. corp.//dtd strict html//","-//o\'reilly and associates//dtd html 2.0//","-//o\'reilly and associates//dtd html extended 1.0//","-//spyglass//dtd html 2.0 extended//","-//sq//dtd html 2.0 hotmetal + extensions//","-//sun microsystems corp.//dtd hotjava html//","-//sun microsystems corp.//dtd hotjava strict html//","-//w3c//dtd html 3 1995-03-24//","-//w3c//dtd html 3.2 draft//","-//w3c//dtd html 3.2 final//","-//w3c//dtd html 3.2//","-//w3c//dtd html 3.2s draft//","-//w3c//dtd html 4.0 frameset//","-//w3c//dtd html 4.0 transitional//","-//w3c//dtd html experimental 19960712//","-//w3c//dtd html experimental 970421//","-//w3c//dtd w3 html//","-//w3o//dtd w3 html 3.0//","-//webtechs//dtd mozilla html 2.0//","-//webtechs//dtd mozilla html//","html"].some(publicIdStartsWith)||["-//w3o//dtd w3 html strict 3.0//en//","-/w3c/dtd html 4.0 transitional/en","html"].indexOf(publicId.toLowerCase())>-1||null==systemId&&["-//w3c//dtd html 4.01 transitional//","-//w3c//dtd html 4.01 frameset//"].some(publicIdStartsWith))||null!=systemId&&"http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd"==systemId.toLowerCase()?(tree.compatMode="quirks",tree.parseError("quirky-doctype")):null!=publicId&&(["-
8//w3c//dtd xhtml 1.0 transitional//","-//w3c//dtd xhtml 1.0 frameset//"].some(publicIdStartsWith)||null!=systemId&&["-//w3c//dtd html 4.01 transitional//","-//w3c//dtd html 4.01 frameset//"].indexOf(publicId.toLowerCase())>-1)?(tree.compatMode="limited quirks",tree.parseError("almost-standards-doctype")):"-//W3C//DTD HTML 4.0//EN"==publicId&&(null==systemId||"http://www.w3.org/TR/REC-html40/strict.dtd"==systemId)||"-//W3C//DTD HTML 4.01//EN"==publicId&&(null==systemId||"http://www.w3.org/TR/html4/strict.dtd"==systemId)||"-//W3C//DTD XHTML 1.0 Strict//EN"==publicId&&"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"==systemId||"-//W3C//DTD XHTML 1.1//EN"==publicId&&"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"==systemId||(null!=systemId&&"about:legacy-compat"!=systemId||null!=publicId)&&tree.parseError("unknown-doctype"),tree.setInsertionMode("beforeHTML")},modes.initial.processCharacters=function(buffer){buffer.skipLeadingWhitespace(),buffer.length&&(tree.parseError("expected-doctype-but-got-chars"),this.anythingElse(),tree.insertionMode.processCharacters(buffer))},modes.initial.processStartTag=function(name,attributes,selfClosing){tree.parseError("expected-doctype-but-got-start-tag",{name:name}),this.anythingElse(),tree.insertionMode.processStartTag(name,attributes,selfClosing)},modes.initial.processEndTag=function(name){tree.parseError("expected-doctype-but-got-end-tag",{name:name}),this.anythingElse(),tree.insertionMode.processEndTag(name)},modes.initial.anythingElse=function(){tree.compatMode="quirks",tree.setInsertionMode("beforeHTML")},modes.beforeHTML=Object.create(modes.base),modes.beforeHTML.start_tag_handlers={html:"startTagHtml","-default":"startTagOther"},modes.beforeHTML.processEOF=function(){this.anythingElse(),tree.insertionMode.processEOF()},modes.beforeHTML.processComment=function(data){tree.insertComment(data,tree.document)},modes.beforeHTML.processCharacters=function(buffer){buffer.skipLeadingWhitespace(),buffer.length&&(this.anythingElse(),tree.insertionMode.processCharacters(buffer))},modes.beforeHTML.startTagHtml=function(name,attributes){tree.insertHtmlElement(attributes),tree.setInsertionMode("beforeHead")},modes.beforeHTML.startTagOther=function(name,attributes,selfClosing){this.anythingElse(),tree.insertionMode.processStartTag(name,attributes,selfClosing)},modes.beforeHTML.processEndTag=function(name){this.anythingElse(),tree.insertionMode.processEndTag(name)},modes.beforeHTML.anythingElse=function(){tree.insertHtmlElement(),tree.setInsertionMode("beforeHead")},modes.afterAfterBody=Object.create(modes.base),modes.afterAfterBody.start_tag_handlers={html:"startTagHtml","-default":"startTagOther"},modes.afterAfterBody.processComment=function(data){tree.insertComment(data,tree.document)},modes.afterAfterBody.processDoctype=function(data){modes.inBody.processDoctype(data)},modes.afterAfterBody.startTagHtml=function(data,attributes){modes.inBody.startTagHtml(data,attributes)},modes.afterAfterBody.startTagOther=function(name,attributes,selfClosing){tree.parseError("unexpected-start-tag",{name:name}),tree.setInsertionMode("inBody"),tree.insertionMode.processStartTag(name,attributes,selfClosing)},modes.afterAfterBody.endTagOther=function(name){tree.parseError("unexpected-end-tag",{name:name}),tree.setInsertionMode("inBody"),tree.insertionMode.processEndTag(name)},modes.afterAfterBody.processCharacters=function(data){return isAllWhitespace(data.characters)?(modes.inBody.processCharacters(data),void 0):(tree.parseError("unexpected-char-after-body"),tree.setInsertionMode("inBody"),tree.insertionMode.processCharacters(data))},modes.afterBody=Object.create(modes.base),modes.afterBody.end_tag_handlers={html:"endTagHtml","-default":"endTagOther"},modes.afterBody.processComment=function(data){tree.insertComment(data,tree.openElements.rootNode)},modes.afterBody.processCharacters=function(data){return isAllWhitespace(data.characters)?(modes.inBody.processCharacters(data),void 0):(tree.parseError("unexpected-char-after-body"),tree.setInsertionMode("inBody"),tree.insertionMode.processCharacters(data))},modes.afterBody.processStartTag=function(name,attributes,selfClosing){tree.parseError("unexpected-start-tag-after-body",{name:name}),tree.setInsertionMode("inBody"),tree.insertionMode.processStartTag(name,attributes,selfClosing)},modes.afterBody.endTagHtml=function(){tree.context?tree.parseError("end-html-in-innerhtml"):tree.setInsertionMode("afterAfterBody")},modes.afterBody.endTagOther=function(name){tree.parseError("unexpected-end-tag-after-body",{name:name}),tree.setInsertionMode("inBody"),tree.insertionMode.processEndTag(name)},modes.afterFrameset=Object.create(modes.base),modes.afterFrameset.start_tag_handlers={html:"startTagHtml",noframes:"startTagNoframes","-default":"startTagOther"},modes.afterFrameset.end_tag_handlers={html:"endTagHtml","-default":"endTagOther"},modes.afterFrameset.processCharacters=function(buffer){for(var characters=buffer.takeRemaining(),whitespace="",i=0;characters.length>i;i++){var ch=characters[i];isWhitespace(ch)&&(whitespace+=ch)}
8whitespace&&tree.insertText(whitespace),whitespace.length<characters.length&&tree.parseError("expected-eof-but-got-char")},modes.afterFrameset.startTagNoframes=function(name,attributes){modes.inHead.processStartTag(name,attributes)},modes.afterFrameset.startTagOther=function(name){tree.parseError("unexpected-start-tag-after-frameset",{name:name})},modes.afterFrameset.endTagHtml=function(){tree.setInsertionMode("afterAfterFrameset")},modes.afterFrameset.endTagOther=function(name){tree.parseError("unexpected-end-tag-after-frameset",{name:name})},modes.beforeHead=Object.create(modes.base),modes.beforeHead.start_tag_handlers={html:"startTagHtml",head:"startTagHead","-default":"startTagOther"},modes.beforeHead.end_tag_handlers={html:"endTagImplyHead",head:"endTagImplyHead",body:"endTagImplyHead",br:"endTagImplyHead","-default":"endTagOther"},modes.beforeHead.processEOF=function(){this.startTagHead("head",[]),tree.insertionMode.processEOF()},modes.beforeHead.processCharacters=function(buffer){buffer.skipLeadingWhitespace(),buffer.length&&(this.startTagHead("head",[]),tree.insertionMode.processCharacters(buffer))},modes.beforeHead.startTagHead=function(name,attributes){tree.insertHeadElement(attributes),tree.setInsertionMode("inHead")},modes.beforeHead.startTagOther=function(name,attributes,selfClosing){this.startTagHead("head",[]),tree.insertionMode.processStartTag(name,attributes,selfClosing)},modes.beforeHead.endTagImplyHead=function(name){this.startTagHead("head",[]),tree.insertionMode.processEndTag(name)},modes.beforeHead.endTagOther=function(name){tree.parseError("end-tag-after-implied-root",{name:name})},modes.inHead=Object.create(modes.base),modes.inHead.start_tag_handlers={html:"startTagHtml",head:"startTagHead",title:"startTagTitle",script:"startTagScript",style:"startTagNoFramesStyle",noscript:"startTagNoScript",noframes:"startTagNoFramesStyle",base:"startTagBaseBasefontBgsoundLink",basefont:"startTagBaseBasefontBgsoundLink",bgsound:"startTagBaseBasefontBgsoundLink",link:"startTagBaseBasefontBgsoundLink",meta:"startTagMeta","-default":"startTagOther"},modes.inHead.end_tag_handlers={head:"endTagHead",html:"endTagHtmlBodyBr",body:"endTagHtmlBodyBr",br:"endTagHtmlBodyBr","-default":"endTagOther"},modes.inHead.processEOF=function(){var name=tree.currentStackItem().localName;\n-1!=["title","style","script"].indexOf(name)&&(tree.parseError("expected-named-closing-tag-but-got-eof",{name:name}),tree.popElement()),this.anythingElse(),tree.insertionMode.processEOF()},modes.inHead.processCharacters=function(buffer){var leadingWhitespace=buffer.takeLeadingWhitespace();leadingWhitespace&&tree.insertText(leadingWhitespace),buffer.length&&(this.anythingElse(),tree.insertionMode.processCharacters(buffer))},modes.inHead.startTagHtml=function(name,attributes){modes.inBody.processStartTag(name,attributes)},modes.inHead.startTagHead=function(){tree.parseError("two-heads-are-not-better-than-one")},modes.inHead.startTagTitle=function(name,attributes){tree.processGenericRCDATAStartTag(name,attributes)},modes.inHead.startTagNoScript=function(name,attributes){return tree.scriptingEnabled?tree.processGenericRawTextStartTag(name,attributes):(tree.insertElement(name,attributes),tree.setInsertionMode("inHeadNoscript"),void 0)},modes.inHead.startTagNoFramesStyle=function(name,attributes){tree.processGenericRawTextStartTag(name,attributes)},modes.inHead.startTagScript=function(name,attributes){tree.insertElement(name,attributes),tree.tokenizer.setState(Tokenizer.SCRIPT_DATA),tree.originalInsertionMode=tree.insertionModeName,tree.setInsertionMode("text")},modes.inHead.startTagBaseBasefontBgsoundLink=function(name,attributes){tree.insertSelfClosingElement(name,attributes)},modes.inHead.startTagMeta=function(name,attributes){tree.insertSelfClosingElement(name,attributes)},modes.inHead.startTagOther=function(name,attributes,selfClosing){this.anythingElse(),tree.insertionMode.processStartTag(name,attributes,selfClosing)},modes.inHead.endTagHead=function(){"head"==tree.openElements.item(tree.openElements.length-1).localName?tree.openElements.pop():tree.parseError("unexpected-end-tag",{name:"head"}),tree.setInsertionMode("afterHead")},modes.inHead.endTagHtmlBodyBr=function(name){this.anythingElse(),tree.insertionMode.processEndTag(name)},modes.inHead.endTagOther=function(name){tree.parseError("unexpected-end-tag",{name:name})},modes.inHead.anythingElse=function(){this.endTagHead("head")},modes.afterHead=Object.create(modes.base),modes.afterHead.start_tag_handlers={html:"startTagHtml",head:"startTagHead",body:"startTagBody",frameset:"startTagFrameset",base:"startTagFromHead",link:"startTagFromHead",meta:"startTagFromHead",script:"startTagFromHead",style:"startTagFromHead",title:"startTagFromHead","-default":"startTagOther"},modes.afterHead.end_tag_handlers={body:"endTagBodyHtmlBr",html:"endTagBodyHtmlBr",br:"endTagBodyHtmlBr","-default":"endTagOther"},modes.afterHead.processEOF=function(){this.anythingElse(),tree.insertionMode.processEOF()},modes.afterHead.processCharacters=function(buffer){var leadingWhitespace=buffer.takeLeadingWhitespace();leadingWhitespace&&tree.insertText(leadingWhitespace),buffer.length&&(this.anythingElse(),tree.insertionMode.processCharacters(buffer))},modes.afterHead.startTagHtml=function(name,attributes){modes.inBody.processStartTag(name,attributes)},modes.afterHead.startTagBody=function(name,attributes){tree.framesetOk=!1,tree.insertBodyElement(attributes),tree.setInsertionMode("inBody")},modes.afterHead.startTagFrameset=function(name,attributes){tree.insertElement(name,attributes),tree.setInsertionMode("inFrameset")},modes.afterHead.startTagFromHead=function(name,attributes,selfClosing){tree.parseError("unexpected-start-tag-out-of-my-head",{name:name}),tree.openElements.push(tree.head),modes.inHead.processStartTag(name,attributes,selfClosing),tree.openElements.remove(tree.head)},modes.afterHead.startTagHead=function(name){tree.parseError("unexpected-start-tag",{name:name})},modes.afterHead.startTagOther=function(name,attributes,selfClosing){this.anythingElse(),tree.insertionMode.processStartTag(name,attributes,selfClosing)},modes.afterHead.endTagBodyHtmlBr=function(name){this.anythingElse(),tree.insertionMode.processEndTag(name)},modes.afterHead.endTagOther=function(name){tree.parseError("unexpected-end-tag",{name:name})},modes.afterHead.anythingElse=function(){tree.insertBodyElement([]),tree.setInsertionMode("inBody"),tree.framesetOk=!0},modes.inBody=Object.create(modes.base),modes.inBody.start_tag_handlers={html:"startTagHtml",head:"startTagMisplaced",base:"startTagProcessInHead",basefont:"startTagProcessInHead",bgsound:"startTagProcessInHead",link:"startTagProcessInHead",meta:"startTagProcessInHead",noframes:"startTagProcessInHead",script:"startTagProcessInHead",style:"startTagProcessInHead",title:"startTagProcessInHead",body:"startTagBody",form:"startTagForm",plaintext:"startTagPlaintext",a:"startTagA",button:"startTagButton",xmp:"startTagXmp",table:"startTagTable",hr:"startTagHr",image:"startTagImage",input:"startTagInput",textarea:"startTagTextarea",select:"startTagSelect",isindex:"startTagIsindex",applet:"startTagAppletMarqueeObject",marquee:"startTagAppletMarqueeObject",object:"startTagAppletMarqueeObject",li:"startTagListItem",dd:"startTagListItem",dt:"startTagListItem",address:"startTagCloseP",article:"startTagCloseP",aside:"startTagCloseP",blockquote:"startTagCloseP",center:"startTagCloseP",details:"startTagCloseP",dir:"startTagCloseP",div:"startTagCloseP",dl:"startTagCloseP",fieldset:"startTagCloseP",figcaption:"startTagCloseP",figure:"startTagCloseP",footer:"startTagCloseP",header:"startTagCloseP",hgroup:"startTagCloseP",main:"startTagCloseP",menu:"startTagCloseP",nav:"startTagCloseP",ol:"startTagCloseP",p:"startTagCloseP",section:"startTagCloseP",summary:"startTagCloseP",ul:"startTagCloseP",listing:"startTagPreListing",pre:"startTagPreListing",b:"startTagFormatting",big:"startTagFormatting",code:"startTagFormatting",em:"startTagFormatting",font:"startTagFormatting",i:"startTagFormatting",s:"startTagFormatting",small:"startTagFormatting",strike:"startTagFormatting",strong:"startTagFormatting",tt:"startTagFormatting",u:"startTagFormatting",nobr:"startTagNobr",area:"startTagVoidFormatting",br:"startTagVoidFormatting",embed:"startTagVoidFormatting",img:"startTagVoidFormatting",keygen:"startTagVoidFormatting",wbr:"startTagVoidFormatting",param:"startTagParamSourceTrack",source:"startTagParamSourceTrack",track:"startTagParamSourceTrack",iframe:"startTagIFrame",noembed:"startTagRawText",noscript:"startTagRawText",h1:"startTagHeading",h2:"startTagHeading",h3:"startTagHeading",h4:"startTagHeading",h5:"startTagHeading",h6:"startTagHeading",caption:"startTagMisplaced",col:"startTagMisplaced",colgroup:"startTagMisplaced",frame:"startTagMisplaced",frameset:"startTagFrameset",tbody:"startTagMisplaced",td:"startTagMisplaced",tfoot:"startTagMisplaced",th:"startTagMisplaced",thead:"startTagMisplaced",tr:"startTagMisplaced",option:"startTagOptionOptgroup",optgroup:"startTagOptionOptgroup",math:"startTagMath",svg:"startTagSVG",rt:"startTagRpRt",rp:"startTagRpRt","-default":"startTagOther"},modes.inBody.end_tag_handlers={p:"endTagP",body:"endTagBody",html:"endTagHtml",address:"endTagBlock",article:"endTagBlock",aside:"endTagBlock",blockquote:"endTagBlock",button:"endTagBlock",center:"endTagBlock",details:"endTagBlock",dir:"endTagBlock",div
8:"endTagBlock",dl:"endTagBlock",fieldset:"endTagBlock",figcaption:"endTagBlock",figure:"endTagBlock",footer:"endTagBlock",header:"endTagBlock",hgroup:"endTagBlock",listing:"endTagBlock",main:"endTagBlock",menu:"endTagBlock",nav:"endTagBlock",ol:"endTagBlock",pre:"endTagBlock",section:"endTagBlock",summary:"endTagBlock",ul:"endTagBlock",form:"endTagForm",applet:"endTagAppletMarqueeObject",marquee:"endTagAppletMarqueeObject",object:"endTagAppletMarqueeObject",dd:"endTagListItem",dt:"endTagListItem",li:"endTagListItem",h1:"endTagHeading",h2:"endTagHeading",h3:"endTagHeading",h4:"endTagHeading",h5:"endTagHeading",h6:"endTagHeading",a:"endTagFormatting",b:"endTagFormatting",big:"endTagFormatting",code:"endTagFormatting",em:"endTagFormatting",font:"endTagFormatting",i:"endTagFormatting",nobr:"endTagFormatting",s:"endTagFormatting",small:"endTagFormatting",strike:"endTagFormatting",strong:"endTagFormatting",tt:"endTagFormatting",u:"endTagFormatting",br:"endTagBr","-default":"endTagOther"},modes.inBody.processCharacters=function(buffer){tree.shouldSkipLeadingNewline&&(tree.shouldSkipLeadingNewline=!1,buffer.skipAtMostOneLeadingNewline()),tree.reconstructActiveFormattingElements();var characters=buffer.takeRemaining();characters=characters.replace(/\\u0000/g,function(){return tree.parseError("invalid-codepoint"),""}),characters&&(tree.insertText(characters),tree.framesetOk&&!isAllWhitespaceOrReplacementCharacters(characters)&&(tree.framesetOk=!1))},modes.inBody.startTagHtml=function(name,attributes){tree.parseError("non-html-root"),tree.addAttributesToElement(tree.openElements.rootNode,attributes)},modes.inBody.startTagProcessInHead=function(name,attributes){modes.inHead.processStartTag(name,attributes)},modes.inBody.startTagBody=function(name,attributes){tree.parseError("unexpected-start-tag",{name:"body"}),1==tree.openElements.length||"body"!=tree.openElements.item(1).localName?assert.ok(tree.context):(tree.framesetOk=!1,tree.addAttributesToElement(tree.openElements.bodyElement,attributes))},modes.inBody.startTagFrameset=function(name,attributes){if(tree.parseError("unexpected-start-tag",{name:"frameset"}),1==tree.openElements.length||"body"!=tree.openElements.item(1).localName)assert.ok(tree.context);else if(tree.framesetOk){for(tree.detachFromParent(tree.openElements.bodyElement);tree.openElements.length>1;)tree.openElements.pop();tree.insertElement(name,attributes),tree.setInsertionMode("inFrameset")}},modes.inBody.startTagCloseP=function(name,attributes){tree.openElements.inButtonScope("p")&&this.endTagP("p"),tree.insertElement(name,attributes)},modes.inBody.startTagPreListing=function(name,attributes){tree.openElements.inButtonScope("p")&&this.endTagP("p"),tree.insertElement(name,attributes),tree.framesetOk=!1,tree.shouldSkipLeadingNewline=!0},modes.inBody.startTagForm=function(name,attributes){tree.form?tree.parseError("unexpected-start-tag",{name:name}):(tree.openElements.inButtonScope("p")&&this.endTagP("p"),tree.insertElement(name,attributes),tree.form=tree.currentStackItem())},modes.inBody.startTagRpRt=function(name,attributes){tree.openElements.inScope("ruby")&&(tree.generateImpliedEndTags(),"ruby"!=tree.currentStackItem().localName&&tree.parseError("unexpected-start-tag",{name:name})),tree.insertElement(name,attributes)},modes.inBody.startTagListItem=function(name,attributes){for(var stopNames={li:["li"],dd:["dd","dt"],dt:["dd","dt"]},stopName=stopNames[name],els=tree.openElements,i=els.length-1;i>=0;i--){var node=els.item(i);if(-1!=stopName.indexOf(node.localName)){tree.insertionMode.processEndTag(node.localName);break}if(node.isSpecial()&&"p"!==node.localName&&"address"!==node.localName&&"div"!==node.localName)break}tree.openElements.inButtonScope("p")&&this.endTagP("p"),tree.insertElement(name,attributes),tree.framesetOk=!1},modes.inBody.startTagPlaintext=function(name,attributes){tree.openElements.inButtonScope("p")&&this.endTagP("p"),tree.insertElement(name,attributes),tree.tokenizer.setState(Tokenizer.PLAINTEXT)},modes.inBody.startTagHeading=function(name,attributes){tree.openElements.inButtonScope("p")&&this.endTagP("p"),tree.currentStackItem().isNumberedHeader()&&(tree.parseError("unexpected-start-tag",{name:name}),tree.popElement()),tree.insertElement(name,attributes)},modes.inBody.startTagA=function(name,attributes){var activeA=tree.elementInActiveFormattingElements("a");activeA&&(tree.parseError("unexpected-start-tag-implies-end-tag",{startName:"a",endName:"a"}),tree.adoptionAgencyEndTag("a"),tree.openElements.contains(activeA)&&tree.openElements.remove(activeA),tree.removeElementFromActiveFormattingElements(activeA)),tree.reconstructActiveFormattingElements(),tree.insertFormattingElement(name,attributes)},modes.inBody.startTagFormatting=function(name,attributes){tree.reconstructActiveFormattingElements(),tree.insertFormattingElement(name,attributes)},modes.inBody.startTagNobr=function(name,attributes){tree.reconstructActiveFormattingElements(),tree.openElements.inScope("nobr")&&(tree.parseError("unexpected-start-tag-implies-end-tag",{startName:"nobr",endName:"nobr"}),this.processEndTag("nobr"),tree.reconstructActiveFormattingElements()),tree.insertFormattingElement(name,attributes)},modes.inBody.startTagButton=function(name,attributes){tree.openElements.inScope("button")?(tree.parseError("unexpected-start-tag-implies-end-tag",{startName:"button",endName:"button"}),this.processEndTag("button"),tree.insertionMode.processStartTag(name,attributes)):(tree.framesetOk=!1,tree.reconstructActiveFormattingElements(),tree.insertElement(name,attributes))},modes.inBody.startTagAppletMarqueeObject=function(name,attributes){tree.reconstructActiveFormattingElements(),tree.insertElement(name,attributes),tree.activeFormattingElements.push(Marker),tree.framesetOk=!1},modes.inBody.endTagAppletMarqueeObject=function(name){tree.openElements.inScope(name)?(tree.generateImpliedEndTags(),tree.currentStackItem().localName!=name&&tree.parseError("end-tag-too-early",{name:name}),tree.openElements.popUntilPopped(name),tree.clearActiveFormattingElements()):tree.parseError("unexpected-end-tag",{name:name})},modes.inBody.startTagXmp=function(name,attributes){tree.openElements.inButtonScope("p")&&this.processEndTag("p"),tree.reconstructActiveFormattingElements(),tree.processGenericRawTextStartTag(name,attributes),tree.framesetOk=!1},modes.inBody.startTagTable=function(name,attributes){"quirks"!==tree.compatMode&&tree.openElements.inButtonScope("p")&&this.processEndTag("p"),tree.insertElement(name,attributes),tree.setInsertionMode("inTable"),tree.framesetOk=!1},modes.inBody.startTagVoidFormatting=function(name,attributes){tree.reconstructActiveFormattingElements(),tree.insertSelfClosingElement(name,attributes),tree.framesetOk=!1},modes.inBody.startTagParamSourceTrack=function(name,attributes){tree.insertSelfClosingElement(name,attributes)},modes.inBody.startTagHr=function(name,attributes){tree.openElements.inButtonScope("p")&&this.endTagP("p"),tree.insertSelfClosingElement(name,attributes),tree.framesetOk=!1},modes.inBody.startTagImage=function(name,attributes){tree.parseError("unexpected-start-tag-treated-as",{originalName:"image",newName:"img"}),this.processStartTag("img",attributes)},modes.inBody.startTagInput=function(name,attributes){var currentFramesetOk=tree.framesetOk;this.startTagVoidFormatting(name,attributes);for(var key in attributes)if("type"==attributes[key].nodeName){"hidden"==attributes[key].nodeValue.toLowerCase()&&(tree.framesetOk=currentFramesetOk);break}}
8,modes.inBody.startTagIsindex=function(name,attributes){if(tree.parseError("deprecated-tag",{name:"isindex"}),tree.selfClosingFlagAcknowledged=!0,!tree.form){var formAttributes=[],inputAttributes=[],prompt="This is a searchable index. Enter search keywords: ";for(var key in attributes)switch(attributes[key].nodeName){case"action":formAttributes.push({nodeName:"action",nodeValue:attributes[key].nodeValue});break;case"prompt":prompt=attributes[key].nodeValue;break;case"name":break;default:inputAttributes.push({nodeName:attributes[key].nodeName,nodeValue:attributes[key].nodeValue})}inputAttributes.push({nodeName:"name",nodeValue:"isindex"}),this.processStartTag("form",formAttributes),this.processStartTag("hr"),this.processStartTag("label"),this.processCharacters(new CharacterBuffer(prompt)),this.processStartTag("input",inputAttributes),this.processEndTag("label"),this.processStartTag("hr"),this.processEndTag("form")}},modes.inBody.startTagTextarea=function(name,attributes){tree.insertElement(name,attributes),tree.tokenizer.setState(Tokenizer.RCDATA),tree.originalInsertionMode=tree.insertionModeName,tree.shouldSkipLeadingNewline=!0,tree.framesetOk=!1,tree.setInsertionMode("text")},modes.inBody.startTagIFrame=function(name,attributes){tree.framesetOk=!1,this.startTagRawText(name,attributes)},modes.inBody.startTagRawText=function(name,attributes){tree.processGenericRawTextStartTag(name,attributes)},modes.inBody.startTagSelect=function(name,attributes){tree.reconstructActiveFormattingElements(),tree.insertElement(name,attributes),tree.framesetOk=!1;var insertionModeName=tree.insertionModeName;"inTable"==insertionModeName||"inCaption"==insertionModeName||"inColumnGroup"==insertionModeName||"inTableBody"==insertionModeName||"inRow"==insertionModeName||"inCell"==insertionModeName?tree.setInsertionMode("inSelectInTable"):tree.setInsertionMode("inSelect")},modes.inBody.startTagMisplaced=function(name){tree.parseError("unexpected-start-tag-ignored",{name:name})},modes.inBody.endTagMisplaced=function(name){tree.parseError("unexpected-end-tag",{name:name})},modes.inBody.endTagBr=function(name){tree.parseError("unexpected-end-tag-treated-as",{originalName:"br",newName:"br element"}),tree.reconstructActiveFormattingElements(),tree.insertElement(name,[]),tree.popElement()},modes.inBody.startTagOptionOptgroup=function(name,attributes){"option"==tree.currentStackItem().localName&&tree.popElement(),tree.reconstructActiveFormattingElements(),tree.insertElement(name,attributes)},modes.inBody.startTagOther=function(name,attributes){tree.reconstructActiveFormattingElements(),tree.insertElement(name,attributes)},modes.inBody.endTagOther=function(name){for(var node,i=tree.openElements.length-1;i>0;i--){if(node=tree.openElements.item(i),node.localName==name){tree.generateImpliedEndTags(name),tree.currentStackItem().localName!=name&&tree.parseError("unexpected-end-tag",{name:name}),tree.openElements.remove_openElements_until(function(x){return x===node});break}if(node.isSpecial()){tree.parseError("unexpected-end-tag",{name:name});break}}},modes.inBody.startTagMath=function(name,attributes,selfClosing){tree.reconstructActiveFormattingElements(),attributes=tree.adjustMathMLAttributes(attributes),attributes=tree.adjustForeignAttributes(attributes),tree.insertForeignElement(name,attributes,"http://www.w3.org/1998/Math/MathML",selfClosing)},modes.inBody.startTagSVG=function(name,attributes,selfClosing){tree.reconstructActiveFormattingElements(),attributes=tree.adjustSVGAttributes(attributes),attributes=tree.adjustForeignAttributes(attributes),tree.insertForeignElement(name,attributes,"http://www.w3.org/2000/svg",selfClosing)},modes.inBody.endTagP=function(name){tree.openElements.inButtonScope("p")?(tree.generateImpliedEndTags("p"),"p"!=tree.currentStackItem().localName&&tree.parseError("unexpected-implied-end-tag",{name:"p"}),tree.openElements.popUntilPopped(name)):(tree.parseError("unexpected-end-tag",{name:"p"}),this.startTagCloseP("p",[]),this.endTagP("p"))},modes.inBody.endTagBody=function(name){return tree.openElements.inScope("body")?("body"!=tree.currentStackItem().localName&&tree.parseError("expected-one-end-tag-but-got-another",{expectedName:tree.currentStackItem().localName,gotName:name}),tree.setInsertionMode("afterBody"),void 0):(tree.parseError("unexpected-end-tag",{name:name}),void 0)},modes.inBody.endTagHtml=function(name){return tree.openElements.inScope("body")?("body"!=tree.currentStackItem().localName&&tree.parseError("expected-one-end-tag-but-got-another",{expectedName:tree.currentStackItem().localName,gotName:name}),tree.setInsertionMode("afterBody"),tree.insertionMode.processEndTag(name),void 0):(tree.parseError("unexpected-end-tag",{name:name}),void 0)},modes.inBody.endTagBlock=function(name){tree.openElements.inScope(name)?(tree.generateImpliedEndTags(),tree.currentStackItem().localName!=name&&tree.parseError("end-tag-too-early",{name:name}),tree.openElements.popUntilPopped(name)):tree.parseError("unexpected-end-tag",{name:name})},modes.inBody.endTagForm=function(name){var node=tree.form;tree.form=null,node&&tree.openElements.inScope(name)?(tree.generateImpliedEndTags(),tree.currentStackItem()!=node&&tree.parseError("end-tag-too-early-ignored",{name:"form"}),tree.openElements.remove(node)):tree.parseError("unexpected-end-tag",{name:name})},modes.inBody.endTagListItem=function(name){tree.openElements.inListItemScope(name)?(tree.generateImpliedEndTags(name),tree.currentStackItem().localName!=name&&tree.parseError("end-tag-too-early",{name:name}),tree.openElements.popUntilPopped(name)):tree.parseError("unexpected-end-tag",{name:name})},modes.inBody.endTagHeading=function(name){return tree.openElements.hasNumberedHeaderElementInScope()?(tree.generateImpliedEndTags(),tree.currentStackItem().localName!=name&&tree.parseError("end-tag-too-early",{name:name}),tree.openElements.remove_openElements_until(function(e){return e.isNumberedHeader()}),void 0):(tree.parseError("unexpected-end-tag",{name:name}),void 0)},modes.inBody.endTagFormatting=function(name,attributes){tree.adoptionAgencyEndTag(name)||this.endTagOther(name,attributes)},modes.inCaption=Object.create(modes.base),modes.inCaption.start_tag_handlers={html:"startTagHtml",caption:"startTagTableElement",col:"startTagTableElement",colgroup:"startTagTableElement",tbody:"startTagTableElement",td:"startTagTableElement",tfoot:"startTagTableElement",thead:"startTagTableElement",tr:"startTagTableElement","-default":"startTagOther"},modes.inCaption.end_tag_handlers={caption:"endTagCaption",table:"endTagTable",body:"endTagIgnore",col:"endTagIgnore",colgroup:"endTagIgnore",html:"endTagIgnore",tbody:"endTagIgnore",td:"endTagIgnore",tfood:"endTagIgnore",thead:"endTagIgnore",tr:"endTagIgnore","-default":"endTagOther"},modes.inCaption.processCharacters=function(data){modes.inBody.processCharacters(data)},modes.inCaption.startTagTableElement=function(name,attributes){tree.parseError("unexpected-end-tag",{name:name});var ignoreEndTag=!tree.openElements.inTableScope("caption");tree.insertionMode.processEndTag("caption"),ignoreEndTag||tree.insertionMode.processStartTag(name,attributes)},modes.inCaption.startTagOther=function(name,attributes,selfClosing){modes.inBody.processStartTag(name,attributes,selfClosing)},modes.inCaption.endTagCaption=function(name){tree.openElements.inTableScope("caption")?(tree.generateImpliedEndTags(),"caption"!=tree.currentStackItem().localName&&tree.parseError("expected-one-end-tag-but-got-another",{gotName:"caption",expectedName:tree.currentStackItem().localName}),tree.openElements.popUntilPopped("caption"),tree.clearActiveFormattingElements(),tree.setInsertionMode("inTable")):(assert.ok(tree.context),tree.parseError("unexpected-end-tag",{name:name}))},modes.inCaption.endTagTable=function(name){tree.parseError("unexpected-end-table-in-caption");var ignoreEndTag=!tree.openElements.inTableScope("caption");tree.insertionMode.processEndTag("caption"),ignoreEndTag||tree.insertionMode.processEndTag(name)},modes.inCaption.endTagIgnore=function(name){tree.parseError("unexpected-end-tag",{name:name})},modes.inCaption.endTagOther=function(name){modes.inBody.processEndTag(name)},modes.inCell=Object.create(modes.base),modes.inCell.start_tag_handlers={html:"startTagHtml",caption:"startTagTableOther",col:"startTagTableOther",colgroup:"startTagTableOther",tbody:"startTagTableOther",td:"startTagTableOther",tfoot:"startTagTableOther",th:"startTagTableOther",thead:"startTagTableOther",tr:"startTagTableOther","-default":"startTagOther"},modes.inCell.end_tag_handlers={td:"endTagTableCell",th:"endTagTableCell",body:"endTagIgnore",caption:"endTagIgnore",col:"endTagIgnore",colgroup:"endTagIgnore",html:"endTagIgnore",table:"endTagImply",tbody:"endTagImply",tfoot:"endTagImply",thead:"endTagImply",tr:"endTagImply","-default":"endTagOther"},modes.inCell.processCharacters=function(data){modes.inBody.processCharacters(data)},modes.inCell.startTagTableOther=function(name,attributes,selfClosing){tree.openElements.inTableScope("td")||tree.openElements.inTableScope("th")?(this.closeCell(),tree.insertionMode.processStartTag(name,attributes,selfClosing)):tree.parseError("unexpected-start-tag",{name:name})},modes.inCell.startTagOther=function(name,attributes,selfClosing){modes.inBody.processStartTag(name,attributes,selfClosing)},modes.inCell.endTagTableCell=function(name){tree.openElements.inTableScope(name)?(tree.generateImpliedEndTags(name),tree.currentStackItem().localName!=name.toLowerCase()?(tree.parseError("unexpected-cell-end-tag",{name:name}),tree.openElements.popUntilPopped(name)):tree.popElement(),tree.clearActiveFormattingElements(),tree.setInsertionMode("inRow")):tree.parseError("unexpected-end-tag",{name:name})},modes.inCell.endTagIgnore=function(name){tree.parseError("unexpected-end-tag",{name:name})},modes.inCell.endTagImply=function(name){tree.openElements.inTableScope(name)?(this.closeCell(),tree.insertionMode.processEndTag(name)):tree.parseError("unexpected-end-tag",{name:name})},modes.inCell.endTagOther=function(name){modes.inBody.processEndTag(name)},modes.inCell.closeCell=function(){tree.openElements.inTableScope("td")?this.endTagTableCell("td"):tree.openElements.inTableScope("th")&&this.endTagTableCell("th")},modes.inColumnGroup=Object.create(modes.base),modes.inColumnGroup.start_tag_handlers={html:"startTagHtml",col:"startTagCol","-default":"startTagOther"},modes.inColumnGroup.end_tag_handlers={colgroup:"endTagColgroup",col:"endTagCol","-default":"endTagOther"},modes.inColumnGroup.ignoreEndTagColgroup=function(){return"html"==tree.currentStackItem().localName},modes.inColumnGroup.processCharacters=function(buffer){var leadingWhitespace=buffer.takeLeadingWhitespace();if(leadingWhitespace&&tree.insertText(leadingWhitespace),buffer.length){var ignoreEndTag=this.ignoreEndTagColgroup();this.endTagColgroup("colgroup"),ignoreEndTag||tree.insertionMode.processCharacters(buffer)}},modes.inColumnGroup.startTagCol=function(name,attributes){tree.insertSelfClosingElement(name,attributes)},modes.inColumnGroup.startTagOther=function(name,attributes,selfClosing){var ignoreEndTag=this.ignoreEndTagColgroup();this.endTagColgroup("colgroup"),ignoreEndTag||tree.insertionMode.processStartTag(name,attributes,selfClosing)},modes.inColumnGroup.endTagColgroup=function(name){this.ignoreEndTagColgroup()?(assert.ok(tree.context),tree.parseError("unexpected-end-tag",{name:name})):(tree.popElement(),tree.setInsertionMode("inTable"))},modes.inColumnGroup.endTagCol=function(){tree.parseError("no-end-tag",{name:"col"})},modes.inColumnGroup.endTagOther=function(name){var ignoreEndTag=this.ignoreEndTagColgroup();this.endTagColgroup("colgroup"),ignoreEndTag||tree.insertionMode.processEndTag(name)},modes.inForeignContent=Object.create(modes.base),modes.inForeignContent.processStartTag=function(name,attributes,selfClosing){if(-1!=["b","big","blockquote","body","br","center","code","dd","div","dl","dt","em","embed","h1","h2","h3","h4","h5","h6","head","hr","i","img","li","listing","menu","meta","nobr","ol","p","pre","ruby","s","small","span","strong","strike","sub","sup","table","tt","u","ul","var"].indexOf(name)||"font"==name&&attributes.some(function(attr){return["color","face","size"].indexOf(attr.nodeName)>=0})){for(tree.parseError("unexpected-html-element-in-foreign-content",{name:name});tree.currentStackItem().isForeign()&&!tree.currentStackItem().isHtmlIntegrationPoint()&&!tree.currentStackItem().isMathMLTextIntegrationPoint();)tree.openElements.pop();return tree.insertionMode.processStartTag(name,attributes,selfClosing),void 0}"http://www.w3.org/1998/Math/MathML"==tree.currentStackItem().namespaceURI&&(attributes=tree.adjustMathMLAttributes(attributes)),"http://www.w3.org/2000/svg"==tree.currentStackItem().namespaceURI&&(name=tree.adjustSVGTagNameCase(name),attributes=tree.adjustSVGAttributes(attributes)),attributes=tree.adjustForeignAttributes(attributes),tree.insertForeignElement(name,attributes,tree.currentStackItem().namespaceURI,selfClosing)},modes.inForeignContent.processEndTag=function(name){var node=tree.currentStackItem(),index=tree.openElements.length-1;for(node.localName.toLowerCase()!=name&&tree.parseError("unexpected-end-tag",{name:name});;){if(0===index)break;if(node.localName.toLowerCase()==name){for(;tree.openElements.pop()!=node;);break}if(index-=1,node=tree.openElements.item(index),!node.isForeign()){tree.insertionMode.processEndTag(name);break}}},modes.inForeignContent.processCharacters=function(buffer){var characters=buffer.takeRemaining();characters=characters.replace(/\\u0000/g,function(){return tree.parseError("invalid-codepoint"),"�"}),tree.framesetOk&&!isAllWhitespaceOrReplacementCharacters(characters)&&(tree.framesetOk=!1),tree.insertText(characters)},modes.inHeadNoscript=Object.create(modes.base),modes.inHeadNoscript.start_tag_handlers={html:"startTagHtml",basefont:"startTagBasefontBgsoundLinkMetaNoframesStyle",bgsound:"startTagBasefontBgsoundLinkMetaNoframesStyle",link:"startTagBasefontBgsoundLinkMetaNoframesStyle",meta:"startTagBasefontBgsoundLinkMetaNoframesStyle",noframes:"startTagBasefontBgsoundLinkMetaNoframesStyle",style:"startTagBasefontBgsoundLinkMetaNoframesStyle",head:"startTagHeadNoscript",noscript:"startTagHeadNoscript","-default":"startTagOther"},modes.inHeadNoscript.end_tag_handlers={noscript:"endTagNoscript",br:"endTagBr","-default":"endTagOther"},modes.inHeadNoscript.processCharacters=function(buffer){var leadingWhitespace=buffer.takeLeadingWhitespace();leadingWhitespace&&tree.insertText(leadingWhitespace),buffer.length&&(tree.parseError("unexpected-char-in-frameset"),this.anythingElse(),tree.insertionMode.processCharacters(buffer))},modes.inHeadNoscript.processComment=function(data){modes.inHead.processComment(data)},modes.inHeadNoscript.startTagBasefontBgsoundLinkMetaNoframesStyle=function(name,attributes){modes.inHead.processStartTag(name,attributes)},modes.inHeadNoscript.startTagHeadNoscript=function(name){tree.parseError("unexpected-start-tag-in-frameset",{name:name})},modes.inHeadNoscript.startTagOther=function(name,attributes){tree.parseError("unexpected-start-tag-in-frameset",{name:name}),this.anythingElse(),tree.insertionMode.processStartTag(name,attributes)},modes.inHeadNoscript.endTagBr=function(name,attributes){tree.parseError("unexpected-end-tag-in-frameset",{name:name}),this.anythingElse(),tree.insertionMode.processEndTag(name,attributes)},modes.inHeadNoscript.endTagNoscript=function(){tree.popElement(),tree.setInsertionMode("inHead")},modes.inHeadNoscript.endTagOther=function(name){tree.parseError("unexpected-end-tag-in-frameset",{name:name})},modes.inHeadNoscript.anythingElse=function(){tree.popElement(),tree.setInsertionMode("inHead")},modes.inFrameset=Object.create(modes.base),modes.inFrameset.start_tag_handlers={html:"startTagHtml",frameset:"startTagFrameset",frame:"startTagFrame",n
8oframes:"startTagNoframes","-default":"startTagOther"},modes.inFrameset.end_tag_handlers={frameset:"endTagFrameset",noframes:"endTagNoframes","-default":"endTagOther"},modes.inFrameset.processCharacters=function(){tree.parseError("unexpected-char-in-frameset")},modes.inFrameset.startTagFrameset=function(name,attributes){tree.insertElement(name,attributes)},modes.inFrameset.startTagFrame=function(name,attributes){tree.insertSelfClosingElement(name,attributes)},modes.inFrameset.startTagNoframes=function(name,attributes){modes.inBody.processStartTag(name,attributes)},modes.inFrameset.startTagOther=function(name){tree.parseError("unexpected-start-tag-in-frameset",{name:name})},modes.inFrameset.endTagFrameset=function(){"html"==tree.currentStackItem().localName?tree.parseError("unexpected-frameset-in-frameset-innerhtml"):tree.popElement(),tree.context||"frameset"==tree.currentStackItem().localName||tree.setInsertionMode("afterFrameset")},modes.inFrameset.endTagNoframes=function(name){modes.inBody.processEndTag(name)},modes.inFrameset.endTagOther=function(name){tree.parseError("unexpected-end-tag-in-frameset",{name:name})},modes.inTable=Object.create(modes.base),modes.inTable.start_tag_handlers={html:"startTagHtml",caption:"startTagCaption",colgroup:"startTagColgroup",col:"startTagCol",table:"startTagTable",tbody:"startTagRowGroup",tfoot:"startTagRowGroup",thead:"startTagRowGroup",td:"startTagImplyTbody",th:"startTagImplyTbody",tr:"startTagImplyTbody",style:"startTagStyleScript",script:"startTagStyleScript",input:"startTagInput",form:"startTagForm","-default":"startTagOther"},modes.inTable.end_tag_handlers={table:"endTagTable",body:"endTagIgnore",caption:"endTagIgnore",col:"endTagIgnore",colgroup:"endTagIgnore",html:"endTagIgnore",tbody:"endTagIgnore",td:"endTagIgnore",tfoot:"endTagIgnore",th:"endTagIgnore",thead:"endTagIgnore",tr:"endTagIgnore","-default":"endTagOther"},modes.inTable.processCharacters=function(data){if(tree.currentStackItem().isFosterParenting()){var originalInsertionMode=tree.insertionModeName;\ntree.setInsertionMode("inTableText"),tree.originalInsertionMode=originalInsertionMode,tree.insertionMode.processCharacters(data)}else tree.redirectAttachToFosterParent=!0,modes.inBody.processCharacters(data),tree.redirectAttachToFosterParent=!1},modes.inTable.startTagCaption=function(name,attributes){tree.openElements.popUntilTableScopeMarker(),tree.activeFormattingElements.push(Marker),tree.insertElement(name,attributes),tree.setInsertionMode("inCaption")},modes.inTable.startTagColgroup=function(name,attributes){tree.openElements.popUntilTableScopeMarker(),tree.insertElement(name,attributes),tree.setInsertionMode("inColumnGroup")},modes.inTable.startTagCol=function(name,attributes){this.startTagColgroup("colgroup",[]),tree.insertionMode.processStartTag(name,attributes)},modes.inTable.startTagRowGroup=function(name,attributes){tree.openElements.popUntilTableScopeMarker(),tree.insertElement(name,attributes),tree.setInsertionMode("inTableBody")},modes.inTable.startTagImplyTbody=function(name,attributes){this.startTagRowGroup("tbody",[]),tree.insertionMode.processStartTag(name,attributes)},modes.inTable.startTagTable=function(name,attributes){tree.parseError("unexpected-start-tag-implies-end-tag",{startName:"table",endName:"table"}),tree.insertionMode.processEndTag("table"),tree.context||tree.insertionMode.processStartTag(name,attributes)},modes.inTable.startTagStyleScript=function(name,attributes){modes.inHead.processStartTag(name,attributes)},modes.inTable.startTagInput=function(name,attributes){for(var key in attributes)if("type"==attributes[key].nodeName.toLowerCase()){if("hidden"==attributes[key].nodeValue.toLowerCase())return tree.parseError("unexpected-hidden-input-in-table"),tree.insertElement(name,attributes),tree.openElements.pop(),void 0;break}this.startTagOther(name,attributes)},modes.inTable.startTagForm=function(name,attributes){tree.parseError("unexpected-form-in-table"),tree.form||(tree.insertElement(name,attributes),tree.form=tree.currentStackItem(),tree.openElements.pop())},modes.inTable.startTagOther=function(name,attributes,selfClosing){tree.parseError("unexpected-start-tag-implies-table-voodoo",{name:name}),tree.redirectAttachToFosterParent=!0,modes.inBody.processStartTag(name,attributes,selfClosing),tree.redirectAttachToFosterParent=!1},modes.inTable.endTagTable=function(name){tree.openElements.inTableScope(name)?(tree.generateImpliedEndTags(),tree.currentStackItem().localName!=name&&tree.parseError("end-tag-too-early-named",{gotName:"table",expectedName:tree.currentStackItem().localName}),tree.openElements.popUntilPopped("table"),tree.resetInsertionMode()):(assert.ok(tree.context),tree.parseError("unexpected-end-tag",{name:name}))},modes.inTable.endTagIgnore=function(name){tree.parseError("unexpected-end-tag",{name:name})},modes.inTable.endTagOther=function(name){tree.parseError("unexpected-end-tag-implies-table-voodoo",{name:name}),tree.redirectAttachToFosterParent=!0,modes.inBody.processEndTag(name),tree.redirectAttachToFosterParent=!1},modes.inTableText=Object.create(modes.base),modes.inTableText.flushCharacters=function(){var characters=tree.pendingTableCharacters.join("");isAllWhitespace(characters)?tree.insertText(characters):(tree.redirectAttachToFosterParent=!0,tree.reconstructActiveFormattingElements(),tree.insertText(characters),tree.framesetOk=!1,tree.redirectAttachToFosterParent=!1),tree.pendingTableCharacters=[]},modes.inTableText.processComment=function(data){this.flushCharacters(),tree.setInsertionMode(tree.originalInsertionMode),tree.insertionMode.processComment(data)},modes.inTableText.processEOF=function(){this.flushCharacters(),tree.setInsertionMode(tree.originalInsertionMode),tree.insertionMode.processEOF()},modes.inTableText.processCharacters=function(buffer){var characters=buffer.takeRemaining();characters=characters.replace(/\\u0000/g,function(){return tree.parseError("invalid-codepoint"),""}),characters&&tree.pendingTableCharacters.push(characters)},modes.inTableText.processStartTag=function(name,attributes,selfClosing){this.flushCharacters(),tree.setInsertionMode(tree.originalInsertionMode),tree.insertionMode.processStartTag(name,attributes,selfClosing)},modes.inTableText.processEndTag=function(name,attributes){this.flushCharacters(),tree.setInsertionMode(tree.originalInsertionMode),tree.insertionMode.processEndTag(name,attributes)},modes.inTableBody=Object.create(modes.base),modes.inTableBody.start_tag_handlers={html:"startTagHtml",tr:"startTagTr",td:"startTagTableCell",th:"startTagTableCell",caption:"startTagTableOther",col:"startTagTableOther",colgroup:"startTagTableOther",tbody:"startTagTableOther",tfoot:"startTagTableOther",thead:"startTagTableOther","-default":"startTagOther"},modes.inTableBody.end_tag_handlers={table:"endTagTable",tbody:"endTagTableRowGroup",tfoot:"endTagTableRowGroup",thead:"endTagTableRowGroup",body:"endTagIgnore",caption:"endTagIgnore",col:"endTagIgnore",colgroup:"endTagIgnore",html:"endTagIgnore",td:"endTagIgnore",th:"endTagIgnore",tr:"endTagIgnore","-default":"endTagOther"},modes.inTableBody.processCharacters=function(data){modes.inTable.processCharacters(data)},modes.inTableBody.startTagTr=function(name,attributes){tree.openElements.popUntilTableBodyScopeMarker(),tree.insertElement(name,attributes),tree.setInsertionMode("inRow")},modes.inTableBody.startTagTableCell=function(name,attributes){tree.parseError("unexpected-cell-in-table-body",{name:name}),this.startTagTr("tr",[]),tree.insertionMode.processStartTag(name,attributes)},modes.inTableBody.startTagTableOther=function(name,attributes){tree.openElements.inTableScope("tbody")||tree.openElements.inTableScope("thead")||tree.openElements.inTableScope("tfoot")?(tree.openElements.popUntilTableBodyScopeMarker(),this.endTagTableRowGroup(tree.currentStackItem().localName),tree.insertionMode.processStartTag(name,attributes)):tree.parseError("unexpected-start-tag",{name:name})},modes.inTableBody.startTagOther=function(name,attributes){modes.inTable.processStartTag(name,attributes)},modes.inTableBody.endTagTableRowGroup=function(name){tree.openElements.inTableScope(name)?(tree.openElements.popUntilTableBodyScopeMarker(),tree.popElement(),tree.setInsertionMode("inTable")):tree.parseError("unexpected-end-tag-in-table-body",{name:name})},modes.inTableBody.endTagTable=function(name){tree.openElements.inTableScope("tbody")||tree.openElements.inTableScope("thead")||tree.openElements.inTableScope("tfoot")?(tree.openElements.popUntilTableBodyScopeMarker(),this.endTagTableRowGroup(tree.currentStackItem().localName),tree.insertionMode.processEndTag(name)):tree.parseError("unexpected-end-tag",{name:name})},modes.inTableBody.endTagIgnore=function(name){tree.parseError("unexpected-end-tag-in-table-body",{name:name})},modes.inTableBody.endTagOther=function(name){modes.inTable.processEndTag(name)},modes.inSelect=Object.create(modes.base),modes.inSelect.start_tag_handlers={html:"startTagHtml",option:"startTagOption",optgroup:"startTagOptgroup",select:"startTagSelect",input:"startTagInput",keygen:"startTagInput",textarea:"startTagInput",script:"startTagScript","-default":"startTagOther"},modes.inSelect.end_tag_handlers={option:"endTagOption",optgroup:"endTagOptgroup",select:"endTagSelect",caption:"endTagTableElements",table:"endTagTableElements",tbody:"endTagTableElements",tfoot:"endTagTableElements",thead:"endTagTableElements",tr:"endTagTableElements",td:"endTagTableElements",th:"endTagTableElements","-default":"endTagOther"},modes.inSelect.processCharacters=function(buffer){var data=buffer.takeRemaining();data=data.replace(/\\u0000/g,function(){return tree.parseError("invalid-codepoint"),""}),data&&tree.insertText(data)},modes.inSelect.startTagOption=function(name,attributes){"option"==tree.currentStackItem().localName&&tree.popElement(),tree.insertElement(name,attributes)},modes.inSelect.startTagOptgroup=function(name,attributes){"option"==tree.currentStackItem().localName&&tree.popElement(),"optgroup"==tree.currentStackItem().localName&&tree.popElement(),tree.insertElement(name,attributes)},modes.inSelect.endTagOption=function(name){return"option"!==tree.currentStackItem().localName?(tree.parseError("unexpected-end-tag-in-select",{name:name}),void 0):(tree.popElement(),void 0)},modes.inSelect.endTagOptgroup=function(){"option"==tree.currentStackItem().localName&&"optgroup"==tree.openElements.item(tree.openElements.length-2).localName&&tree.popElement(),"optgroup"==tree.currentStackItem().localName?tree.popElement():tree.parseError("unexpected-end-tag-in-select",{name:"optgroup"})},modes.inSelect.startTagSelect=function(){tree.parseError("unexpected-select-in-select"),this.endTagSelect("select")},modes.inSelect.endTagSelect=function(name){tree.openElements.inTableScope("select")?(tree.openElements.popUntilPopped("select"),tree.resetInsertionMode()):tree.parseError("unexpected-end-tag",{name:name})},modes.inSelect.startTagInput=function(name,attributes){tree.parseError("unexpected-input-in-select"),tree.openElements.inSelectScope("select")&&(this.endTagSelect("select"),tree.insertionMode.processStartTag(name,attributes))},modes.inSelect.startTagScript=function(name,attributes){modes.inHead.processStartTag(name,attributes)},modes.inSelect.endTagTableElements=function(name){tree.parseError("unexpected-end-tag-in-select",{name:name}),tree.openElements.inTableScope(name)&&(this.endTagSelect("select"),tree.insertionMode.processEndTag(name))},modes.inSelect.startTagOther=function(name){tree.parseError("unexpected-start-tag-in-select",{name:name})},modes.inSelect.endTagOther=function(name){tree.parseError("unexpected-end-tag-in-select",{name:name})},modes.inSelectInTable=Object.create(modes.base),modes.inSelectInTable.start_tag_handlers={caption:"startTagTable",table:"startTagTable",tbody:"startTagTable",tfoot:"startTagTable",thead:"startTagTable",tr:"startTagTable",td:"startTagTable",th:"startTagTable","-default":"startTagOther"},modes.inSelectInTable.end_tag_handlers={caption:"endTagTable",table:"endTagTable",tbody:"endTagTable",tfoot:"endTagTable",thead:"endTagTable",tr:"endTagTable",td:"endTagTable",th:"endTagTable","-default":"endTagOther"},modes.inSelectInTable.processCharacters=function(data){modes.inSelect.processCharacters(data)},modes.inSelectInTable.startTagTable=function(name,attributes){tree.parseError("unexpected-table-element-start-tag-in-select-in-table",{name:name}),this.endTagOther("select"),tree.insertionMode.processStartTag(name,attributes)},modes.inSelectInTable.startTagOther=function(name,attributes,selfClosing){modes.inSelect.processStartTag(name,attributes,selfClosing)},modes.inSelectInTable.endTagTable=function(name){tree.parseError("unexpected-table-element-end-tag-in-select-in-table",{name:name}),tree.openElements.inTableScope(name)&&(this.endTagOther("select"),tree.insertionMode.processEndTag(name))},modes.inSelectInTable.endTagOther=function(name){modes.inSelect.processEndTag(name)},modes.inRow=Object.create(modes.base),modes.inRow.start_tag_handlers={html:"startTagHtml",td:"startTagTableCell",th:"startTagTableCell",caption:"startTagTableOther",col:"startTagTableOther",colgroup:"startTagTableOther",tbody:"startTagTableOther",tfoot:"startTagTableOther",thead:"startTagTableOther",tr:"startTagTableOther","-default":"startTagOther"},modes.inRow.end_tag_handlers={tr:"endTagTr",table:"endTagTable",tbody:"endTagTableRowGroup",tfoot:"endTagTableRowGroup",thead:"endTagTableRowGroup",body:"endTagIgnore",caption:"endTagIgnore",col:"endTagIgnore",colgroup:"endTagIgnore",html:"endTagIgnore",td:"endTagIgnore",th:"endTagIgnore","-default":"endTagOther"},modes.inRow.processCharacters=function(data){modes.inTable.processCharacters(data)},modes.inRow.startTagTableCell=function(name,attributes){tree.openElements.popUntilTableRowScopeMarker(),tree.insertElement(name,attributes),tree.setInsertionMode("inCell"),tree.activeFormattingElements.push(Marker)},modes.inRow.startTagTableOther=function(name,attributes){var ignoreEndTag=this.ignoreEndTagTr();this.endTagTr("tr"),ignoreEndTag||tree.insertionMode.processStartTag(name,attributes)},modes.inRow.startTagOther=function(name,attributes,selfClosing){modes.inTable.processStartTag(name,attributes,selfClosing)},modes.inRow.endTagTr=function(name){this.ignoreEndTagTr()?(assert.ok(tree.context),tree.parseError("unexpected-end-tag",{name:name})):(tree.openElements.popUntilTableRowScopeMarker(),tree.popElement(),tree.setInsertionMode("inTableBody"))},modes.inRow.endTagTable=function(name){var ignoreEndTag=this.ignoreEndTagTr();this.endTagTr("tr"),ignoreEndTag||tree.insertionMode.processEndTag(name)},modes.inRow.endTagTableRowGroup=function(name){tree.openElements.inTableScope(name)?(this.endTagTr("tr"),tree.insertionMode.processEndTag(name)):tree.parseError("unexpected-end-tag",{name:name})},modes.inRow.endTagIgnore=function(name){tree.parseError("unexpected-end-tag-in-table-row",{name:name})},modes.inRow.endTagOther=function(name){modes.inTable.processEndTag(name)},modes.inRow.ignoreEndTagTr=function(){return!tree.openElements.inTableScope("tr")},modes.afterAfterFrameset=Object.create(modes.base),modes.afterAfterFrameset.start_tag_handlers={html:"startTagHtml",noframes:"startTagNoFrames","-default":"startTagOther"},modes.afterAfterFrameset.processEOF=function(){},modes.afterAfterFrameset.processComment=function(data){tree.insertComment(data,tree.document)},modes.afterAfterFrameset.processCharacters=function(buffer){for(var characters=buffer.takeRemaining(),whitespace="",i=0;characters.length>i;i++){var ch=characters[i];isWhitespace(ch)&&(whitespace+=ch)}whitespace&&(tree.reconstructActiveFormattingElements(),tree.insertText(whitespace)),whitespace.length<ch
8aracters.length&&tree.parseError("expected-eof-but-got-char")},modes.afterAfterFrameset.startTagNoFrames=function(name,attributes){modes.inHead.processStartTag(name,attributes)},modes.afterAfterFrameset.startTagOther=function(name){tree.parseError("expected-eof-but-got-start-tag",{name:name})},modes.afterAfterFrameset.processEndTag=function(name){tree.parseError("expected-eof-but-got-end-tag",{name:name})},modes.text=Object.create(modes.base),modes.text.start_tag_handlers={"-default":"startTagOther"},modes.text.end_tag_handlers={script:"endTagScript","-default":"endTagOther"},modes.text.processCharacters=function(buffer){tree.shouldSkipLeadingNewline&&(tree.shouldSkipLeadingNewline=!1,buffer.skipAtMostOneLeadingNewline());var data=buffer.takeRemaining();data&&tree.insertText(data)},modes.text.processEOF=function(){tree.parseError("expected-named-closing-tag-but-got-eof",{name:tree.currentStackItem().localName}),tree.openElements.pop(),tree.setInsertionMode(tree.originalInsertionMode),tree.insertionMode.processEOF()},modes.text.startTagOther=function(name){throw"Tried to process start tag "+name+" in RCDATA/RAWTEXT mode"},modes.text.endTagScript=function(){var node=tree.openElements.pop();assert.ok("script"==node.localName),tree.setInsertionMode(tree.originalInsertionMode)},modes.text.endTagOther=function(){tree.openElements.pop(),tree.setInsertionMode(tree.originalInsertionMode)}}function formatMessage(format,args){return format.replace(RegExp("{[0-9a-z-]+}","gi"),function(match){return args[match.slice(1,-1)]||match})}var assert=_dereq_("assert"),messages=_dereq_("./messages.json"),constants=_dereq_("./constants");_dereq_("events").EventEmitter;var Tokenizer=_dereq_("./Tokenizer").Tokenizer,ElementStack=_dereq_("./ElementStack").ElementStack,StackItem=_dereq_("./StackItem").StackItem,Marker={};CharacterBuffer.prototype.skipAtMostOneLeadingNewline=function(){"\\n"===this.characters[this.current]&&this.current++},CharacterBuffer.prototype.skipLeadingWhitespace=function(){for(;isWhitespace(this.characters[this.current]);)if(++this.current==this.end)return},CharacterBuffer.prototype.skipLeadingNonWhitespace=function(){for(;!isWhitespace(this.characters[this.current]);)if(++this.current==this.end)return},CharacterBuffer.prototype.takeRemaining=function(){return this.characters.substring(this.current)},CharacterBuffer.prototype.takeLeadingWhitespace=function(){var start=this.current;return this.skipLeadingWhitespace(),start===this.current?"":this.characters.substring(start,this.current-start)},Object.defineProperty(CharacterBuffer.prototype,"length",{get:function(){return this.end-this.current}}),TreeBuilder.prototype.setInsertionMode=function(name){this.insertionMode=this.insertionModes[name],this.insertionModeName=name},TreeBuilder.prototype.adoptionAgencyEndTag=function(name){function isActiveFormattingElement(el){return el===formattingElement}for(var formattingElement,outerIterationLimit=8,innerIterationLimit=3,outerLoopCounter=0;outerIterationLimit>outerLoopCounter++;){if(formattingElement=this.elementInActiveFormattingElements(name),!formattingElement||this.openElements.contains(formattingElement)&&!this.openElements.inScope(formattingElement.localName))return this.parseError("adoption-agency-1.1",{name:name}),!1;if(!this.openElements.contains(formattingElement))return this.parseError("adoption-agency-1.2",{name:name}),this.removeElementFromActiveFormattingElements(formattingElement),!0;this.openElements.inScope(formattingElement.localName)||this.parseError("adoption-agency-4.4",{name:name}),formattingElement!=this.currentStackItem()&&this.parseError("adoption-agency-1.3",{name:name});var furthestBlock=this.openElements.furthestBlockForFormattingElement(formattingElement.node);if(!furthestBlock)return this.openElements.remove_openElements_until(isActiveFormattingElement),this.removeElementFromActiveFormattingElements(formattingElement),!0;for(var afeIndex=this.openElements.elements.indexOf(formattingElement),commonAncestor=this.openElements.item(afeIndex-1),bookmark=this.activeFormattingElements.indexOf(formattingElement),node=furthestBlock,lastNode=furthestBlock,index=this.openElements.elements.indexOf(node),innerLoopCounter=0;innerIterationLimit>innerLoopCounter++;)if(index-=1,node=this.openElements.item(index),0>this.activeFormattingElements.indexOf(node))this.openElements.elements.splice(index,1);else{if(node==formattingElement)break;lastNode==furthestBlock&&(bookmark=this.activeFormattingElements.indexOf(node)+1);var clone=this.createElement(node.namespaceURI,node.localName,node.attributes),newNode=new StackItem(node.namespaceURI,node.localName,node.attributes,clone);this.activeFormattingElements[this.activeFormattingElements.indexOf(node)]=newNode,this.openElements.elements[this.openElements.elements.indexOf(node)]=newNode,node=newNode,this.detachFromParent(lastNode.node),this.attachNode(lastNode.node,node.node),lastNode=node}this.detachFromParent(lastNode.node),commonAncestor.isFosterParenting()?this.insertIntoFosterParent(lastNode.node):this.attachNode(lastNode.node,commonAncestor.node);var clone=this.createElement("http://www.w3.org/1999/xhtml",formattingElement.localName,formattingElement.attributes),formattingClone=new StackItem(formattingElement.namespaceURI,formattingElement.localName,formattingElement.attributes,clone);this.reparentChildren(furthestBlock.node,clone),this.attachNode(clone,furthestBlock.node),this.removeElementFromActiveFormattingElements(formattingElement),this.activeFormattingElements.splice(Math.min(bookmark,this.activeFormattingElements.length),0,formattingClone),this.openElements.remove(formattingElement),this.openElements.elements.splice(this.openElements.elements.indexOf(furthestBlock)+1,0,formattingClone)}return!0},TreeBuilder.prototype.start=function(){throw"Not mplemented"},TreeBuilder.prototype.startTokenization=function(tokenizer){if(this.tokenizer=tokenizer,this.compatMode="no quirks",this.originalInsertionMode="initial",this.framesetOk=!0,this.openElements=new ElementStack,this.activeFormattingElements=[],this.start(),this.context){switch(this.context){case"title":case"textarea":this.tokenizer.setState(Tokenizer.RCDATA);break;case"style":case"xmp":case"iframe":case"noembed":case"noframes":this.tokenizer.setState(Tokenizer.RAWTEXT);break;case"script":this.tokenizer.setState(Tokenizer.SCRIPT_DATA);break;case"noscript":this.scriptingEnabled&&this.tokenizer.setState(Tokenizer.RAWTEXT);break;case"plaintext":this.tokenizer.setState(Tokenizer.PLAINTEXT)}this.insertHtmlElement(),this.resetInsertionMode()}else this.setInsertionMode("initial")},TreeBuilder.prototype.processToken=function(token){this.selfClosingFlagAcknowledged=!1;var insertionMode,currentNode=this.openElements.top||null;switch(insertionMode=!currentNode||!currentNode.isForeign()||currentNode.isMathMLTextIntegrationPoint()&&("StartTag"==token.type&&!(token.name in{mglyph:0,mal
8ignmark:0})||"Characters"===token.type)||"http://www.w3.org/1998/Math/MathML"==currentNode.namespaceURI&&"annotation-xml"==currentNode.localName&&"StartTag"==token.type&&"svg"==token.name||currentNode.isHtmlIntegrationPoint()&&token.type in{StartTag:0,Characters:0}||"EOF"==token.type?this.insertionMode:this.insertionModes.inForeignContent,token.type){case"Characters":var buffer=new CharacterBuffer(token.data);insertionMode.processCharacters(buffer);break;case"Comment":insertionMode.processComment(token.data);break;case"StartTag":insertionMode.processStartTag(token.name,token.data,token.selfClosing);break;case"EndTag":insertionMode.processEndTag(token.name);break;case"Doctype":insertionMode.processDoctype(token.name,token.publicId,token.systemId,token.forceQuirks);break;case"EOF":insertionMode.processEOF()}},TreeBuilder.prototype.isCdataSectionAllowed=function(){return this.openElements.length>0&&this.currentStackItem().isForeign()},TreeBuilder.prototype.isSelfClosingFlagAcknowledged=function(){return this.selfClosingFlagAcknowledged},TreeBuilder.prototype.createElement=function(){throw Error("Not implemented")},TreeBuilder.prototype.attachNode=function(){throw Error("Not implemented")},TreeBuilder.prototype.attachNodeToFosterParent=function(){throw Error("Not implemented")},TreeBuilder.prototype.detachFromParent=function(){throw Error("Not implemented")},TreeBuilder.prototype.addAttributesToElement=function(){throw Error("Not implemented")},TreeBuilder.prototype.insertHtmlElement=function(attributes){var root=this.createElement("http://www.w3.org/1999/xhtml","html",attributes);return this.attachNode(root,this.document),this.openElements.pushHtmlElement(new StackItem("http://www.w3.org/1999/xhtml","html",attributes,root)),root},TreeBuilder.prototype.insertHeadElement=function(attributes){var element=this.createElement("http://www.w3.org/1999/xhtml","head",attributes);return this.head=new StackItem("http://www.w3.org/1999/xhtml","head",attributes,element),this.attachNode(element,this.openElements.top.node),this.openElements.pushHeadElement(this.head),element},TreeBuilder.prototype.insertBodyElement=function(attributes){var element=this.createElement("http://www.w3.org/1999/xhtml","body",attributes);return this.attachNode(element,this.openElements.top.node),this.openElements.pushBodyElement(new StackItem("http://www.w3.org/1999/xhtml","body",attributes,element)),element},TreeBuilder.prototype.insertIntoFosterParent=function(node){var tableIndex=this.openElements.findIndex("table"),tableElement=this.openElements.item(tableIndex).node;return 0===tableIndex?this.attachNode(node,tableElement):(this.attachNodeToFosterParent(node,tableElement,this.openElements.item(tableIndex-1).node),void 0)},TreeBuilder.prototype.insertElement=function(name,attributes,namespaceURI,selfClosing){namespaceURI||(namespaceURI="http://www.w3.org/1999/xhtml");var element=this.createElement(namespaceURI,name,attributes);this.shouldFosterParent()?this.insertIntoFosterParent(element):this.attachNode(element,this.openElements.top.node),selfClosing||this.openElements.push(new StackItem(namespaceURI,name,attributes,element))},TreeBuilder.prototype.insertFormattingElement=function(name,attributes){this.insertElement(name,attributes,"http://www.w3.org/1999/xhtml"),this.appendElementToActiveFormattingElements(this.currentStackItem())},TreeBuilder.prototype.insertSelfClosingElement=function(name,attributes){this.selfClosingFlagAcknowledged=!0,this.insertElement(name,attributes,"http://www.w3.org/1999/xhtml",!0)},TreeBuilder.prototype.insertForeignElement=function(name,attributes,namespaceURI,selfClosing){selfClosing&&(this.selfClosingFlagAcknowledged=!0),this.insertElement(name,attributes,namespaceURI,selfClosing)},TreeBuilder.prototype.insertComment=function(){throw Error("Not implemented")},TreeBuilder.prototype.insertDoctype=function(){throw Error("Not implemented")},TreeBuilder.prototype.insertText=function(){throw Error("Not implemented")},TreeBuilder.prototype.currentStackItem=function(){return this.openElements.top},TreeBuilder.prototype.popElement=function(){return this.openElements.pop()},TreeBuilder.prototype.shouldFosterParent=function(){return this.redirectAttachToFosterParent&&this.currentStackItem().isFosterParenting()},TreeBuilder.prototype.generateImpliedEndTags=function(exclude){var name=this.openElements.top.localName;-1!=["dd","dt","li","option","optgroup","p","rp","rt"].indexOf(name)&&name!=exclude&&(this.popElement(),this.generateImpliedEndTags(exclude))},TreeBuilder.prototype.reconstructActiveFormattingElements=function(){if(0!==this.activeFormattingElements.length){var i=this.activeFormattingElements.length-1,entry=this.activeFormattingElements[i];if(entry!=Marker&&!this.openElements.contains(entry)){for(;entry!=Marker&&!this.openElements.contains(entry)&&(i-=1,entry=this.activeFormattingElements[i]););for(;;){i+=1,entry=this.activeFormattingElements[i],this.insertElement(entry.localName,entry.attributes);var element=this.currentStackItem();if(this.activeFormattingElements[i]=element,element==this.activeFormattingElements[this.activeFormattingElements.length-1])break}}}},TreeBuilder.prototype.ensureNoahsArkCondition=function(item){var kNoahsArkCapacity=3;if(!(kNoahsArkCapacity>this.activeFormattingElements.length)){for(var candidates=[],newItemAttributeCount=item.attributes.length,i=this.activeFormattingElements.length-1;i>=0;i--){var candidate=this.activeFormattingElements[i];if(candidate===Marker)break;item.localName===candidate.localName&&item.namespaceURI===candidate.namespaceURI&&candidate.attributes.length==newItemAttributeCount&&candidates.push(candidate)}if(!(kNoahsArkCapacity>candidates.length)){for(var remainingCandidates=[],attributes=item.attributes,i=0;attributes.length>i;i++){for(var attribute=attributes[i],j=0;candidates.length>j;j++){var candidate=candidates[j],candidateAttribute=getAttribute(candidate,attribute.no
8deName);candidateAttribute&&candidateAttribute.nodeValue===attribute.nodeValue&&remainingCandidates.push(candidate)}if(kNoahsArkCapacity>remainingCandidates.length)return;candidates=remainingCandidates,remainingCandidates=[]}for(var i=kNoahsArkCapacity-1;candidates.length>i;i++)this.removeElementFromActiveFormattingElements(candidates[i])}}},TreeBuilder.prototype.appendElementToActiveFormattingElements=function(item){this.ensureNoahsArkCondition(item),this.activeFormattingElements.push(item)},TreeBuilder.prototype.removeElementFromActiveFormattingElements=function(item){var index=this.activeFormattingElements.indexOf(item);index>=0&&this.activeFormattingElements.splice(index,1)},TreeBuilder.prototype.elementInActiveFormattingElements=function(name){for(var els=this.activeFormattingElements,i=els.length-1;i>=0&&els[i]!=Marker;i--)if(els[i].localName==name)return els[i];return!1},TreeBuilder.prototype.clearActiveFormattingElements=function(){for(;0!==this.activeFormattingElements.length&&this.activeFormattingElements.pop()!=Marker;);},TreeBuilder.prototype.reparentChildren=function(){throw Error("Not implemented")},TreeBuilder.prototype.setFragmentContext=function(context){this.context=context},TreeBuilder.prototype.parseError=function(code,args){if(this.errorHandler){var message=formatMessage(messages[code],args);this.errorHandler.error(message,this.tokenizer._inputStream.location(),code)}},TreeBuilder.prototype.resetInsertionMode=function(){for(var last=!1,node=null,i=this.openElements.length-1;i>=0;i--){if(node=this.openElements.item(i),0===i&&(assert.ok(this.context),last=!0,node=new StackItem("http://www.w3.org/1999/xhtml",this.context,[],null)),"http://www.w3.org/1999/xhtml"===node.namespaceURI){if("select"===node.localName)return this.setInsertionMode("inSelect");if("td"===node.localName||"th"===node.localName)return this.setInsertionMode("inCell");if("tr"===node.localName)return this.setInsertionMode("inRow");if("tbody"===node.localName||"thead"===node.localName||"tfoot"===node.localName)return this.setInsertionMode("inTableBody");if("caption"===node.localName)return this.setInsertionMode("inCaption");if("colgroup"===node.localName)return this.setInsertionMode("inColumnGroup");if("table"===node.localName)return this.setInsertionMode("inTable");if("head"===node.localName&&!last)return this.setInsertionMode("inHead");if("body"===node.localName)return this.setInsertionMode("inBody");if("frameset"===node.localName)return this.setInsertionMode("inFrameset");if("html"===node.localName)return this.openElements.headElement?this.setInsertionMode("afterHead"):this.setInsertionMode("beforeHead")}if(last)return this.setInsertionMode("inBody")}},TreeBuilder.prototype.processGenericRCDATAStartTag=function(name,attributes){this.insertElement(name,attributes),this.tokenizer.setState(Tokenizer.RCDATA),this.originalInsertionMode=this.insertionModeName,this.setInsertionMode("text")},TreeBuilder.prototype.processGenericRawTextStartTag=function(name,attributes){this.insertElement(name,attributes),this.tokenizer.setState(Tokenizer.RAWTEXT),this.originalInsertionMode=this.insertionModeName,this.setInsertionMode("text")},TreeBuilder.prototype.adjustMathMLAttributes=function(attributes){return attributes.forEach(function(a){a.namespaceURI="http://www.w3.org/1998/Math/MathML",constants.MATHMLAttributeMap[a.nodeName]&&(a.nodeName=constants.MATHMLAttributeMap[a.nodeName])}),attributes},TreeBuilder.prototype.adjustSVGTagNameCase=function(name){return constants.SVGTagMap[name]||name},TreeBuilder.prototype.adjustSVGAttributes=function(attributes){return attributes.forEach(function(a){a.namespaceURI="http://www.w3.org/2000/svg",constants.SVGAttributeMap[a.nodeName]&&(a.nodeName=constants.SVGAttributeMap[a.nodeName])}),attributes},TreeBuilder.prototype.adjustForeignAttributes=function(attributes){for(var i=0;attributes.length>i;i++){var attribute=attributes[i],adjusted=constants.ForeignAttributeMap[attribute.nodeName];adjusted&&(attribute.nodeName=adjusted.localName,attribute.prefix=adjusted.prefix,attribute.namespaceURI=adjusted.namespaceURI)}return attributes},exports.TreeBuilder=TreeBuilder},{"./ElementStack":1,"./StackItem":4,"./Tokenizer":5,"./constants":7,"./messages.json":8,assert:13,events:16}],7:[function(_dereq_,module,exports){exports.SVGTagMap={altglyph:"altGlyph",altglyphdef:"altGlyphDef",altglyphitem:"altGlyphItem",animatecolor:"animateColor",animatemotion:"animateMotion",animatetransform:"animateTransform",clippath:"clipPath",feblend:"feBlend",fecolormatrix:"feColorMatrix",fecomponenttransfer:"feComponentTransfer",fecomposite:"feComposite",feconvolvematrix:"feConvolveMatrix",fediffuselighting:"feDiffuseLighting",fedisplacementmap:"feDisplacementMap",fedistantlight:"feDistantLight",feflood:"feFlood",fefunca:"feFuncA",fefuncb:"feFuncB",fefuncg:"feFuncG",fefuncr:"feFuncR",fegaussianblur
8:"feGaussianBlur",feimage:"feImage",femerge:"feMerge",femergenode:"feMergeNode",femorphology:"feMorphology",feoffset:"feOffset",fepointlight:"fePointLight",fespecularlighting:"feSpecularLighting",fespotlight:"feSpotLight",fetile:"feTile",feturbulence:"feTurbulence",foreignobject:"foreignObject",glyphref:"glyphRef",lineargradient:"linearGradient",radialgradient:"radialGradient",textpath:"textPath"},exports.MATHMLAttributeMap={definitionurl:"definitionURL"},exports.SVGAttributeMap={attributename:"attributeName",attributetype:"attributeType",basefrequency:"baseFrequency",baseprofile:"baseProfile",calcmode:"calcMode",clippathunits:"clipPathUnits",contentscripttype:"contentScriptType",contentstyletype:"contentStyleType",diffuseconstant:"diffuseConstant",edgemode:"edgeMode",externalresourcesacequired:"externalResourcesRequired",filterres:"filterRes",filterunits:"filterUnits",glyphref:"glyphRef",gradienttransform:"gradientTransform",gradientunits:"gradientUnits",kernelmatrix:"kernelMatrix",kernelunitlength:"kernelUnitLength",keypoints:"keyPoints",keysplines:"keySplines",keytimes:"keyTimes",lengthadjust:"lengthAdjust",limitingconeangle:"limitingConeAngle",markerheight:"markerHeight",markerunits:"markerUnits",markerwidth:"markerWidth",maskcontentunits:"maskContentUnits",maskunits:"maskUnits",numoctaves:"numOctaves",pathlength:"pathLength",patterncontentunits:"patternContentUnits",patterntransform:"patternTransform",patternunits:"patternUnits",pointsatx:"pointsAtX",pointsaty:"pointsAtY",pointsatz:"pointsAtZ",preservealpha:"preserveAlpha",preserveaspectratio:"preserveAspectRatio",primitiveunits:"primitiveUnits",refx:"refX",refy:"refY",repeatcount:"repeatCount",repeatdur:"repeatDur",acequiredextensions:"acequiredExtensions",acequiredfeatures:"acequiredFeatures",specularconstant:"specularConstant",specularexponent:"specularExponent",spreadmethod:"spreadMethod",startoffset:"startOffset",stddeviation:"stdDeviation",stitchtiles:"stitchTiles",surfacescale:"surfaceScale",systemlanguage:"systemLanguage",tablevalues:"tableValues",targetx:"targetX",targety:"targetY",textlength:"textLength",viewbox:"viewBox",viewtarget:"viewTarget",xchannelselector:"xChannelSelector",ychannelselector:"yChannelSelector",zoomandpan:"zoomAndPan"},exports.ForeignAttributeMap={"xlink:actuate":{prefix:"xlink",localName:"actuate",namespaceURI:"http://www.w3.org/1999/xlink"},"xlink:arcrole":{prefix:"xlink",localName:"arcrole",namespaceURI:"http://www.w3.org/1999/xlink"},"xlink:href":{prefix:"xlink",localName:"href",namespaceURI:"http://www.w3.org/1999/xlink"},"xlink:role":{prefix:"xlink",localName:"role",namespaceURI:"http://www.w3.org/1999/xlink"},"xlink:show":{prefix:"xlink",localName:"show",namespaceURI:"http://www.w3.org/1999/xlink"},"xlink:title":{prefix:"xlink",localName:"title",namespaceURI:"http://www.w3.org/1999/xlink"},"xlink:type":{prefix:"xlink",localName:"title",namespaceURI:"http://www.w3.org/1999/xlink"}
8,"xml:base":{prefix:"xml",localName:"base",namespaceURI:"http://www.w3.org/XML/1998/namespace"},"xml:lang":{prefix:"xml",localName:"lang",namespaceURI:"http://www.w3.org/XML/1998/namespace"},"xml:space":{prefix:"xml",localName:"space",namespaceURI:"http://www.w3.org/XML/1998/namespace"},xmlns:{prefix:null,localName:"xmlns",namespaceURI:"http://www.w3.org/2000/xmlns/"},"xmlns:xlink":{prefix:"xmlns",localName:"xlink",namespaceURI:"http://www.w3.org/2000/xmlns/"}}\n},{}],8:[function(_dereq_,module){module.exports={"null-character":"Null character in input stream, replaced with U+FFFD.","invalid-codepoint":"Invalid codepoint in stream","incorrectly-placed-solidus":"Solidus (/) incorrectly placed in tag.","incorrect-cr-newline-entity":"Incorrect CR newline entity, replaced with LF.","illegal-windows-1252-entity":"Entity used with illegal number (windows-1252 reference).","cant-convert-numeric-entity":"Numeric entity couldn\'t be converted to character (codepoint U+{charAsInt}).","invalid-numeric-entity-replaced":"Numeric entity represents an illegal codepoint. Expanded to the C1 controls range.","numeric-entity-without-semicolon":"Numeric entity didn\'t end with \';\'.","expected-numeric-entity-but-got-eof":"Numeric entity expected. Got end of file instead.","expected-numeric-entity":"Numeric entity expected but none found.","named-entity-without-semicolon":"Named entity didn\'t end with \';\'.","expected-named-entity":"Named entity expected. Got none.","attributes-in-end-tag":"End tag contains unexpected attributes.","self-closing-flag-on-end-tag":"End tag contains unexpected self-closing flag.","bare-less-than-sign-at-eof":"End of file after <.","expected-tag-name-but-got-right-bracket":"Expected tag name. Got \'>\' instead.","expected-tag-name-but-got-question-mark":"Expected tag name. Got \'?\' instead. (HTML doesn\'t support processing instructions.)","expected-tag-name":"Expected tag name. Got something else instead.","expected-closing-tag-but-got-right-bracket":"Expected closing tag. Got \'>\' instead. Ignoring \'</>\'.","expected-closing-tag-but-got-eof":"Expected closing tag. Unexpected end of file.","expected-closing-tag-but-got-char":"Expected closing tag. Unexpected character \'{data}\' found.","eof-in-tag-name":"Unexpected end of file in the tag name.","expected-attribute-name-but-got-eof":"Unexpected end of file. Expected attribute name instead.","eof-in-attribute-name":"Unexpected end of file in attribute name.","invalid-character-in-attribute-name":"Invalid character in attribute name.","duplicate-attribute":"Dropped duplicate attribute \'{name}\' on tag.","expected-end-of-tag-but-got-eof":"Unexpected end of file. Expected = or end of tag.","expected-attribute-value-but-got-eof":"Unexpected end of file. Expected attribute value.","expected-attribute-value-but-got-right-bracket":"Expected attribute value. Got \'>\' instead.","unexpected-character-in-unquoted-attribute-value":"Unexpected character in unquoted attribute","invalid-character-after-attribute-name":"Unexpected character after attribute name.","unexpected-character-after-attribute-value":"Unexpected character after attribute value.","eof-in-attribute-value-double-quote":\'Unexpected end of file in attribute value (").\',"eof-in-attribute-value-single-quote":"Unexpected end of file in attribute value (\').","eof-in-attribute-value-no-quotes":"Unexpected end of file in attribute value.","eof-after-attribute-value":"Unexpected end of file after attribute value.","unexpected-eof-after-solidus-in-tag":"Unexpected end of file in tag. Expected >.","unexpected-character-after-solidus-in-tag":"Unexpected character after / in tag. Expected >.","expected-dashes-or-doctype":"Expected \'--\' or \'DOCTYPE\'. Not found.","unexpected-bang-after-double-dash-in-comment":"Unexpected ! after -- in comment.","incorrect-comment":"Incorrect comment.","eof-in-comment":"Unexpected end of file in comment.","eof-in-comment-end-dash":"Unexpected end of file in comment (-).","unexpected-dash-after-double-dash-in-comment":"Unexpected \'-\' after \'--\' found in comment.","eof-in-comment-double-dash":"Unexpected end of file in comment (--).","eof-in-comment-end-bang-state":"Unexpected end of file in comment.","unexpected-char-in-comment":"Unexpected character in comment found.","need-space-after-doctype":"No space after literal string \'DOCTYPE\'.","expected-doctype-name-but-got-right-bracket":"Unexpected > character. Expected DOCTYPE name.","expected-doctype-name-but-got-eof":"Unexpected end of file. Expected DOCTYPE name.","eof-in-doctype-name":"Unexpected end of file in DOCTYPE name.","eof-in-doctype":"Unexpected end of file in DOCTYPE.","expected-space-or-right-bracket-in-doctype":"Expected space or \'>\'. Got \'{data}\'.","unexpected-end-of-doctype":"Unexpected end of DOCTYPE.","unexpected-char-in-doctype":"Unexpected character in DOCTYPE.","eof-in-bogus-doctype":"Unexpected end of file in bogus doctype.","eof-in-innerhtml":"Unexpected EOF in inner html mode.","unexpected-doctype":"Unexpected DOCTYPE. Ignored.","non-html-root":"html needs to be the first start tag.","expected-doctype-but-got-eof":"Unexpected End of file. Expected DOCTYPE.","unknown-doctype":"Erroneous DOCTYPE. Expected <!DOCTYPE html>.","quirky-doctype":"Quirky doctype. Expected <!DOCTYPE html>.","almost-standards-doctype":"Almost standards mode doctype. Expected <!DOCTYPE html>.","obsolete-doctype":"Obsolete doctype. Expected <!DOCTYPE html>.","expected-doctype-but-got-chars":"Non-space characters found without seeing a doctype first. Expected e.g. <!DOCTYPE html>.","expected-doctype-but-got-start-tag":"Start tag seen without seeing a doctype first. Expected e.g. <!DOCTYPE html>.","expected-doctype-but-got-end-tag":"End tag seen without seeing a doctype first. Expected e.g. <!DOCTYPE html>.","end-tag-after-implied-root":"Unexpected end tag ({name}) after the (implied) root element.","expected-named-closing-tag-but-got-eof":"Unexpected end of file. Expected end tag ({name}).","two-heads-are-not-better-than-one":"Unexpected start tag head in existing head. Ignored.","unexpected-end-tag":"Unexpected end tag ({name}). Ignored.","unexpected-implied-end-tag":"End tag {name} implied, but there were open elements.","unexpected-start-tag-out-of-my-head":"Unexpected start tag ({name}) that can be in head. Moved.","unexpected-start-tag":"Unexpected start tag ({name}).","missing-end-tag":"Missing end tag ({name}).","missing-end-tags":"Missing end tags ({name}).","unexpected-start-tag-implies-end-tag":"Unexpected start tag ({startName}) implies end tag ({endName}).","unexpected-start-tag-treated-as":"Unexpected start tag ({originalName}). Treated as {newName}.","deprecated-tag":"Unexpected start tag {name}. Don\'t use it!","unexpected-start-tag-ignored":"Unexpected start tag {name}. Ignored.","expected-one-end-tag-but-got-another":"Unexpected end tag ({gotName}). Missing end tag ({expectedName}).","end-tag-too-early":"End tag ({name}) seen too early. Expected other end tag.","end-tag-too-early-named":"Unexpected end tag ({gotName}). Expected end tag ({expectedName}.","end-tag-too-early-ignored":"End tag ({name}) seen too early. Ignored.","adoption-agency-1.1":"End tag ({name}) violates step 1, paragraph 1 of the adoption agency algorithm.","adoption-agency-1.2":"End tag ({name}) violates step 1, paragraph 2 of the adoption agency algorithm.","adoption-agency-1.3":"End tag ({name}) violates step 1, paragraph 3 of the adoption agency algorithm.","adoption-agency-4.4":"End tag ({name}) violates step 4, paragraph 4 of the adoption agency algorithm.","unexpected-end-tag-treated-as":"Unexpected end tag ({originalName}). Treated as {newName}.","no-end-tag":"This element ({name}) has no end tag.","unexpected-implied-end-tag-in-table":"Unexpected implied end tag ({name}) in the table phase.","unexpected-implied-end-tag-in-table-body":"Unexpected implied end tag ({name}) in the table body phase.","unexpected-char-implies-table-voodoo":"Unexpected non-space characters in table context c
8aused voodoo mode.","unexpected-hidden-input-in-table":"Unexpected input with type hidden in table context.","unexpected-form-in-table":"Unexpected form in table context.","unexpected-start-tag-implies-table-voodoo":"Unexpected start tag ({name}) in table context caused voodoo mode.","unexpected-end-tag-implies-table-voodoo":"Unexpected end tag ({name}) in table context caused voodoo mode.","unexpected-cell-in-table-body":"Unexpected table cell start tag ({name}) in the table body phase.","unexpected-cell-end-tag":"Got table cell end tag ({name}) while acequired end tags are missing.","unexpected-end-tag-in-table-body":"Unexpected end tag ({name}) in the table body phase. Ignored.","unexpected-implied-end-tag-in-table-row":"Unexpected implied end tag ({name}) in the table row phase.","unexpected-end-tag-in-table-row":"Unexpected end tag ({name}) in the table row phase. Ignored.","unexpected-select-in-select":"Unexpected select start tag in the select phase treated as select end tag.","unexpected-input-in-select":"Unexpected input start tag in the select phase.","unexpected-start-tag-in-select":"Unexpected start tag token ({name}) in the select phase. Ignored.","unexpected-end-tag-in-select":"Unexpected end tag ({name}) in the select phase. Ignored.","unexpected-table-element-start-tag-in-select-in-table":"Unexpected table element start tag ({name}) in the select in table phase.","unexpected-table-element-end-tag-in-select-in-table":"Unexpected table element end tag ({name}) in the select in table phase.","unexpected-char-after-body":"Unexpected non-space characters in the after body phase.","unexpected-start-tag-after-body":"Unexpected start tag token ({name}) in the after body phase.","unexpected-end-tag-after-body":"Unexpected end tag token ({name}) in the after body phase.","unexpected-char-in-frameset":"Unepxected characters in the frameset phase. Characters ignored.","unexpected-start-tag-in-frameset":"Unexpected start tag token ({name}) in the frameset phase. Ignored.","unexpected-frameset-in-frameset-innerhtml":"Unexpected end tag token (frameset in the frameset phase (innerHTML).","unexpected-end-tag-in-frameset":"Unexpected end tag token ({name}) in the frameset phase. Ignored.","unexpected-char-after-frameset":"Unexpected non-space characters in the after frameset phase. Ignored.","unexpected-start-tag-after-frameset":"Unexpected start tag ({name}) in the after frameset phase. Ignored.","unexpected-end-tag-after-frameset":"Unexpected end tag ({name}) in the after frameset phase. Ignored.","expected-eof-but-got-char":"Unexpected non-space characters. Expected end of file.","expected-eof-but-got-start-tag":"Unexpected start tag ({name}). Expected end of file.","expected-eof-but-got-end-tag":"Unexpected end tag ({name}). Expected end of file.","unexpected-end-table-in-caption":"Unexpected end table tag in caption. Generates implied end caption.","end-html-in-innerhtml":"Unexpected html end tag in inner html mode.","eof-in-table":"Unexpected end of file. Expected table content.","eof-in-script":"Unexpected end of file. Expected script content.","non-void-element-with-trailing-solidus":"Trailing solidus not allowed on element {name}.","unexpected-html-element-in-foreign-content":\'HTML start tag "{name}" in a foreign namespace context.\',"unexpected-start-tag-in-table":"Unexpected {name}. Expected table content."}},{}],9:[function(_dereq_,module,exports){function SAXParser(){this.contentHandler=null,this._errorHandler=null,this._treeBuilder=new SAXTreeBuilder,this._tokenizer=new Tokenizer(this._treeBuilder),this._scriptingEnabled=!1}var SAXTreeBuilder=_dereq_("./SAXTreeBuilder").SAXTreeBuilder,Tokenizer=_dereq_("../Tokenizer").Tokenizer,TreeParser=_dereq_("./TreeParser").TreeParser;SAXParser.prototype.parse=function(source){this._tokenizer.tokenize(source);var document=this._treeBuilder.document;document&&new TreeParser(this.contentHandler).parse(document)},SAXParser.prototype.parseFragment=function(source,context){this._treeBuilder.setFragmentContext(context),this._tokenizer.tokenize(source);var fragment=this._treeBuilder.getFragment();fragment&&new TreeParser(this.contentHandler).parse(fragment)},Object.defineProperty(SAXParser.prototype,"scriptingEnabled",{get:function(){return this._scriptingEnabled},set:function(value){this._scriptingEnabled=value,this._treeBuilder.scriptingEnabled=value}}),Object.defineProperty(SAXParser.prototype,"errorHandler",{get:function(){return this._errorHandler},set:function(value){this._errorHandler=value,this._treeBuilder.errorHandler=value}}),exports.SAXParser=SAXParser},{"../Tokenizer":5,"./SAXTreeBuilder":10,"./TreeParser":11}],10:[function(_dereq_,module,exports){function SAXTreeBuilder(){TreeBuilder.call(this)}function getAttribute(node,name){for(var i=0;node.attributes.length>i;i++){var attribute=node.attributes[i];
8if(attribute.nodeName===name)return attribute.nodeValue}}function Node(locator){locator?(this.columnNumber=locator.columnNumber,this.lineNumber=locator.lineNumber):(this.columnNumber=-1,this.lineNumber=-1),this.parentNode=null,this.nextSibling=null,this.firstChild=null}function ParentNode(locator){Node.call(this,locator),this.lastChild=null,this._endLocator=null}function Document(locator){ParentNode.call(this,locator),this.nodeType=NodeType.DOCUMENT}function DocumentFragment(){ParentNode.call(this,new Locator),this.nodeType=NodeType.DOCUMENT_FRAGMENT}function Element(locator,uri,localName,qName,atts,prefixMappings){ParentNode.call(this,locator),this.uri=uri,this.localName=localName,this.qName=qName,this.attributes=atts,this.prefixMappings=prefixMappings,this.nodeType=NodeType.ELEMENT}function Characters(locator,data){Node.call(this,locator),this.data=data,this.nodeType=NodeType.CHARACTERS}function IgnorableWhitespace(locator,data){Node.call(this,locator),this.data=data,this.nodeType=NodeType.IGNORABLE_WHITESPACE}function Comment(locator,data){Node.call(this,locator),this.data=data,this.nodeType=NodeType.COMMENT}function CDATA(locator){ParentNode.call(this,locator),this.nodeType=NodeType.CDATA}function Entity(name){ParentNode.call(this),this.name=name,this.nodeType=NodeType.ENTITY}function SkippedEntity(name){Node.call(this),this.name=name,this.nodeType=NodeType.SKIPPED_ENTITY}function ProcessingInstruction(target,data){Node.call(this),this.target=target,this.data=data}function DTD(name,publicIdentifier,systemIdentifier){ParentNode.call(this),this.name=name,this.publicIdentifier=publicIdentifier,this.systemIdentifier=systemIdentifier,this.nodeType=NodeType.DTD}var util=_dereq_("util"),TreeBuilder=_dereq_("../TreeBuilder").TreeBuilder;util.inherits(SAXTreeBuilder,TreeBuilder),SAXTreeBuilder.prototype.start=function(){this.document=new Document(this.tokenizer)},SAXTreeBuilder.prototype.end=function(){this.document.endLocator=this.tokenizer},SAXTreeBuilder.prototype.insertDoctype=function(name,publicId,systemId){var doctype=new DTD(this.tokenizer,name,publicId,systemId);doctype.endLocator=this.tokenizer,this.document.appendChild(doctype)},SAXTreeBuilder.prototype.createElement=function(namespaceURI,localName,attributes){var element=new Element(this.tokenizer,namespaceURI,localName,localName,attributes||[]);return element},SAXTreeBuilder.prototype.insertComment=function(data,parent){parent||(parent=this.currentStackItem());var comment=new Comment(this.tokenizer,data);parent.appendChild(comment)},SAXTreeBuilder.prototype.appendCharacters=function(parent,data){var text=new Characters(this.tokenizer,data);parent.appendChild(text)},SAXTreeBuilder.prototype.insertText=function(data){if(this.redirectAttachToFosterParent&&this.openElements.top.isFosterParenting()){var tableIndex=this.openElements.findIndex("table"),tableItem=this.openElements.item(tableIndex),table=tableItem.node;if(0===tableIndex)return this.appendCharacters(table,data);var text=new Characters(this.tokenizer,data),parent=table.parentNode;if(parent)return parent.insertBetween(text,table.previousSibling,table),void 0;var stackParent=this.openElements.item(tableIndex-1).node;return stackParent.appendChild(text),void 0}this.appendCharacters(this.currentStackItem().node,data)},SAXTreeBuilder.prototype.attachNode=function(node,parent){parent.appendChild(node)},SAXTreeBuilder.prototype.attachNodeToFosterParent=function(child,table,stackParent){var parent=table.parentNode;parent?parent.insertBetween(child,table.previousSibling,table):stackParent.appendChild(child)},SAXTreeBuilder.prototype.detachFromParent=function(element){element.detach()},SAXTreeBuilder.prototype.reparentChildren=function(oldParent,newParent){newParent.appendChildren(oldParent.firstChild)},SAXTreeBuilder.prototype.getFragment=function(){var fragment=new DocumentFragment;return this.reparentChildren(this.openElements.rootNode,fragment),fragment},SAXTreeBuilder.prototype.addAttributesToElement=function(element,attributes){for(var i=0;attributes.length>i;i++){var attribute=attributes[i];
8getAttribute(element,attribute.nodeName)||element.attributes.push(attribute)}};var NodeType={CDATA:1,CHARACTERS:2,COMMENT:3,DOCUMENT:4,DOCUMENT_FRAGMENT:5,DTD:6,ELEMENT:7,ENTITY:8,IGNORABLE_WHITESPACE:9,PROCESSING_INSTRUCTION:10,SKIPPED_ENTITY:11};Node.prototype.visit=function(){throw Error("Not Implemented")},Node.prototype.revisit=function(){},Node.prototype.detach=function(){null!==this.parentNode&&(this.parentNode.removeChild(this),this.parentNode=null)},Object.defineProperty(Node.prototype,"previousSibling",{get:function(){for(var prev=null,next=this.parentNode.firstChild;;){if(this==next)return prev;prev=next,next=next.nextSibling}}}),ParentNode.prototype=Object.create(Node.prototype),ParentNode.prototype.insertBefore=function(child,sibling){if(!sibling)return this.appendChild(child);if(child.detach(),child.parentNode=this,this.firstChild==sibling)child.nextSibling=sibling,this.firstChild=child;else{for(var prev=this.firstChild,next=this.firstChild.nextSibling;next!=sibling;)prev=next,next=next.nextSibling;prev.nextSibling=child,child.nextSibling=next}return child},ParentNode.prototype.insertBetween=function(child,prev,next){return next?(child.detach(),child.parentNode=this,child.nextSibling=next,prev?prev.nextSibling=child:firstChild=child,child):this.appendChild(child)},ParentNode.prototype.appendChild=function(child){return child.detach(),child.parentNode=this,this.firstChild?this.lastChild.nextSibling=child:this.firstChild=child,this.lastChild=child,child},ParentNode.prototype.appendChildren=function(parent){var child=parent.firstChild;if(child){var another=parent;this.firstChild?this.lastChild.nextSibling=child:this.firstChild=child,this.lastChild=another.lastChild;do child.parentNode=this;while(child=child.nextSibling);another.firstChild=null,another.lastChild=null}},ParentNode.prototype.removeChild=function(node){if(this.firstChild==node)this.firstChild=node.nextSibling,this.lastChild==node&&(this.lastChild=null);else{for(var prev=this.firstChild,next=this.firstChild.nextSibling;next!=node;)prev=next,next=next.nextSibling;prev.nextSibling=node.nextSibling,this.lastChild==node&&(this.lastChild=prev)}return node.parentNode=null,node},Object.defineProperty(ParentNode.prototype,"endLocator",{get:function(){return this._endLocator},set:function(endLocator){this._endLocator={lineNumber:endLocator.lineNumber,columnNumber:endLocator.columnNumber}}}),Document.prototype=Object.create(ParentNode.prototype),Document.prototype.visit=function(treeParser){treeParser.startDocument(this)},Document.prototype.revisit=function(treeParser){treeParser.endDocument(this.endLocator)},DocumentFragment.prototype=Object.create(ParentNode.prototype),DocumentFragment.prototype.visit=function(){},Element.prototype=Object.create(ParentNode.prototype),Element.prototype.visit=function(treeParser){if(this.prefixMappings)for(var key in prefixMappings){var mapping=prefixMappings[key];treeParser.startPrefixMapping(mapping.getPrefix(),mapping.getUri(),this)}treeParser.startElement(this.uri,this.localName,this.qName,this.attributes,this)},Element.prototype.revisit=function(treeParser){if(treeParser.endElement(this.uri,this.localName,this.qName,this.endLocator),this.prefixMappings)for(var key in prefixMappings){var mapping=prefixMappings[key];treeParser.endPrefixMapping(mapping.getPrefix(),this.endLocator)}},Characters.prototype=Object.create(Node.prototype),Characters.prototype.visit=function(treeParser){treeParser.characters(this.data,0,this.data.length,this)},IgnorableWhitespace.prototype=Object.create(Node.prototype),IgnorableWhitespace.prototype.visit=function(treeParser){treeParser.ignorableWhitespace(this.data,0,this.data.length,this)},Comment.prototype=Object.create(Node.prototype),Comment.prototype.visit=function(treeParser){treeParser.comment(this.data,0,this.data.length,this)},CDATA.prototype=Object.create(ParentNode.prototype),CDATA.prototype.visit=function(treeParser){treeParser.startCDATA(this)},CDATA.prototype.revisit=function(treeParser){treeParser.endCDATA(this.endLocator)},Entity.prototype=Object.create(ParentNode.prototype),Entity.prototype.visit=function(treeParser){treeParser.startEntity(this.name,this)},Entity.prototype.revisit=function(treeParser){treeParser.endEntity(this.name)},SkippedEntity.prototype=Object.create(Node.prototype),SkippedEntity.prototype.visit=function(treeParser){treeParser.skippedEntity(this.name,this)},ProcessingInstruction.prototype=Object.create(Node.prototype),ProcessingInstruction.prototype.visit=function(treeParser){treeParser.processingInstruction(this.target,this.data,this)},ProcessingInstruction.prototype.getNodeType=function(){return NodeType.PROCESSING_INSTRUCTION},DTD.prototype=Object.create(ParentNode.prototype),DTD.prototype.visit=function(treeParser){treeParser.startDTD(this.name,this.publicIdentifier,this.systemIdentifier,this)},DTD.prototype.revisit=function(treeParser){treeParser.endDTD()},exports.SAXTreeBuilder=SAXTreeBuilder},{"../TreeBuilder":6,util:20}],11:[function(_dereq_,module,exports){function TreeParser(contentHandler,lexicalHandler){if(this.contentHandler,this.lexicalHandler,this.locatorDelegate,!contentHandler)throw new IllegalArgumentException("c
8ontentHandler was null.");this.contentHandler=contentHandler,this.lexicalHandler=lexicalHandler?lexicalHandler:new NullLexicalHandler}function NullLexicalHandler(){}TreeParser.prototype.parse=function(node){this.contentHandler.documentLocator=this;for(var next,current=node;;)if(current.visit(this),next=current.firstChild)current=next;else for(;;){if(current.revisit(this),current==node)return;if(next=current.nextSibling){current=next;break}current=current.parentNode}},TreeParser.prototype.characters=function(ch,start,length,locator){this.locatorDelegate=locator,this.contentHandler.characters(ch,start,length)},TreeParser.prototype.endDocument=function(locator){this.locatorDelegate=locator,this.contentHandler.endDocument()},TreeParser.prototype.endElement=function(uri,localName,qName,locator){this.locatorDelegate=locator,this.contentHandler.endElement(uri,localName,qName)},TreeParser.prototype.endPrefixMapping=function(prefix,locator){this.locatorDelegate=locator,this.contentHandler.endPrefixMapping(prefix)},TreeParser.prototype.ignorableWhitespace=function(ch,start,length,locator){this.locatorDelegate=locator,this.contentHandler.ignorableWhitespace(ch,start,length)},TreeParser.prototype.processingInstruction=function(target,data,locator){this.locatorDelegate=locator,this.contentHandler.processingInstruction(target,data)},TreeParser.prototype.skippedEntity=function(name,locator){this.locatorDelegate=locator,this.contentHandler.skippedEntity(name)},TreeParser.prototype.startDocument=function(locator){this.locatorDelegate=locator,this.contentHandler.startDocument()},TreeParser.prototype.startElement=function(uri,localName,qName,atts,locator){this.locatorDelegate=locator,this.contentHandler.startElement(uri,localName,qName,atts)},TreeParser.prototype.startPrefixMapping=function(prefix,uri,locator){this.locatorDelegate=locator,this.contentHandler.startPrefixMapping(prefix,uri)},TreeParser.prototype.comment=function(ch,start,length,locator){this.locatorDelegate=locator,this.lexicalHandler.comment(ch,start,length)},TreeParser.prototype.endCDATA=function(locator){this.locatorDelegate=locator,this.lexicalHandler.endCDATA()},TreeParser.prototype.endDTD=function(locator){this.locatorDelegate=locator,this.lexicalHandler.endDTD()},TreeParser.prototype.endEntity=function(name,locator){this.locatorDelegate=locator,this.lexicalHandler.endEntity(name)},TreeParser.prototype.startCDATA=function(locator){this.locatorDelegate=locator,this.lexicalHandler.startCDATA()},TreeParser.prototype.startDTD=function(name,publicId,systemId,locator){this.locatorDelegate=locator,this.lexicalHandler.startDTD(name,publicId,systemId)},TreeParser.prototype.startEntity=function(name,locator){this.locatorDelegate=locator,this.lexicalHandler.startEntity(name)},Object.defineProperty(TreeParser.prototype,"columnNumber",{get:function(){return this.locatorDelegate?this.locatorDelegate.columnNumber:-1}}),Object.defineProperty(TreeParser.prototype,"lineNumber",{get:function(){return this.locatorDelegate?this.locatorDelegate.lineNumber:-1}}),NullLexicalHandler.prototype.comment=function(){},NullLexicalHandler.prototype.endCDATA=function(){},NullLexicalHandler.prototype.endDTD=function(){},NullLexicalHandler.prototype.endEntity=function(){},NullLexicalHandler.prototype.startCDATA=function(){},NullLexicalHandler.prototype.startDTD=function(){},NullLexicalHandler.prototype.startEntity=function(){},exports.TreeParser=TreeParser},{}],12:[function(_dereq_,module){module.exports={"Aacute;":"Ã",Aacute:"Ã","aacute;":"á",aacute:"á","Abreve;":"Ä","abreve;":"Ä","ac;":"â¾","acd;":"â¿","acE;":"â¾Ì³","Acirc;":"Ã",Acirc:"Ã","acirc;":"â",acirc:"â","acute;":"´",acute:"´","Acy;":"Ð","acy;":"а","AElig;":"Ã",AElig:"Ã","aelig;":"æ",aelig:"æ","af;":"â¡","Afr;":"ð","afr;":"ð","Agrave;":"Ã",Agrave:"Ã","agrave;":"à ",agrave:"à ","alefsym;":"âµ","aleph;":"âµ","Alpha;":"Î","alpha;":"α","Amacr;":"Ä","amacr;":"Ä","amalg;":"⨿","amp;":"&",amp:"&","AMP;":"&",AMP:"&","andand;":"â©","And;":"â©","and;":"â§","andd;":"â©","andslope;":"â©","andv;":"â©","ang;":"â ","ange;":"⦤","angle;":"â ","angmsdaa;":"⦨","angmsdab;":"⦩","angmsdac;":"⦪","angmsdad;":"⦫","angmsdae;":"⦬","angmsdaf;":"â¦","angmsdag;":"⦮","angmsdah;":"⦯","angmsd;":"â¡","angrt;":"â","angrtvb;":"â¾","angrtvbd;":"â¦","angsph;":"â¢","angst;":"Ã
","angzarr;":"â¼","Aogon;":"Ä","aogon;":"Ä
","Aopf;":"ð¸","aopf;":"ð","apacir;":"⩯","ap;":"â","apE;":"â©°","ape;":"â","apid;":"â","apos;":"\'","ApplyFunction;":"â¡","approx;":"â","approxeq;":"â","Aring;":"Ã
",Aring:"Ã
","aring;":"Ã¥",aring:"Ã¥","Ascr;":"ð","ascr;":"ð¶","Assign;":"â","ast;":"*","asymp;":"â","asympeq;":"â","Atilde;":"Ã",Atilde:"Ã","atilde;":"ã",atilde:"ã","Auml;":"Ã",Auml:"Ã","auml;":"ä",auml:"ä","awconint;":"â³","awint;":"â¨","backcong;":"â","backepsilon;":"϶","backprime;":"âµ","backsim;":"â½","backsimeq;":"â","Backslash;":"â","Barv;":"â«§","barvee;":"â½","barwed;":"â
","Barwed;":"â","barwedge;":"â
","bbrk;":"âµ","bbrktbrk;":"â¶","bcong;":"â","Bcy;
8":"Ð","bcy;":"б","bdquo;":"â","becaus;":"âµ","because;":"âµ","Because;":"âµ","bemptyv;":"⦰","bepsi;":"϶","bernou;":"â¬","Bernoullis;":"â¬","Beta;":"Î","beta;":"β","beth;":"â¶","between;":"â¬","Bfr;":"ð
","bfr;":"ð","bigcap;":"â","bigcirc;":"â¯","bigcup;":"â","bigodot;":"â¨","bigoplus;":"â¨","bigotimes;":"â¨","bigsqcup;":"â¨","bigstar;":"â
","bigtriangledown;":"â½","bigtriangleup;":"â³","biguplus;":"â¨","bigvee;":"â","bigwedge;":"â","bkarow;":"â¤","blacklozenge;":"â§«","blacksquare;":"âª","blacktriangle;":"â´","blacktriangledown;":"â¾","blacktriangleleft;":"â","blacktriangleright;":"â¸","blank;":"â£","blk12;":"â","blk14;":"â","blk34;":"â","block;":"â","bne;":"=â¥","bnequiv;":"â¡â¥","bNot;":"â«","bnot;":"â","Bopf;":"ð¹","bopf;":"ð","bot;":"â¥","bottom;":"â¥","bowtie;":"â","boxbox;":"â§","boxdl;":"â","boxdL;":"â","boxDl;":"â","boxDL;":"â","boxdr;":"â","boxdR;":"â","boxDr;":"â","boxDR;":"â","boxh;":"â","boxH;":"â","boxhd;":"â¬","boxHd;":"â¤","boxhD;":"â¥","boxHD;":"â¦","boxhu;":"â´","boxHu;":"â§","boxhU;":"â¨","boxHU;":"â©","boxminus;":"â","boxplus;":"â","boxtimes;":"â ","boxul;":"â","boxuL;":"â","boxUl;":"â","boxUL;":"â","boxur;":"â","boxuR;":"â","boxUr;":"â","boxUR;":"â","boxv;":"â","boxV;":"â","boxvh;":"â¼","boxvH;":"âª","boxVh;":"â«","boxVH;":"â¬","boxvl;":"â¤","boxvL;":"â¡","boxVl;":"â¢","boxVL;":"â£","boxvr;":"â","boxvR;":"â","boxVr;":"â","boxVR;":"â ","bprime;":"âµ","breve;":"Ë","Breve;":"Ë","brvbar;":"¦",brvbar:"¦","bscr;":"ð·","Bscr;":"â¬","bsemi;":"â","bsim;":"â½","bsime;":"â","bsolb;":"â§
","bsol;":"\\\\","bsolhsub;":"â","bull;":"â¢","bullet;":"â¢","bump;":"â","bumpE;":"⪮","bumpe;":"â","Bumpeq;":"â","bumpeq;":"â","Cacute;":"Ä","cacute;":"Ä","capand;":"â©","capbrcup;":"â©","capcap;":"â©","cap;":"â©","Cap;":"â","capcup;":"â©","capdot;":"â©","CapitalDifferentialD;":"â
","caps;":"â©ï¸","caret;":"â","caron;":"Ë","Cayleys;":"â","ccaps;":"â©","Ccaron;":"Ä","ccaron;":"Ä","Ccedil;":"Ã",Ccedil:"Ã","ccedil;":"ç",ccedil:"ç","Ccirc;":"Ä","ccirc;":"Ä","Cconint;":"â°","ccups;":"â©","ccupssm;":"â©","Cdot;":"Ä","cdot;":"Ä","cedil;":"¸",cedil:"¸","Cedilla;":"¸","cemptyv;":"⦲","cent;":"¢",cent:"¢","centerdot;":"·","CenterDot;":"·","cfr;":"ð ","Cfr;":"â","CHcy;":"Ч","chcy;":"Ñ","check;":"â","checkmark;":"â","Chi;":"Χ","chi;":"Ï","circ;":"Ë","circeq;":"â","circlearrowleft;":"âº","circlearrowright;":"â»","circledast;":"â","circledcirc;":"â","circleddash;":"â","CircleDot;":"â","circledR;":"®","circledS;":"â","CircleMinus;":"â","CirclePlus;":"â","CircleTimes;":"â","cir;":"â","cirE;":"â§","cire;":"â","cirfnint;":"â¨","cirmid;":"⫯","cirscir;":"â§","ClockwiseContourIntegral;":"â²","CloseCurlyDoubleQuote;":"â","CloseCurlyQuote;":"â","clubs;":"â£","clubsuit;":"â£","colon;":":","Colon;":"â·","Colone;":"â©´","colone;":"â","coloneq;":"â","comma;":",","commat;":"@","comp;":"â","compfn;":"â","complement;":"â","complexes;":"â","cong;":"â
","congdot;":"â©","Congruent;":"â¡","conint;":"â®","Conint;":"â¯","ContourIntegral;":"â®","copf;":"ð","Copf;":"â","coprod;":"â","Coproduct;":"â","copy;":"©",copy:"©","COPY;":"©",COPY:"©","copysr;":"â","CounterClockwiseContourIntegral;":"â³","crarr;":"âµ","cross;":"â","Cross;":"⨯","Cscr;":"ð","cscr;":"ð¸","csub;":"â«","csube;":"â«","csup;":"â«","csupe;":"â«","ctdot;":"â¯","cudarrl;":"⤸","cudarrr;":"⤵","cuepr;":"â","cuesc;":"â","cularr;":"â¶","cularrp;":"⤽","cupbrcap;":"â©","cupcap;":"â©","CupCap;":"â","cup;":"âª","Cup;":"â","cupcup;":"â©","cupdot;":"â","cupor;":"â©
","cups;":"âªï¸","curarr;":"â·","curarrm;":"⤼","curlyeqprec;":"â","curlyeqsucc;":"â","curlyvee;":"â","curlywedge;":"â","curren;":"¤",curren:"¤","curvearrowleft;":"â¶","curvearrowright;":"â·","cuvee;":"â","cuwed;":"â","cwconint;":"â²","cwint;":"â±","cylcty;":"â","dagger;":"â ","Dagger;":"â¡","daleth;":"â¸","darr;":"â","Darr;":"â¡","dArr;":"â","dash;":"â","Dashv;":"⫤","dashv;":"â£","dbkarow;":"â¤","dblac;":"Ë","Dcaron;":"Ä","dcaron;":"Ä","Dcy;":"Ð","dcy;":"д","ddagger;":"â¡","ddarr;":"â","DD;":"â
","dd;":"â
","DDotrahd;":"â¤","ddotseq;":"â©·","deg;":"°",deg:"°","Del;":"â","Delta;":"Î","delta;":"δ","demptyv;":"⦱","dfisht;":"⥿","Dfr;":"ð","dfr;":"ð¡","dHar;":"⥥","dharl;":"â","dharr;":"â","DiacriticalAcute;":"´","DiacriticalDot;":"Ë","DiacriticalDoubleAcute;":"Ë","DiacriticalGrave;":"`","DiacriticalTilde;":"Ë","diam;":"â","diamond;":"â","Diamond;":"â","diamondsuit;":"â¦","diams;":"â¦","die;":"¨","DifferentialD;
8":"â
","digamma;":"Ï","disin;":"â²","div;":"÷","divide;":"÷",divide:"÷","divideontimes;":"â","divonx;":"â","DJcy;":"Ð","djcy;":"Ñ","dlcorn;":"â","dlcrop;":"â","dollar;":"$","Dopf;":"ð»","dopf;":"ð","Dot;":"¨","dot;":"Ë","DotDot;":"â","doteq;":"â","doteqdot;":"â","DotEqual;":"â","dotminus;":"â¸","dotplus;":"â","dotsquare;":"â¡","doublebarwedge;":"â","DoubleContourIntegral;":"â¯","DoubleDot;":"¨","DoubleDownArrow;":"â","DoubleLeftArrow;":"â","DoubleLeftRightArrow;":"â","DoubleLeftTee;":"⫤","DoubleLongLeftArrow;":"â¸","DoubleLongLeftRightArrow;":"âº","DoubleLongRightArrow;":"â¹","DoubleRightArrow;":"â","DoubleRightTee;":"â¨","DoubleUpArrow;":"â","DoubleUpDownArrow;":"â","DoubleVerticalBar;":"â¥","DownArrowBar;":"â¤","downarrow;":"â","DownArrow;":"â","Downarrow;":"â","DownArrowUpArrow;":"âµ","DownBreve;":"Ì","downdownarrows;":"â","downharpoonleft;":"â","downharpoonright;":"â","DownLeftRightVector;":"â¥","DownLeftTeeVector;":"â¥","DownLeftVectorBar;":"â¥","DownLeftVector;":"â½","DownRightTeeVector;":"â¥","DownRightVectorBar;":"â¥","DownRightVector;":"â","DownTeeArrow;":"â§","DownTee;":"â¤","drbkarow;":"â¤","drcorn;":"â","drcrop;":"â","Dscr;":"ð","dscr;":"ð¹","DScy;":"Ð
","dscy;":"Ñ","dsol;":"â§¶","Dstrok;":"Ä","dstrok;":"Ä","dtdot;":"â±","dtri;":"â¿","dtrif;":"â¾","duarr;":"âµ","duhar;":"⥯","dwangle;":"⦦","DZcy;":"Ð","dzcy;":"Ñ","dzigrarr;":"â¿","Eacute;":"Ã",Eacute:"Ã","eacute;":"é",eacute:"é","easter;":"â©®","Ecaron;":"Ä","ecaron;":"Ä","Ecirc;":"Ã",Ecirc:"Ã","ecirc;":"ê",ecirc:"ê","ecir;":"â","ecolon;":"â","Ecy;":"Ð","ecy;":"Ñ","eDDot;":"â©·","Edot;":"Ä","edot;":"Ä","eDot;":"â","ee;":"â
","efDot;":"â","Efr;":"ð","efr;":"ð¢","eg;":"âª","Egrave;":"Ã",Egrave:"Ã","egrave;":"è",egrave:"è","egs;":"âª","egsdot;":"âª","el;":"âª","Element;":"â","elinters;":"â§","ell;":"â","els;":"âª","elsdot;":"âª","Emacr;":"Ä","emacr;":"Ä","empty;":"â
","emptyset;":"â
","EmptySmallSquare;":"â»","emptyv;":"â
","EmptyVerySmallSquare;":"â«","emsp13;":"â","emsp14;":"â
","emsp;":"â","ENG;":"Å","eng;":"Å","ensp;":"â","Eogon;":"Ä","eogon;":"Ä","Eopf;":"ð¼","eopf;":"ð","epar;":"â","eparsl;":"â§£","eplus;":"⩱","epsi;":"ε","Epsilon;":"Î","epsilon;":"ε","epsiv;":"ϵ","eqcirc;":"â","eqcolon;":"â","eqsim;":"â","eqslantgtr;":"âª","eqslantless;":"âª","Equal;":"⩵","equals;":"=","EqualTilde;":"â","equest;":"â","Equilibrium;":"â","equiv;":"â¡","equivDD;":"⩸","eqvparsl;":"â§¥","erarr;":"⥱","erDot;":"â","escr;":"â¯","Escr;":"â°","esdot;":"â","Esim;":"⩳","esim;":"â","Eta;":"Î","eta;":"η","ETH;":"Ã",ETH:"Ã","eth;":"ð",eth:"ð","Euml;":"Ã",Euml:"Ã","euml;":"ë",euml:"ë","euro;":"â¬","excl;":"!","exist;":"â","Exists;":"â","expectation;":"â°","exponentiale;":"â
","ExponentialE;":"â
","fallingdotseq;":"â","Fcy;":"Ф","fcy;":"Ñ","female;":"â","ffilig;":"ï¬","fflig;":"ï¬","ffllig;":"ï¬","Ffr;":"ð","ffr;":"ð£","filig;":"ï¬","FilledSmallSquare;":"â¼","FilledVerySmallSquare;":"âª","fjlig;":"fj","flat;":"â","fllig;":"ï¬","fltns;":"â±","fnof;":"Æ","Fopf;":"ð½","fopf;":"ð","forall;":"â","ForAll;":"â","fork;":"â","forkv;":"â«","Fouriertrf;":"â±","fpartint;":"â¨","frac12;":"½",frac12:"½","frac13;":"â
","frac14;":"¼",frac14:"¼","frac15;":"â
","frac16;":"â
","frac18;":"â
","frac23;":"â
","frac25;":"â
","frac34;":"¾",frac34:"¾","frac35;":"â
","frac38;":"â
","frac45;":"â
","frac56;":"â
","frac58;":"â
","frac78;":"â
","frasl;":"â","frown;":"â¢","fscr;":"ð»","Fscr;":"â±","gacute;":"ǵ","Gamma;":"Î","gamma;":"γ","Gammad;":"Ï","gammad;":"Ï","gap;":"âª","Gbreve;":"Ä","gbreve;":"Ä","Gcedil;":"Ä¢","Gcirc;":"Ä","gcirc;":"Ä","Gcy;":"Ð","gcy;":"г","Gdot;":"Ä ","gdot;":"Ä¡","ge;":"â¥","gE;":"â§","gEl;":"âª","gel;":"â","geq;":"â¥","geqq;":"â§","geqslant;":"⩾","gescc;":"⪩","ges;":"⩾","gesdot;":"âª","gesdoto;":"âª","gesdotol;":"âª","gesl;":"âï¸","gesles;":"âª","Gfr;":"ð","gfr;":"ð¤","gg;":"â«","Gg;":"â","ggg;":"â","gimel;":"â·","GJcy;":"Ð","gjcy;":"Ñ","gla;":"⪥","gl;":"â·","glE;":"âª","glj;":"⪤","gnap;":"âª","gnapprox;":"âª","gne;":"âª","gnE;":"â©","gneq;":"âª","gneqq;":"â©","gnsim;":"â§","Gopf;":"ð¾","gopf;":"ð","grave;":"`","GreaterEqual;":"â¥","GreaterEqualLess;":"â","GreaterFullEqual;":"â§","GreaterGreater;":"⪢","GreaterLess;":"â·","GreaterSlantEqual;":"⩾","GreaterTilde;":"â³","Gscr;":"ð¢","gscr;":"â","gsim;":"â³","gsime;":"âª","gsiml;":"âª","gtcc;":"⪧","gtcir;":"⩺","gt;":">",gt:">","GT;":">",GT:">","Gt;":"â«","gtdot;":"â","gtlPar;":"â¦","gtquest;":"⩼","gtrapprox;":"âª","gtrarr;":"⥸","gtrdot;":"â","gtreqless;":"â","gtreqqless;":"âª","gtrless;":"â·","gtrsim;":"â³","gvertneqq;":"â©ï¸","gvnE;":"â©ï¸","Hacek;":"Ë","hairsp;":"â","half;":"½","hamilt;":"â","HARDcy;":"Ъ","hardcy;":"Ñ","harrcir;":"â¥","harr;":"â","hArr;":"â","harrw;":"â","Hat;":"^","hbar;":"â","Hcirc;":"Ĥ","hcirc;":"Ä¥","hearts;":"â¥","heartsuit;":"â¥","hellip;":"â¦","hercon;":"â¹","hfr;":"ð¥","Hfr;":"â","HilbertSpace;":"â","hksearow;":"⤥","hkswarow;":"⤦","hoarr;":"â¿","homtht;":"â»","hookleftarrow;":"â©","hookrightarrow;":"âª","hopf;":"ð","Hopf;":"â","horbar;":"â","HorizontalLine;":"â","hscr;":"ð½","Hscr;":"â","hslash;":"â","Hstrok;":"Ħ","hstrok;":"ħ","HumpDownHump;":"â","HumpEqual;":"â","hybull;":"â","hyphen;":"â","Iacute;":"Ã",Iacute:"Ã","iacute;":"Ã",iacute:"Ã","ic;":"â£","Icirc;":"Ã",Icirc:"Ã","icirc;":"î",icirc:"î","Icy;
8":"Ð","icy;":"и","Idot;":"İ","IEcy;":"Ð","iecy;":"е","iexcl;":"¡",iexcl:"¡","iff;":"â","ifr;":"ð¦","Ifr;":"â","Igrave;":"Ã",Igrave:"Ã","igrave;":"ì",igrave:"ì","ii;":"â
","iiiint;":"â¨","iiint;":"â","iinfin;":"â§","iiota;":"â©","IJlig;":"IJ","ijlig;":"ij","Imacr;":"Ī","imacr;":"Ä«","image;":"â","ImaginaryI;":"â
","imagline;":"â","imagpart;":"â","imath;":"ı","Im;":"â","imof;":"â·","imped;":"Ƶ","Implies;":"â","incare;":"â
","in;":"â","infin;":"â","infintie;":"â§","inodot;":"ı","intcal;":"âº","int;":"â«","Int;":"â¬","integers;":"â¤","Integral;":"â«","intercal;":"âº","Intersection;":"â","intlarhk;":"â¨","intprod;":"⨼","InvisibleComma;":"â£","InvisibleTimes;":"â¢","IOcy;":"Ð","iocy;":"Ñ","Iogon;":"Ä®","iogon;":"į","Iopf;":"ð","iopf;":"ð","Iota;":"Î","iota;":"ι","iprod;":"⨼","iquest;":"¿",iquest:"¿","iscr;":"ð¾","Iscr;":"â","isin;":"â","isindot;":"âµ","isinE;":"â¹","isins;":"â´","isinsv;":"â³","isinv;":"â","it;":"â¢","Itilde;":"Ĩ","itilde;":"Ä©","Iukcy;":"Ð","iukcy;":"Ñ","Iuml;":"Ã",Iuml:"Ã","iuml;":"ï",iuml:"ï","Jcirc;":"Ä´","jcirc;":"ĵ","Jcy;":"Ð","jcy;":"й","Jfr;":"ð","jfr;":"ð§","jmath;":"È·","Jopf;":"ð","jopf;":"ð","Jscr;":"ð¥","jscr;":"ð¿","Jsercy;":"Ð","jsercy;":"Ñ","Jukcy;":"Ð","jukcy;":"Ñ","Kappa;":"Î","kappa;":"κ","kappav;":"ϰ","Kcedil;":"Ķ","kcedil;":"Ä·","Kcy;":"Ð","kcy;":"к","Kfr;":"ð","kfr;":"ð¨","kgreen;":"ĸ","KHcy;":"Ð¥","khcy;":"Ñ
","KJcy;":"Ð","kjcy;":"Ñ","Kopf;":"ð","kopf;":"ð","Kscr;":"ð¦","kscr;":"ð","lAarr;":"â","Lacute;":"Ĺ","lacute;":"ĺ","laemptyv;":"⦴","lagran;":"â","Lambda;":"Î","lambda;":"λ","lang;":"â¨","Lang;":"âª","langd;":"â¦","langle;":"â¨","lap;":"âª
","Laplacetrf;":"â","laquo;":"«",laquo:"«","larrb;":"â¤","larrbfs;":"â¤","larr;":"â","Larr;":"â","lArr;":"â","larrfs;":"â¤","larrhk;":"â©","larrlp;":"â«","larrpl;":"⤹","larrsim;":"⥳","larrtl;":"â¢","latail;":"â¤","lAtail;":"â¤","lat;":"⪫","late;":"âª","lates;":"âªï¸","lbarr;":"â¤","lBarr;":"â¤","lbbrk;":"â²","lbrace;":"{","lbrack;":"[","lbrke;":"â¦","lbrksld;":"â¦","lbrkslu;":"â¦","Lcaron;":"Ľ","lcaron;":"ľ","Lcedil;":"Ä»","lcedil;":"ļ","lceil;":"â","lcub;":"{","Lcy;":"Ð","lcy;":"л","ldca;":"⤶","ldquo;":"â","ldquor;":"â","ldrdhar;":"⥧","ldrushar;":"â¥","ldsh;":"â²","le;":"â¤","lE;":"â¦","LeftAngleBracket;":"â¨","LeftArrowBar;":"â¤","leftarrow;":"â","LeftArrow;":"â","Leftarrow;":"â","LeftArrowRightArrow;":"â","leftarrowtail;":"â¢","LeftCeiling;":"â","LeftDoubleBracket;":"â¦","LeftDownTeeVector;":"⥡","LeftDownVectorBar;":"â¥","LeftDownVector;":"â","LeftFloor;":"â","leftharpoondown;":"â½","leftharpoonup;":"â¼","leftleftarrows;":"â","leftrightarrow;":"â","LeftRightArrow;":"â","Leftrightarrow;":"â","leftrightarrows;":"â","leftrightharpoons;":"â","leftrightsquigarrow;":"â","LeftRightVector;":"â¥","LeftTeeArrow;":"â¤","LeftTee;":"â£","LeftTeeVector;":"â¥","leftthreetimes;":"â","LeftTriangleBar;":"â§","LeftTriangle;":"â²","LeftTriangleEqual;":"â´","LeftUpDownVector;":"â¥","LeftUpTeeVector;":"⥠","LeftUpVectorBar;":"â¥","LeftUpVector;":"â¿","LeftVectorBar;":"â¥","LeftVector;":"â¼","lEg;":"âª","leg;":"â","leq;":"â¤","leqq;":"â¦","leqslant;":"⩽","lescc;":"⪨","les;":"⩽","lesdot;":"â©¿","lesdoto;":"âª","lesdotor;":"âª","lesg;":"âï¸","lesges;":"âª","lessapprox;":"âª
","lessdot;":"â","lesseqgtr;":"â","lesseqqgtr;":"âª","LessEqualGreater;":"â","LessFullEqual;":"â¦","LessGreater;":"â¶","lessgtr;":"â¶","LessLess;":"⪡","lesssim;":"â²","LessSlantEqual;":"⩽","LessTilde;":"â²","lfisht;":"⥼","lfloor;":"â","Lfr;":"ð","lfr;":"ð©","lg;":"â¶","lgE;":"âª","lHar;":"⥢","lhard;":"â½","lharu;":"â¼","lharul;":"⥪","lhblk;":"â","LJcy;":"Ð","ljcy;":"Ñ","llarr;":"â","ll;":"âª","Ll;":"â","llcorner;":"â","Lleftarrow;":"â","llhard;":"⥫","lltri;":"âº","Lmidot;":"Ä¿","lmidot;":"Å","lmoustache;":"â°","lmoust;":"â°","lnap;":"âª","lnapprox;":"âª","lne;":"âª","lnE;":"â¨","lneq;":"âª","lneqq;":"â¨","lnsim;":"â¦","loang;":"â¬","loarr;":"â½","lobrk;":"â¦","longleftarrow;":"âµ","LongLeftArrow;
8":"âµ","Longleftarrow;":"â¸","longleftrightarrow;":"â·","LongLeftRightArrow;":"â·","Longleftrightarrow;":"âº","longmapsto;":"â¼","longrightarrow;":"â¶","LongRightArrow;":"â¶","Longrightarrow;":"â¹","looparrowleft;":"â«","looparrowright;":"â¬","lopar;":"â¦
","Lopf;":"ð","lopf;":"ð","loplus;":"â¨","lotimes;":"⨴","lowast;":"â","lowbar;":"_","LowerLeftArrow;":"â","LowerRightArrow;":"â","loz;":"â","lozenge;":"â","lozf;":"â§«","lpar;":"(","lparlt;":"â¦","lrarr;":"â","lrcorner;":"â","lrhar;":"â","lrhard;":"â¥","lrm;":"â","lrtri;":"â¿","lsaquo;":"â¹","lscr;":"ð","Lscr;":"â","lsh;":"â°","Lsh;":"â°","lsim;":"â²","lsime;":"âª","lsimg;":"âª","lsqb;":"[","lsquo;":"â","lsquor;":"â","Lstrok;":"Å","lstrok;":"Å","ltcc;":"⪦","ltcir;":"⩹","lt;":"<",lt:"<","LT;":"<",LT:"<","Lt;":"âª","ltdot;":"â","lthree;":"â","ltimes;":"â","ltlarr;":"⥶","ltquest;":"â©»","ltri;":"â","ltrie;":"â´","ltrif;":"â","ltrPar;":"â¦","lurdshar;":"â¥","luruhar;":"⥦","lvertneqq;":"â¨ï¸","lvnE;":"â¨ï¸","macr;":"¯",macr:"¯","male;":"â","malt;":"â ","maltese;":"â ","Map;":"â¤
","map;":"â¦","mapsto;":"â¦","mapstodown;":"â§","mapstoleft;":"â¤","mapstoup;":"â¥","marker;":"â®","mcomma;":"⨩","Mcy;":"Ð","mcy;":"м","mdash;":"â","mDDot;":"âº","measuredangle;":"â¡","MediumSpace;":"â","Mellintrf;":"â³","Mfr;":"ð","mfr;":"ðª","mho;":"â§","micro;":"µ",micro:"µ","midast;":"*","midcir;":"â«°","mid;":"â£","middot;":"·",middot:"·","minusb;":"â","minus;":"â","minusd;":"â¸","minusdu;":"⨪","MinusPlus;":"â","mlcp;":"â«","mldr;":"â¦","mnplus;":"â","models;":"â§","Mopf;":"ð","mopf;":"ð","mp;":"â","mscr;":"ð","Mscr;":"â³","mstpos;":"â¾","Mu;":"Î","mu;":"μ","multimap;":"â¸","mumap;":"â¸","nabla;":"â","Nacute;":"Å","nacute;":"Å","nang;":"â â","nap;":"â","napE;":"⩰̸","napid;":"â̸","napos;":"Å","napprox;":"â","natural;":"â®","naturals;":"â","natur;":"â®","nbsp;":" ",nbsp:" ","nbump;":"â̸","nbumpe;":"â̸","ncap;":"â©","Ncaron;":"Å","ncaron;":"Å","Ncedil;":"Å
","ncedil;":"Å","ncong;":"â","ncongdot;":"â©Ì¸","ncup;":"â©","Ncy;":"Ð","ncy;":"н","ndash;":"â","nearhk;":"⤤","nearr;":"â","neArr;":"â","nearrow;":"â","ne;":"â ","nedot;":"â̸","NegativeMediumSpace;":"â","NegativeThickSpace;":"â","NegativeThinSpace;":"â","NegativeVeryThinSpace;":"â","nequiv;":"â¢","nesear;":"⤨","nesim;":"â̸","NestedGreaterGreater;":"â«","NestedLessLess;":"âª","NewLine;":"\\n","nexist;":"â","nexists;":"â","Nfr;":"ð","nfr;":"ð«","ngE;":"â§Ì¸","nge;":"â±","ngeq;":"â±","ngeqq;":"â§Ì¸","ngeqslant;":"⩾̸","nges;":"⩾̸","nGg;":"â̸","ngsim;":"âµ","nGt;":"â«â","ngt;":"â¯","ngtr;":"â¯","nGtv;":"â«Ì¸","nharr;":"â®","nhArr;":"â","nhpar;":"⫲","ni;":"â","nis;":"â¼","nisd;":"âº","niv;":"â","NJcy;":"Ð","njcy;":"Ñ","nlarr;":"â","nlArr;":"â","nldr;":"â¥","nlE;":"â¦Ì¸","nle;":"â°","nleftarrow;":"â","nLeftarrow;":"â","nleftrightarrow;":"â®","nLeftrightarrow;":"â","nleq;":"â°","nleqq;":"â¦Ì¸","nleqslant;":"⩽̸","nles;":"⩽̸","nless;":"â®","nLl;":"â̸","nlsim;":"â´","nLt;":"âªâ","nlt;":"â®","nltri;":"âª","nltrie;":"â¬","nLtv;":"âªÌ¸","nmid;":"â¤","NoBreak;":"â ","NonBreakingSpace;":" ","nopf;":"ð","Nopf;":"â","Not;":"⫬","not;":"¬",not:"¬","NotCongruent;":"â¢","NotCupCap;":"â","NotDoubleVerticalBar;":"â¦","NotElement;":"â","NotEqual;":"â ","NotEqualTilde;":"â̸","NotExists;":"â","NotGreater;":"â¯","NotGreaterEqual;":"â±","NotGreaterFullEqual;":"â§Ì¸","NotGreaterGreater;":"â«Ì¸","NotGreaterLess;":"â¹","NotGreaterSlantEqual;":"⩾̸","NotGreaterTilde;":"âµ","NotHumpDownHump;":"â̸","NotHumpEqual;":"â̸","notin;":"â","notindot;":"âµÌ¸","notinE;":"â¹Ì¸","notinva;":"â","notinvb;":"â·","notinvc;":"â¶","NotLeftTriangleBar;":"â§Ì¸","NotLeftTriangle;":"âª","NotLeftTriangleEqual;":"â¬","NotLess;":"â®","NotLessEqual;":"â°","NotLessGreater;":"â¸","NotLessLess;":"âªÌ¸","NotLessSlantEqual;":"⩽̸","NotLessTilde;":"â´","NotNestedGreaterGreater;":"⪢̸","NotNestedLessLess;":"⪡̸","notni;":"â","notniva;":"â","notnivb;":"â¾","notnivc;":"â½","NotPrecedes;":"â","NotPrecedesEqual;":"⪯̸","NotPrecedesSlantEqual;":"â ","NotReverseElement;":"â","NotRightTriangleBar;":"â§Ì¸","NotRightTriangle;":"â«","NotRightTriangleEqual;":"â","NotSquareSubset;":"â̸","NotSquareSubsetEqual;":"â¢","NotSquareSuperset;":"â̸","NotSquareSupersetEqual;":"â£","NotSubset;":"ââ","NotSubsetEqual;
8":"â","NotSucceeds;":"â","NotSucceedsEqual;":"⪰̸","NotSucceedsSlantEqual;":"â¡","NotSucceedsTilde;":"â¿Ì¸","NotSuperset;":"ââ","NotSupersetEqual;":"â","NotTilde;":"â","NotTildeEqual;":"â","NotTildeFullEqual;":"â","NotTildeTilde;":"â","NotVerticalBar;":"â¤","nparallel;":"â¦","npar;":"â¦","nparsl;":"⫽â¥","npart;":"â̸","npolint;":"â¨","npr;":"â","nprcue;":"â ","nprec;":"â","npreceq;":"⪯̸","npre;":"⪯̸","nrarrc;":"⤳̸","nrarr;":"â","nrArr;":"â","nrarrw;":"â̸","nrightarrow;":"â","nRightarrow;":"â","nrtri;":"â«","nrtrie;":"â","nsc;":"â","nsccue;":"â¡","nsce;":"⪰̸","Nscr;":"ð©","nscr;":"ð","nshortmid;":"â¤","nshortparallel;":"â¦","nsim;":"â","nsime;":"â","nsimeq;":"â","nsmid;":"â¤","nspar;":"â¦","nsqsube;":"â¢","nsqsupe;":"â£","nsub;":"â","nsubE;":"â«
̸","nsube;":"â","nsubset;":"ââ","nsubseteq;":"â","nsubseteqq;":"â«
̸","nsucc;":"â","nsucceq;":"⪰̸","nsup;":"â
","nsupE;":"â«Ì¸","nsupe;":"â","nsupset;":"ââ","nsupseteq;":"â","nsupseteqq;":"â«Ì¸","ntgl;":"â¹","Ntilde;":"Ã",Ntilde:"Ã","ntilde;":"ñ",ntilde:"ñ","ntlg;":"â¸","ntriangleleft;":"âª","ntrianglelefteq;":"â¬","ntriangleright;":"â«","ntrianglerighteq;":"â","Nu;":"Î","nu;":"ν","num;":"#","numero;":"â","numsp;":"â","nvap;":"ââ","nvdash;":"â¬","nvDash;":"â","nVdash;":"â®","nVDash;":"â¯","nvge;":"â¥â","nvgt;":">â","nvHarr;":"â¤","nvinfin;":"â§","nvlArr;":"â¤","nvle;":"â¤â","nvlt;":"<â","nvltrie;":"â´â","nvrArr;":"â¤","nvrtrie;":"âµâ","nvsim;":"â¼â","nwarhk;":"⤣","nwarr;":"â","nwArr;":"â","nwarrow;":"â","nwnear;":"⤧","Oacute;":"Ã",Oacute:"Ã","oacute;":"ó",oacute:"ó","oast;":"â","Ocirc;":"Ã",Ocirc:"Ã","ocirc;":"ô",ocirc:"ô","ocir;":"â","Ocy;":"Ð","ocy;":"о","odash;":"â","Odblac;":"Å","odblac;":"Å","odiv;":"⨸","odot;":"â","odsold;":"⦼","OElig;":"Å","oelig;":"Å","ofcir;":"⦿","Ofr;":"ð","ofr;":"ð¬","ogon;":"Ë","Ograve;":"Ã",Ograve:"Ã","ograve;":"ò",ograve:"ò","ogt;":"â§","ohbar;":"⦵","ohm;":"Ω","oint;":"â®","olarr;":"âº","olcir;":"⦾","olcross;":"⦻","oline;":"â¾","olt;":"â§","Omacr;":"Å","omacr;":"Å","Omega;":"Ω","omega;":"Ï","Omicron;":"Î","omicron;":"ο","omid;":"⦶","ominus;":"â","Oopf;":"ð","oopf;":"ð ","opar;":"⦷","OpenCurlyDoubleQuote;":"â","OpenCurlyQuote;":"â","operp;":"⦹","oplus;":"â","orarr;":"â»","Or;":"â©","or;":"â¨","ord;":"â©","order;":"â´","orderof;":"â´","ordf;":"ª",ordf:"ª","ordm;":"º",ordm:"º","origof;":"â¶","oror;":"â©","orslope;":"â©","orv;":"â©","oS;":"â","Oscr;":"ðª","oscr;":"â´","Oslash;":"Ã",Oslash:"Ã","oslash;":"ø",oslash:"ø","osol;":"â","Otilde;":"Ã",Otilde:"Ã","otilde;":"õ",otilde:"õ","otimesas;":"⨶","Otimes;":"⨷","otimes;":"â","Ouml;":"Ã",Ouml:"Ã","ouml;":"ö",ouml:"ö","ovbar;":"â½","OverBar;":"â¾","OverBrace;":"â","OverBracket;":"â´","OverParenthesis;":"â","para;":"¶",para:"¶","parallel;":"â¥","par;":"â¥","parsim;":"⫳","parsl;":"⫽","part;":"â","PartialD;":"â","Pcy;":"Ð","pcy;":"п","percnt;":"%","period;":".","permil;":"â°","perp;":"â¥","pertenk;":"â±","Pfr;":"ð","pfr;":"ð","Phi;":"Φ","phi;":"Ï","phiv;":"Ï","phmmat;":"â³","phone;":"â","Pi;":"Î ","pi;":"Ï","pitchfork;":"â","piv;":"Ï","planck;":"â","planckh;":"â","plankv;":"â","plusacir;":"⨣","plusb;":"â","pluscir;":"⨢","plus;":"+","plusdo;":"â","plusdu;":"⨥","pluse;":"⩲","PlusMinus;":"±","plusmn;":"±",plusmn:"±","plussim;":"⨦","plustwo;":"⨧","pm;":"±","Poincareplane;":"â","pointint;":"â¨","popf;":"ð¡","Popf;":"â","pound;":"£",pound:"£","prap;":"⪷","Pr;":"⪻","pr;":"âº","prcue;":"â¼","precapprox;":"⪷","prec;":"âº","preccurlyeq;":"â¼","Precedes;":"âº","PrecedesEqual;":"⪯","PrecedesSlantEqual;":"â¼","PrecedesTilde;":"â¾","preceq;":"⪯","precnapprox;":"⪹","precneqq;":"⪵","precnsim;":"â¨","pre;":"⪯","prE;":"⪳","precsim;":"â¾","prime;":"â²","Prime;":"â³","primes;":"â","prnap;":"⪹","prnE;":"⪵","prnsim;":"â¨","prod;":"â","Product;":"â","profalar;":"â®","profline;":"â","profsurf;":"â","prop;":"â","Proportional;":"â","Proportion;":"â·","propto;":"â","prsim;":"â¾","prurel;":"â°","Pscr;":"ð«","pscr;":"ð
","Psi;":"Ψ","psi;":"Ï","puncsp;":"â","Qfr;":"ð","qfr;":"ð®","qint;":"â¨","qopf;":"ð¢","Qopf;":"â","qprime;":"â","Qscr;":"ð¬","qscr;":"ð","quaternions;":"â","quatint;":"â¨","quest;":"?","questeq;":"â","quot;":\'"\',quot:\'"\',"QUOT;":\'"\',QUOT:\'"\',"rAarr;":"â","race;":"â½Ì±","Racute;":"Å","racute;":"Å","radic;":"â","raemptyv;":"⦳","rang;":"â©","Rang;":"â«","rangd;":"â¦","range;":"⦥","rangle;":"â©","raquo;":"»",raquo:"»","rarrap;":"⥵","rarrb;
8":"â¥","rarrbfs;":"⤠","rarrc;":"⤳","rarr;":"â","Rarr;":"â ","rArr;":"â","rarrfs;":"â¤","rarrhk;":"âª","rarrlp;":"â¬","rarrpl;":"â¥
","rarrsim;":"⥴","Rarrtl;":"â¤","rarrtl;":"â£","rarrw;":"â","ratail;":"â¤","rAtail;":"â¤","ratio;":"â¶","rationals;":"â","rbarr;":"â¤","rBarr;":"â¤","RBarr;":"â¤","rbbrk;":"â³","rbrace;":"}","rbrack;":"]","rbrke;":"â¦","rbrksld;":"â¦","rbrkslu;":"â¦","Rcaron;":"Å","rcaron;":"Å","Rcedil;":"Å","rcedil;":"Å","rceil;":"â","rcub;":"}","Rcy;":"Ð ","rcy;":"Ñ","rdca;":"⤷","rdldhar;":"⥩","rdquo;":"â","rdquor;":"â","rdsh;":"â³","real;":"â","realine;":"â","realpart;":"â","reals;":"â","Re;":"â","rect;":"â","reg;":"®",reg:"®","REG;":"®",REG:"®","ReverseElement;":"â","ReverseEquilibrium;":"â","ReverseUpEquilibrium;":"⥯","rfisht;":"⥽","rfloor;":"â","rfr;":"ð¯","Rfr;":"â","rHar;":"⥤","rhard;":"â","rharu;":"â","rharul;":"⥬","Rho;":"Ρ","rho;":"Ï","rhov;":"ϱ","RightAngleBracket;":"â©","RightArrowBar;":"â¥","rightarrow;":"â","RightArrow;":"â","Rightarrow;":"â","RightArrowLeftArrow;":"â","rightarrowtail;":"â£","RightCeiling;":"â","RightDoubleBracket;":"â§","RightDownTeeVector;":"â¥","RightDownVectorBar;":"â¥","RightDownVector;":"â","RightFloor;":"â","rightharpoondown;":"â","rightharpoonup;":"â","rightleftarrows;":"â","rightleftharpoons;":"â","rightrightarrows;":"â","rightsquigarrow;":"â","RightTeeArrow;":"â¦","RightTee;":"â¢","RightTeeVector;":"â¥","rightthreetimes;":"â","RightTriangleBar;":"â§","RightTriangle;":"â³","RightTriangleEqual;":"âµ","RightUpDownVector;":"â¥","RightUpTeeVector;":"â¥","RightUpVectorBar;":"â¥","RightUpVector;":"â¾","RightVectorBar;":"â¥","RightVector;":"â","ring;":"Ë","risingdotseq;":"â","rlarr;":"â","rlhar;":"â","rlm;":"â","rmoustache;":"â±","rmoust;":"â±","rnmid;":"â«®","roang;":"â","roarr;":"â¾","robrk;":"â§","ropar;":"â¦","ropf;":"ð£","Ropf;":"â","roplus;":"⨮","rotimes;":"⨵","RoundImplies;":"⥰","rpar;":")","rpargt;":"â¦","rppolint;":"â¨","rrarr;":"â","Rrightarrow;":"â","rsaquo;":"âº","rscr;":"ð","Rscr;":"â","rsh;":"â±","Rsh;":"â±","rsqb;":"]","rsquo;":"â","rsquor;":"â","rthree;":"â","rtimes;":"â","rtri;":"â¹","rtrie;":"âµ","rtrif;":"â¸","rtriltri;":"â§","RuleDelayed;":"â§´","ruluhar;":"⥨","rx;":"â","Sacute;":"Å","sacute;":"Å","sbquo;":"â","scap;":"⪸","Scaron;":"Å ","scaron;":"Å¡","Sc;":"⪼","sc;":"â»","sccue;":"â½","sce;":"⪰","scE;":"⪴","Scedil;":"Å","scedil;":"Å","Scirc;":"Å","scirc;":"Å","scnap;":"⪺","scnE;":"⪶","scnsim;":"â©","scpolint;":"â¨","scsim;":"â¿","Scy;":"С","scy;":"Ñ","sdotb;":"â¡","sdot;":"â
","sdote;":"⩦","searhk;":"⤥","searr;":"â","seArr;":"â","searrow;":"â","sect;":"§",sect:"§","semi;":";","seswar;":"⤩","setminus;":"â","setmn;":"â","sext;":"â¶","Sfr;":"ð","sfr;":"ð°","sfrown;":"â¢","sharp;":"â¯","SHCHcy;":"Щ","shchcy;":"Ñ","SHcy;":"Ш","shcy;":"Ñ","ShortDownArrow;":"â","ShortLeftArrow;":"â","shortmid;":"â£","shortparallel;":"â¥","ShortRightArrow;":"â","ShortUpArrow;":"â","shy;":"Â",shy:"Â","Sigma;":"Σ","sigma;":"Ï","sigmaf;":"Ï","sigmav;":"Ï","sim;":"â¼","simdot;":"⩪","sime;":"â","simeq;":"â","simg;":"âª","simgE;":"⪠","siml;":"âª","simlE;":"âª","simne;":"â","simplus;":"⨤","simrarr;":"⥲","slarr;":"â","SmallCircle;":"â","smallsetminus;":"â","smashp;":"⨳","smeparsl;":"⧤","smid;":"â£","smile;":"â£","smt;":"⪪","smte;":"⪬","smtes;":"⪬ï¸","SOFTcy;":"Ь","softcy;":"Ñ","solbar;":"â¿","solb;":"â§","sol;":"/","Sopf;":"ð","sopf;":"ð¤","spades;":"â ","spadesuit;":"â ","spar;":"â¥","sqcap;":"â","sqcaps;":"âï¸","sqcup;":"â","sqcups;":"âï¸","Sqrt;":"â","sqsub;":"â","sqsube;":"â","sqsubset;":"â","sqsubseteq;":"â","sqsup;
8":"â","sqsupe;":"â","sqsupset;":"â","sqsupseteq;":"â","square;":"â¡","Square;":"â¡","SquareIntersection;":"â","SquareSubset;":"â","SquareSubsetEqual;":"â","SquareSuperset;":"â","SquareSupersetEqual;":"â","SquareUnion;":"â","squarf;":"âª","squ;":"â¡","squf;":"âª","srarr;":"â","Sscr;":"ð®","sscr;":"ð","ssetmn;":"â","ssmile;":"â£","sstarf;":"â","Star;":"â","star;":"â","starf;":"â
","straightepsilon;":"ϵ","straightphi;":"Ï","strns;":"¯","sub;":"â","Sub;":"â","subdot;":"⪽","subE;":"â«
","sube;":"â","subedot;":"â«","submult;":"â«","subnE;":"â«","subne;":"â","subplus;":"⪿","subrarr;":"⥹","subset;":"â","Subset;":"â","subseteq;":"â","subseteqq;":"â«
","SubsetEqual;":"â","subsetneq;":"â","subsetneqq;":"â«","subsim;":"â«","subsub;":"â«","subsup;":"â«","succapprox;":"⪸","succ;":"â»","succcurlyeq;":"â½","Succeeds;":"â»","SucceedsEqual;":"⪰","SucceedsSlantEqual;":"â½","SucceedsTilde;":"â¿","succeq;":"⪰","succnapprox;":"⪺","succneqq;":"⪶","succnsim;":"â©","succsim;":"â¿","SuchThat;":"â","sum;":"â","Sum;":"â","sung;":"âª","sup1;":"¹",sup1:"¹","sup2;":"²",sup2:"²","sup3;":"³",sup3:"³","sup;":"â","Sup;":"â","supdot;":"⪾","supdsub;":"â«","supE;":"â«","supe;":"â","supedot;":"â«","Superset;":"â","SupersetEqual;":"â","suphsol;":"â","suphsub;":"â«","suplarr;":"⥻","supmult;":"â«","supnE;":"â«","supne;":"â","supplus;":"â«","supset;":"â","Supset;":"â","supseteq;":"â","supseteqq;":"â«","supsetneq;":"â","supsetneqq;":"â«","supsim;":"â«","supsub;":"â«","supsup;":"â«","swarhk;":"⤦","swarr;":"â","swArr;":"â","swarrow;":"â","swnwar;":"⤪","szlig;":"Ã",szlig:"Ã","Tab;":"\t","target;":"â","Tau;":"Τ","tau;":"Ï","tbrk;":"â´","Tcaron;":"Ť","tcaron;":"Å¥","Tcedil;":"Å¢","tcedil;":"Å£","Tcy;":"Т","tcy;":"Ñ","tdot;":"â","telrec;":"â","Tfr;":"ð","tfr;":"ð±","there4;":"â´","therefore;":"â´","Therefore;":"â´","Theta;":"Î","theta;":"θ","thetasym;":"Ï","thetav;":"Ï","thickapprox;":"â","thicksim;":"â¼","ThickSpace;":"ââ","ThinSpace;":"â","thinsp;":"â","thkap;":"â","thksim;":"â¼","THORN;":"Ã",THORN:"Ã","thorn;":"þ",thorn:"þ","tilde;":"Ë","Tilde;":"â¼","TildeEqual;":"â","TildeFullEqual;":"â
","TildeTilde;":"â","timesbar;":"⨱","timesb;":"â ","times;":"Ã",times:"Ã","timesd;":"⨰","tint;":"â","toea;":"⤨","topbot;":"â¶","topcir;":"⫱","top;":"â¤","Topf;":"ð","topf;":"ð¥","topfork;":"â«","tosa;":"⤩","tprime;":"â´","trade;":"â¢","TRADE;":"â¢","triangle;":"âµ","triangledown;":"â¿","triangleleft;":"â","trianglelefteq;":"â´","triangleq;":"â","triangleright;":"â¹","trianglerighteq;":"âµ","tridot;":"â¬","trie;":"â","triminus;":"⨺","TripleDot;":"â","triplus;":"⨹","trisb;":"â§","tritime;":"⨻","trpezium;":"â¢","Tscr;":"ð¯","tscr;":"ð","TScy;":"Ц","tscy;":"Ñ","TSHcy;":"Ð","tshcy;":"Ñ","Tstrok;":"Ŧ","tstrok;":"ŧ","twixt;":"â¬","twoheadleftarrow;":"â","twoheadrightarrow;":"â ","Uacute;":"Ã",Uacute:"Ã","uacute;":"ú",uacute:"ú","uarr;":"â","Uarr;":"â","uArr;":"â","Uarrocir;":"â¥","Ubrcy;":"Ð","ubrcy;":"Ñ","Ubreve;":"Ŭ","ubreve;":"Å","Ucirc;":"Ã",Ucirc:"Ã","ucirc;":"û",ucirc:"û","Ucy;":"У","ucy;":"Ñ","udarr;":"â
","Udblac;":"Ű","udblac;":"ű","udhar;":"⥮","ufisht;":"⥾","Ufr;":"ð","ufr;":"ð²","Ugrave;":"Ã",Ugrave:"Ã","ugrave;":"ù",ugrave:"ù","uHar;":"⥣","uharl;":"â¿","uharr;":"â¾","uhblk;":"â","ulcorn;":"â","ulcorner;":"â","ulcrop;":"â","ultri;":"â¸","Umacr;":"Ū","umacr;":"Å«","uml;":"¨",uml:"¨","UnderBar;":"_","UnderBrace;":"â","UnderBracket;":"âµ","UnderParenthesis;":"â","Union;":"â","UnionPlus;":"â","Uogon;":"Ų","uogon;":"ų","Uopf;":"ð","uopf;":"ð¦","UpArrowBar;":"â¤","uparrow;":"â","UpArrow;":"â","Uparrow;":"â","UpArrowDownArrow;":"â
","updownarrow;":"â","UpDownArrow;":"â","Updownarrow;":"â","UpEquilibrium;":"⥮","upharpoonleft;":"â¿","upharpoonright;":"â¾","uplus;":"â","UpperLeftArrow;":"â","UpperRightArrow;":"â","upsi;":"Ï
","Upsi;":"Ï","upsih;":"Ï","Upsilon;":"Î¥","upsilon;":"Ï
","UpTeeArrow;":"â¥","UpTee;":"â¥","upuparrows;":"â","urcorn;":"â","urcorner;":"â","urcrop;":"â","Uring;":"Å®","uring;":"ů","urtri;":"â¹","Uscr;":"ð°","uscr;":"ð","utdot;":"â°","Utilde;":"Ũ","utilde;":"Å©","utri;":"âµ","utrif;":"â´","uuarr;":"â","Uuml;":"Ã",Uuml:"Ã","uuml;":"ü",uuml:"ü","uwangle;":"⦧","vangrt;":"â¦","varepsilon;":"ϵ","varkappa;":"ϰ","varnothing;":"â
","varphi;":"Ï","varpi;
8":"Ï","varpropto;":"â","varr;":"â","vArr;":"â","varrho;":"ϱ","varsigma;":"Ï","varsubsetneq;":"âï¸","varsubsetneqq;":"â«ï¸","varsupsetneq;":"âï¸","varsupsetneqq;":"â«ï¸","vartheta;":"Ï","vartriangleleft;":"â²","vartriangleright;":"â³","vBar;":"⫨","Vbar;":"â««","vBarv;":"â«©","Vcy;":"Ð","vcy;":"в","vdash;":"â¢","vDash;":"â¨","Vdash;":"â©","VDash;":"â«","Vdashl;":"⫦","veebar;":"â»","vee;":"â¨","Vee;":"â","veeeq;":"â","vellip;":"â®","verbar;":"|","Verbar;":"â","vert;":"|","Vert;":"â","VerticalBar;":"â£","VerticalLine;":"|","VerticalSeparator;":"â","VerticalTilde;":"â","VeryThinSpace;":"â","Vfr;":"ð","vfr;":"ð³","vltri;":"â²","vnsub;":"ââ","vnsup;":"ââ","Vopf;":"ð","vopf;":"ð§","vprop;":"â","vrtri;":"â³","Vscr;":"ð±","vscr;":"ð","vsubnE;":"â«ï¸","vsubne;":"âï¸","vsupnE;":"â«ï¸","vsupne;":"âï¸","Vvdash;":"âª","vzigzag;":"â¦","Wcirc;":"Å´","wcirc;":"ŵ","wedbar;":"â©","wedge;":"â§","Wedge;":"â","wedgeq;":"â","weierp;":"â","Wfr;":"ð","wfr;":"ð´","Wopf;":"ð","wopf;":"ð¨","wp;":"â","wr;":"â","wreath;":"â","Wscr;":"ð²","wscr;":"ð","xcap;":"â","xcirc;":"â¯","xcup;":"â","xdtri;":"â½","Xfr;":"ð","xfr;":"ðµ","xharr;":"â·","xhArr;":"âº","Xi;":"Î","xi;":"ξ","xlarr;":"âµ","xlArr;":"â¸","xmap;":"â¼","xnis;":"â»","xodot;":"â¨","Xopf;":"ð","xopf;":"ð©","xoplus;":"â¨","xotime;":"â¨","xrarr;":"â¶","xrArr;":"â¹","Xscr;":"ð³","xscr;":"ð","xsqcup;":"â¨","xuplus;":"â¨","xutri;":"â³","xvee;":"â","xwedge;":"â","Yacute;":"Ã",Yacute:"Ã","yacute;":"ý",yacute:"ý","YAcy;":"Я","yacy;":"Ñ","Ycirc;":"Ŷ","ycirc;":"Å·","Ycy;":"Ы","ycy;":"Ñ","yen;":"Â¥",yen:"Â¥","Yfr;":"ð","yfr;":"ð¶","YIcy;":"Ð","yicy;":"Ñ","Yopf;":"ð","yopf;":"ðª","Yscr;":"ð´","yscr;":"ð","YUcy;":"Ю","yucy;":"Ñ","yuml;":"ÿ",yuml:"ÿ","Yuml;":"Ÿ","Zacute;":"Ź","zacute;":"ź","Zcaron;":"Ž","zcaron;":"ž","Zcy;":"Ð","zcy;":"з","Zdot;":"Å»","zdot;":"ż","zeetrf;":"â¨","ZeroWidthSpace;":"â","Zeta;":"Î","zeta;":"ζ","zfr;":"ð·","Zfr;":"â¨","ZHcy;":"Ð","zhcy;":"ж","zigrarr;":"â","zopf;":"ð«","Zopf;":"â¤","Zscr;":"ðµ","zscr;":"ð","zwj;":"â","zwnj;":"â"}\n},{}],13:[function(_dereq_,module){function replacer(key,value){return util.isUndefined(value)?""+value:!util.isNumber(value)||!isNaN(value)&&isFinite(value)?util.isFunction(value)||util.isRegExp(value)?""+value:value:""+value}function truncate(s,n){return util.isString(s)?n>s.length?s:s.slice(0,n):s}function getMessage(self){return truncate(JSON.stringify(self.actual,replacer),128)+" "+self.operator+" "+truncate(JSON.stringify(self.expected,replacer),128)}function fail(actual,expected,message,operator,stackStartFunction){throw new assert.AssertionError({message:message,actual:actual,expected:expected,operator:operator,stackStartFunction:stackStartFunction})}function ok(value,message){value||fail(value,!0,message,"==",assert.ok)}function _deepEqual(actual,expected){if(actual===expected)return!0;if(util.isBuffer(actual)&&util.isBuffer(expected)){if(actual.length!=expected.length)return!1;for(var i=0;actual.length>i;i++)if(actual[i]!==expected[i])return!1;return!0}return util.isDate(actual)&&util.isDate(expected)?actual.getTime()===expected.getTime():util.isRegExp(actual)&&util.isRegExp(expected)?actual.source===expected.source&&actual.global===expected.global&&actual.multiline===expected.multiline&&actual.lastIndex===expected.lastIndex&&actual.ignoreCase===expected.ignoreCase:util.isObject(actual)||util.isObject(expected)?objEquiv(actual,expected):actual==expected}function isArguments(object){return"[object Arguments]"==Object.prototype.toString.call(object)}function objEquiv(a,b){if(util.isNullOrUndefined(a)||util.isNullOrUndefined(b))return!1;if(a.prototype!==b.prototype)return!1;if(isArguments(a))return isArguments(b)?(a=pSlice.call(a),b=pSlice.call(b),_deepEqual(a,b)):!1;try{var key,i,ka=objectKeys(a),kb=objectKeys(b)}catch(e){return!1}if(ka.length!=kb.length)return!1;for(ka.sort(),kb.sort(),i=ka.length-1;i>=0;i--)if(ka[i]!=kb[i])return!1;for(i=ka.length-1;i>=0;i--)if(key=ka[i],!_deepEqual(a[key],b[key]))return!1;return!0}function expectedException(actual,expected){return actual&&expected?"[object RegExp]"==Object.prototype.toString.call(expected)?expected.test(actual):actual instanceof expected?!0:expected.call({},actual)===!0?!0:!1:!1}function _throws(shouldThrow,block,expected,message){var actual;util.isString(expected)&&(message=expected,expected=null);try{block()}catch(e){actual=e}if(message=(expected&&expected.name?" ("+expected.name+").":".")+(message?" "+message:"."),shouldThrow&&!actual&&fail(actual,expected,"Missing expected exception"+message),!shouldThrow&&expectedException(actual,expected)&&fail(actual,expected,"Got unwanted exception"+message),shouldThrow&&actual&&expected&&!expectedException(actual,expected)||!shouldThrow&&actual)throw actual}var util=_dereq_("util/"),pSlice=Array.prototype.slice,hasOwn=Object.prototype.hasOwnProperty,assert=module.exports=ok;assert.AssertionError=function(options){this.name="AssertionError",this.actual=options.actual,this.expected=options.expected,this.operator=options.operator,options.message?(this.message=options.message,this.generatedMessage=!1):(this.message=getMessage(this),this.generatedMessage=!0);var stackStartFunction=options.stackStartFunction||fail;if(Error.captureStackTrace)Error.captureStackTrace(this,stackStartFunction);else{var err=Error();if(err.stack){var out=err.stack,fn_name=stackStartFunction.name,idx=out.indexOf("\\n"+fn_name);if(idx>=0){var next_line=out.indexOf("\\n",idx+1);out=out.substring(next_line+1)}this.stack=out}}},util.inherits(assert.AssertionError,Error),assert.fail=fail,assert.ok=ok,assert.equal=function(actual,expected,message){actual!=expected&&fail(actual,expected,message,"==",assert.equal)}
vendor: 4,956 bytes, line 8
8,assert.notEqual=function(actual,expected,message){actual==expected&&fail(actual,expected,message,"!=",assert.notEqual)},assert.deepEqual=function(actual,expected,message){_deepEqual(actual,expected)||fail(actual,expected,message,"deepEqual",assert.deepEqual)},assert.notDeepEqual=function(actual,expected,message){_deepEqual(actual,expected)&&fail(actual,expected,message,"notDeepEqual",assert.notDeepEqual)},assert.strictEqual=function(actual,expected,message){actual!==expected&&fail(actual,expected,message,"===",assert.strictEqual)},assert.notStrictEqual=function(actual,expected,message){actual===expected&&fail(actual,expected,message,"!==",assert.notStrictEqual)},assert.throws=function(){_throws.apply(this,[!0].concat(pSlice.call(arguments)))},assert.doesNotThrow=function(){_throws.apply(this,[!1].concat(pSlice.call(arguments)))},assert.ifError=function(err){if(err)throw err};var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj)hasOwn.call(obj,key)&&keys.push(key);return keys}},{"util/":15}],14:[function(_dereq_,module){module.exports=function(arg){return arg&&"object"==typeof arg&&"function"==typeof arg.copy&&"function"==typeof arg.fill&&"function"==typeof arg.readUInt8}},{}],15:[function(_dereq_,module,exports){(function(process,global){function inspect(obj,opts){var ctx={seen:[],stylize:stylizeNoColor};return arguments.length>=3&&(ctx.depth=arguments[2]),arguments.length>=4&&(ctx.colors=arguments[3]),isBoolean(opts)?ctx.showHidden=opts:opts&&exports._extend(ctx,opts),isUndefined(ctx.showHidden)&&(ctx.showHidden=!1),isUndefined(ctx.depth)&&(ctx.depth=2),isUndefined(ctx.colors)&&(ctx.colors=!1),isUndefined(ctx.customInspect)&&(ctx.customInspect=!0),ctx.colors&&(ctx.stylize=stylizeWithColor),formatValue(ctx,obj,ctx.depth)}function stylizeWithColor(str,styleType){var style=inspect.styles[styleType];return style?"�["+inspect.colors[style][0]+"m"+str+"�["+inspect.colors[style][1]+"m":str}function stylizeNoColor(str){return str}function arrayToHash(array){var hash={};return array.forEach(function(val){hash[val]=!0}),hash}function formatValue(ctx,value,recurseTimes){if(ctx.customInspect&&value&&isFunction(value.inspect)&&value.inspect!==exports.inspect&&(!value.constructor||value.constructor.prototype!==value)){var ret=value.inspect(recurseTimes,ctx);return isString(ret)||(ret=formatValue(ctx,ret,recurseTimes)),ret}var primitive=formatPrimitive(ctx,value);if(primitive)return primitive;var keys=Object.keys(value),visibleKeys=arrayToHash(keys);if(ctx.showHidden&&(keys=Object.getOwnPropertyNames(value)),isError(value)&&(keys.indexOf("message")>=0||keys.indexOf("description")>=0))return formatError(value);if(0===keys.length){if(isFunction(value)){var name=value.name?": "+value.name:"";return ctx.stylize("[Function"+name+"]","special")}if(isRegExp(value))return ctx.stylize(RegExp.prototype.toString.call(value),"regexp");if(isDate(value))return ctx.stylize(Date.prototype.toString.call(value),"date");if(isError(value))return formatError(value)}var base="",array=!1,braces=["{","}"];if(isArray(value)&&(array=!0,braces=["[","]"]),isFunction(value)){var n=value.name?": "+value.name:"";base=" [Function"+n+"]"}if(isRegExp(value)&&(base=" "+RegExp.prototype.toString.call(value)),isDate(value)&&(base=" "+Date.prototype.toUTCString.call(value)),isError(value)&&(base=" "+formatError(value)),0===keys.length&&(!array||0==value.length))return braces[0]+base+braces[1];if(0>recurseTimes)return isRegExp(value)?ctx.stylize(RegExp.prototype.toString.call(value),"regexp"):ctx.stylize("[Object]","special");ctx.seen.push(value);var output;return output=array?formatArray(ctx,value,recurseTimes,visibleKeys,keys):keys.map(function(key){return formatProperty(ctx,value,recurseTimes,visibleKeys,key,array)}),ctx.seen.pop(),reduceToSingleString(output,base,braces)}function formatPrimitive(ctx,value){if(isUndefined(value))return ctx.stylize("undefined","undefined");if(isString(value)){var simple="\'"+JSON.stringify(value).replace(/^"|"$/g,"").replace(/\'/g,"\\\\\'").replace(/\\\\"/g,\'"\')+"\'";return ctx.stylize(simple,"string")}return isNumber(value)?ctx.stylize(""+value,"number"):isBoolean(value)?ctx.stylize(""+value,"boolean"):isNull(value)?ctx.stylize("null","null"):void 0}function formatError(value){return"["+Error.prototype.toString.call(value)+"]"}function formatArray(ctx,value,recurseTimes,visibleKeys,keys){for(var output=[],i=0,l=value.length;l>i;++i)hasOwnProperty(value,i+"")?output.push(formatProperty(ctx,value,recurseTimes,visibleKeys,i+"",!0)):output.push("");return keys.forEach(function(key){key.match(/^\\d+$/)||output.push(formatProperty(ctx,value,recurseTimes,visibleKeys,key,!0))}),output}function formatProperty(ctx,value,recurseTimes,visibleKeys,key,array){var name,str,desc;if(desc=Object.getOwnPropertyDescriptor(value,key)||{value:value[key]},desc.get?str=desc.set?ctx.stylize("[Getter/Setter]","special"):ctx.stylize("[Getter]","special"):desc.set&&(str=ctx.stylize("[
8Setter]","special")),hasOwnProperty(visibleKeys,key)||(name="["+key+"]"),str||(0>ctx.seen.indexOf(desc.value)?(str=isNull(recurseTimes)?formatValue(ctx,desc.value,null):formatValue(ctx,desc.value,recurseTimes-1),str.indexOf("\\n")>-1&&(str=array?str.split("\\n").map(function(line){return" "+line}).join("\\n").substr(2):"\\n"+str.split("\\n").map(function(line){return" "+line}).join("\\n"))):str=ctx.stylize("[Circular]","special")),isUndefined(name)){if(array&&key.match(/^\\d+$/))return str;name=JSON.stringify(""+key),name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(name=name.substr(1,name.length-2),name=ctx.stylize(name,"name")):(name=name.replace(/\'/g,"\\\\\'").replace(/\\\\"/g,\'"\').replace(/(^"|"$)/g,"\'"),name=ctx.stylize(name,"string"))}return name+": "+str}function reduceToSingleString(output,base,braces){var numLinesEst=0,length=output.reduce(function(prev,cur){return numLinesEst++,cur.indexOf("\\n")>=0&&numLinesEst++,prev+cur.replace(/\\u001b\\[\\d\\d?m/g,"").length+1},0);return length>60?braces[0]+(""===base?"":base+"\\n ")+" "+output.join(",\\n ")+" "+braces[1]:braces[0]+base+" "+output.join(", ")+" "+braces[1]}function isArray(ar){return Array.isArray(ar)}function isBoolean(arg){return"boolean"==typeof arg}function isNull(arg){return null===arg}function isNullOrUndefined(arg){return null==arg}function isNumber(arg){return"number"==typeof arg}function isString(arg){return"string"==typeof arg}function isSymbol(arg){return"symbol"==typeof arg}function isUndefined(arg){return void 0===arg}function isRegExp(re){return isObject(re)&&"[object RegExp]"===objectToString(re)}function isObject(arg){return"object"==typeof arg&&null!==arg}function isDate(d){return isObject(d)&&"[object Date]"===objectToString(d)}function isError(e){return isObject(e)&&("[object Error]"===objectToString(e)||e instanceof Error)}function isFunction(arg){return"function"==typeof arg}function isPrimitive(arg){return null===arg||"boolean"==typeof arg||"number"==typeof arg||"string"==typeof arg||"symbol"==typeof arg||arg===void 0}function objectToString(o){return Object.prototype.toString.call(o)}function pad(n){return 10>n?"0"+n.toString(10):n.toString(10)}function timestamp(){var d=new Date,time=[pad(d.getHours()),pad(d.getMinutes()),pad(d.getSeconds())].join(":");return[d.getDate(),months[d.getMonth()],time].join(" ")}function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}var formatRegExp=/%[sdj%]/g;exports.format=function(f){if(!isString(f)){for(var objects=[],i=0;arguments.length>i;i++)objects.push(inspect(arguments[i]));return objects.join(" ")}for(var i=1,args=arguments,len=args.length,str=(f+"").replace(formatRegExp,function(x){if("%%"===x)return"%";if(i>=len)return x;switch(x){case"%s":return args[i++]+"";case"%d":return Number(args[i++]);case"%j":try{return JSON.stringify(args[i++])}catch(_){return"[Circular]"}default:return x}}),x=args[i];len>i;x=args[++i])str+=isNull(x)||!isObject(x)?" "+x:" "+inspect(x);return str},exports.deprecate=function(fn,msg){function deprecated(){if(!warned){if(process.throwDeprecation)throw Error(msg);process.traceDeprecation?console.trace(msg):console.error(msg),warned=!0}return fn.apply(this,arguments)}if(isUndefined(global.process))return function(){return exports.deprecate(fn,msg).apply(this,arguments)};if(process.noDeprecation===!0)return fn;var warned=!1;return deprecated};var debugEnviron,debugs={};exports.debuglog=function(set){if(isUndefined(debugEnviron)&&(debugEnviron=process.env.NODE_DEBUG||""),set=set.toUpperCase(),!debugs[set])if(RegExp("\\\\b"+set+"\\\\b","i").test(debugEnviron)){var pid=process.pid;debugs[set]=function(){var msg=exports.format.apply(exports,arguments);console.error("%s %d: %s",set,pid,msg)}}else debugs[set]=function(){};return debugs[set]},exports.inspect=inspect,inspect.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},inspect.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"},exports.isArray=isArray,exports.isBoolean=isBoolean,exports.isNull=isNull,exports.isNullOrUndefined=isNullOrUndefined,exports.isNumber=isNumber,exports.isString=isString,exports.isSymbol
8=isSymbol,exports.isUndefined=isUndefined,exports.isRegExp=isRegExp,exports.isObject=isObject,exports.isDate=isDate,exports.isError=isError,exports.isFunction=isFunction,exports.isPrimitive=isPrimitive,exports.isBuffer=_dereq_("./support/isBuffer");var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];exports.log=function(){console.log("%s - %s",timestamp(),exports.format.apply(exports,arguments))},exports.inherits=_dereq_("inherits"),exports._extend=function(origin,add){if(!add||!isObject(add))return origin;for(var keys=Object.keys(add),i=keys.length;i--;)origin[keys[i]]=add[keys[i]];return origin}}).call(this,_dereq_("/usr/local/lib/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./support/isBuffer":14,"/usr/local/lib/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js":18,inherits:17}],16:[function(_dereq_,module){function EventEmitter(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function isFunction(arg){return"function"==typeof arg}function isNumber(arg){return"number"==typeof arg}function isObject(arg){return"object"==typeof arg&&null!==arg}function isUndefined(arg){return void 0===arg}module.exports=EventEmitter,EventEmitter.EventEmitter=EventEmitter,EventEmitter.prototype._events=void 0,EventEmitter.prototype._maxListeners=void 0,EventEmitter.defaultMaxListeners=10,EventEmitter.prototype.setMaxListeners=function(n){if(!isNumber(n)||0>n||isNaN(n))throw TypeError("n must be a positive number");return this._maxListeners=n,this},EventEmitter.prototype.emit=function(type){var er,handler,len,args,i,listeners;if(this._events||(this._events={}),"error"===type&&(!this._events.error||isObject(this._events.error)&&!this._events.error.length))throw er=arguments[1],er instanceof Error?er:TypeError(\'Uncaught, unspecified "error" event.\');if(handler=this._events[type],isUndefined(handler))return!1;if(isFunction(handler))switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:for(len=arguments.length,args=Array(len-1),i=1;len>i;i++)args[i-1]=arguments[i];handler.apply(this,args)}else if(isObject(handler)){for(len=arguments.length,args=Array(len-1),i=1;len>i;i++)args[i-1]=arguments[i];for(listeners=handler.slice(),len=listeners.length,i=0;len>i;i++)listeners[i].apply(this,args)}return!0},EventEmitter.prototype.addListener=function(type,listener){var m;if(!isFunction(listener))throw TypeError("listener must be a function");if(this._events||(this._events={}),this._events.newListener&&this.emit("newListener",type,isFunction(listener.listener)?listener.listener:listener),this._events[type]?isObject(this._events[type])?this._events[type].push(listener):this._events[type]=[this._events[type],listener]:this._events[type]=listener,isObject(this._events[type])&&!this._events[type].warned){var m;m=isUndefined(this._maxListeners)?EventEmitter.defaultMaxListeners:this._maxListeners,m&&m>0&&this._events[type].length>m&&(this._events[type].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[type].length),console.trace())}return this},EventEmitter.prototype.on=EventEmitter.prototype.addListener,EventEmitter.prototype.once=function(type,listener){function g(){this.removeListener(type,g),fired||(fired=!0,listener.apply(this,arguments))}if(!isFunction(listener))throw TypeError("listener must be a function");var fired=!1;return g.listener=listener,this.on(type,g),this},EventEmitter.prototype.removeListener=function(type,listener){var list,position,length,i;if(!isFunction(listener))throw TypeError("listener must be a function");if(!this._events||!this._events[type])return this;if(list=this._events[type],length=list.length,position=-1,list===listener||isFunction(list.listener)&&list.listener===listener)delete this._events[type],this._events.removeListener&&this.emit
8("removeListener",type,listener);else if(isObject(list)){for(i=length;i--\x3e0;)if(list[i]===listener||list[i].listener&&list[i].listener===listener){position=i;break}if(0>position)return this;1===list.length?(list.length=0,delete this._events[type]):list.splice(position,1),this._events.removeListener&&this.emit("removeListener",type,listener)}return this},EventEmitter.prototype.removeAllListeners=function(type){var key,listeners;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[type]&&delete this._events[type],this;if(0===arguments.length){for(key in this._events)"removeListener"!==key&&this.removeAllListeners(key);return this.removeAllListeners("removeListener"),this._events={},this}if(listeners=this._events[type],isFunction(listeners))this.removeListener(type,listeners);else for(;listeners.length;)this.removeListener(type,listeners[listeners.length-1]);return delete this._events[type],this},EventEmitter.prototype.listeners=function(type){var ret;return ret=this._events&&this._events[type]?isFunction(this._events[type])?[this._events[type]]:this._events[type].slice():[]},EventEmitter.listenerCount=function(emitter,type){var ret;return ret=emitter._events&&emitter._events[type]?isFunction(emitter._events[type])?1:emitter._events[type].length:0}},{}],17:[function(_dereq_,module){module.exports="function"==typeof Object.create?function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})}:function(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype,ctor.prototype=new TempCtor,ctor.prototype.constructor=ctor}},{}],18:[function(_dereq_,module){function noop(){}var process=module.exports={};process.nextTick=function(){var canSetImmediate="undefined"!=typeof window&&window.setImmediate,canPost="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(canSetImmediate)return function(f){return window.setImmediate(f)};if(canPost){var queue=[];return window.addEventListener("message",function(ev){var source=ev.source;if((source===window||null===source)&&"process-tick"===ev.data&&(ev.stopPropagation(),queue.length>0)){var fn=queue.shift();fn()}},!0),function(fn){queue.push(fn),window.postMessage("process-tick","*")}}return function(fn){setTimeout(fn,0)}}(),process.title="browser",process.browser=!0,process.env={},process.argv=[],process.on=noop,process.once=noop,process.off=noop,process.emit=noop,process.binding=function(){throw Error("process.binding is not supported")},process.cwd=function(){return"/"},process.chdir=function(){throw Error("process.chdir is not supported")}},{}],19:[function(_dereq_,module){module.exports=_dereq_(14)},{}],20:[function(_dereq_,module){module.exports=_dereq_(15)},{"./support/isBuffer":19,"/usr/local/lib/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js":18,inherits:17}]},{},[9])(9)}),ace.define("ace/mode/html_worker",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/worker/mirror","ace/mode/html/saxparser"],function(acequire,exports){"use strict";var oop=acequire("../lib/oop");acequire("../lib/lang");var Mirror=acequire("../worker/mirror").Mirror,SAXParser=acequire("./html/saxparser").SAXParser,errorTypes={"expected-doctype-but-got-start-tag":"info","expected-doctype-but-got-chars":"info","non-html-root":"info"},Worker=exports.Worker=function(sender){Mirror.call(this,sender),this.setTimeout(400),this.context=null};oop.inherits(Worker,Mirror),function(){this.setOptions=function(options){this.context=options.context},this.onUpdate=function(){var value=this.doc.getValue();if(value){var parser=new SAXParser,errors=[],noop=function(){};parser.contentHandler={startDocument:noop,endDocument:noop,startElement:noop,endElement:noop,characters:noop},parser.errorHandler={error:function(message,location,code){errors.push({row:location.line,column:location.column,text:message,type:errorTypes[code]||"error"})}},this.context?parser.parseFragment(value,this.context):parser.parse(value),this.sender.emit("error",errors)}}}.call(Worker.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,"sentinel",{}),"sentinel"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError("Function.prototype.bind called on incompatible "+target);
8var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,"__defineGetter__"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,"XXX"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0
vendor: 8,928 bytes, line 8
8}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return"[object Array]"==_toString(obj)});var boxedString=Object("a"),splitString="a"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,thisp=arguments[1],i=-1,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=[],thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError("reduce of empty array with no initial value")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError("reduceRight of empty array with no initial value")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(object,property){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if("object"!=typeof prototype)throw new TypeError("typeof prototype["+typeof prototype+"] != \'object\'");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom="undefined"==typeof document||doesDefinePropertyWork(document.createElement("div"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR="Property description must be an object: ",ERR_NON_OBJECT_TARGET="Object.defineProperty called on non-object: ",ERR_ACCESSORS_NOT_SUPPORTED="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(object,property,descriptor){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if("object"!=typeof descriptor&&"function"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,"value"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,"get")&&defineGetter(object,property,descriptor.get),owns(descriptor,"set")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object
8\n});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return"function"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name="";owns(object,name);)name+="?";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError("Object.keys called on a non-object");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws="\t\\n\v\\f\\r  áá ââââââ
ââââââ¯âã\\u2028\\u2029\ufeff";if(!String.prototype.trim||ws.trim()){ws="["+ws+"]";var trimBeginRegexp=RegExp("^"+ws+ws+"*"),trimEndRegexp=RegExp(ws+ws+"*$");String.prototype.trim=function(){return(this+"").replace(trimBeginRegexp,"").replace(trimEndRegexp,"")}}var toObject=function(o){if(null==o)throw new TypeError("can\'t convert "+o+" to object");return Object(o)}});'},function(e,t){ace.define("ace/snippets/markdown",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='# Markdown\n\n# Includes octopress (http://octopress.org/) snippets\n\nsnippet [\n\t[${1:text}](http://${2:address} "${3:title}")\nsnippet [*\n\t[${1:link}](${2:`@*`} "${3:title}")${4}\n\nsnippet [:\n\t[${1:id}]: http://${2:url} "${3:title}"\nsnippet [:*\n\t[${1:id}]: ${2:`@*`} "${3:title}"\n\nsnippet \nsnippet ${4}\n\nsnippet ![:\n\t![${1:id}]: ${2:url} "${3:title}"\nsnippet ![:*\n\t![${1:id}]: ${2:`@*`} "${3:title}"\n\nsnippet ===\nregex /^/=+/=*//\n\t${PREV_LINE/./=/g}\n\t\n\t${0}\nsnippet ---\nregex /^/-+/-*//\n\t${PREV_LINE/./-/g}\n\t\n\t${0}\nsnippet blockquote\n\t{% blockquote %}\n\t${1:quote}\n\t{% endblockquote %}\n\nsnippet blockquote-author\n\t{% blockquote ${1:author}, ${2:title} %}\n\t${3:quote}\n\t{% endblockquote %}\n\nsnippet blockquote-link\n\t{% blockquote ${1:author} ${2:URL} ${3:link_text} %}\n\t${4:quote}\n\t{% endblockquote %}
8\n\nsnippet bt-codeblock-short\n\t```\n\t${1:code_snippet}\n\t```\n\nsnippet bt-codeblock-full\n\t``` ${1:language} ${2:title} ${3:URL} ${4:link_text}\n\t${5:code_snippet}\n\t```\n\nsnippet codeblock-short\n\t{% codeblock %}\n\t${1:code_snippet}\n\t{% endcodeblock %}\n\nsnippet codeblock-full\n\t{% codeblock ${1:title} lang:${2:language} ${3:URL} ${4:link_text} %}\n\t${5:code_snippet}\n\t{% endcodeblock %}\n\nsnippet gist-full\n\t{% gist ${1:gist_id} ${2:filename} %}\n\nsnippet gist-short\n\t{% gist ${1:gist_id} %}\n\nsnippet img\n\t{% img ${1:class} ${2:URL} ${3:width} ${4:height} ${5:title_text} ${6:alt_text} %}\n\nsnippet youtube\n\t{% youtube ${1:video_id} %}\n\n# The quote should appear only once in the text. It is inherently part of it.\n# See http://octopress.org/docs/plugins/pullquote/ for more info.\n\nsnippet pullquote\n\t{% pullquote %}\n\t${1:text} {" ${2:quote} "} ${3:text}\n\t{% endpullquote %}\n',t.scope="markdown"})},function(e,t,n){ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),a=e("./text_highlight_rules").TextHighlightRules,i=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"invalid.illegal",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"invalid.illegal",regex:"\\/\\/.*$"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'[^"\\\\]+'},{token:"string",regex:'"',next:"start"},{token:"string",regex:"",next:"start"}]}};r.inherits(i,a),t.JsonHighlightRules=i}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,a=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t),a=n.match(/^(\s*\})/);if(!a)return 0;var i=a[1].length,o=e.findMatchingBracket({row:t,column:i});if(!o||o.row==t)return 0;var s=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,i-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(a.prototype),t.MatchingBraceOutdent=a}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),a=e("../../range").Range,i=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,i),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var a=this._getFoldWidgetBase(e,t,n);return!a&&this.startRegionRe.test(r)?"start":a},this.getFoldWidgetRange=function(e,t,n,r){var a=e.getLine(n);if(this.startRegionRe.test(a))return this.getCommentRegionBlock(e,a,n);var i=a.match(this.foldingStartMarker);if(i){var o=i.index;if(i[1])return this.openingBracketBlock(e,i[1],n,o);var s=e.getCommentFoldRange(n,o+i[0].length,1);return s&&!s.isMultiLine()&&(r?s=this.getSectionRange(e,n):"all"!=t&&(s=null)),s}if("markbegin"!==t){var i=a.match(this.foldingStopMarker);if(i){var o=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,o):e.getCommentFoldRange(n,o,-1)}}}
8,this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),i=t,o=n.length;t+=1;for(var s=t,l=e.getLength();++t<l;){n=e.getLine(t);var c=n.search(/\S/);if(-1!==c){if(r>c)break;var d=this.getFoldWidgetRange(e,"all",t);if(d){if(d.start.row<=i)break;if(d.isMultiLine())t=d.end.row;else if(r==c)break}s=t}}return new a(i,o,s,e.getLine(s).length)},this.getCommentRegionBlock=function(e,t,n){for(var r=t.search(/\s*$/),i=e.getLength(),o=n,s=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++n<i;){t=e.getLine(n);var c=s.exec(t);if(c&&(c[1]?l--:l++,!l))break}var d=n;if(d>o)return new a(o,r,d,t.length)}}.call(o.prototype)}),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(e,t,r){"use strict";var a=e("../lib/oop"),i=e("./text").Mode,o=e("./json_highlight_rules").JsonHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,d=e("../worker/worker_client").WorkerClient,u=function(){this.HighlightRules=o,this.$outdent=new s,this.$behaviour=new l,this.foldingRules=new c};a.inherits(u,i),function(){this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);if("start"==e){t.match(/^.*[\{\(\[]\s*$/)&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new d(["ace"],n(1193),"JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/json"}.call(u.prototype),t.Mode=u})},function(e,t){e.exports.id="ace/mode/json_worker",e.exports.src='"no use strict";(function(window){function resolveModuleId(id,paths){for(var testPath=id,tail="";testPath;){var alias=paths[testPath];if("string"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,"/")+(tail||alias.main||alias.name);if(alias===!1)return"";var i=testPath.lastIndexOf("/");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:"error",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf("!")){var chunks=moduleName.split("!");return window.normalizeModule(parentId,chunks[0])+"!"+window.normalizeModule(parentId,chunks[1])}if("."==moduleName.charAt(0)){var base=parentId.split("/").slice(0,-1).join("/");for(moduleName=(base?base+"/":"")+moduleName;-1!==moduleName.indexOf(".")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,"").replace(/\\/\\.\\//,"/").replace(/[^\\/]+\\/\\.\\.\\//,"")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error("worker.js acequire() accepts only (parentId, id) as arguments");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log("unable to load "+id);var path=resolveModuleId(id,window.acequire.tlns);return".js"!=path.slice(-3)&&(path+=".js"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,"string"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),"function"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=["require","exports","module"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case"require":return req;case"exports":return module.exports;case"module":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in to
8pLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire("ace/lib/event_emitter").EventEmitter,oop=window.acequire("ace/lib/oop"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:"call",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:"event",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error("Unknown command:"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire("ace/lib/es5-shim"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}})
vendor: 38,548 bytes, line 8
8(this),ace.define("ace/lib/oop",["require","exports","module"],function(acequire,exports){"use strict";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define("ace/range",["require","exports","module"],function(acequire,exports){"use strict";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){"object"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){"object"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define("ace/apply_delta",["require","exports","module"],function(acequire,exports){"use strict";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||"";switch(delta.action){case"insert":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case"remove":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(acequire,exports){"use strict";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){"object"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?"unshift":"push"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),EventEmitter=acequire("./lib/event_emitter").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.column<point2.column;return point1.row<point2.row||point1.row==point2.row&&bColIsAfter}function $getTransformedPoint(delta,point,moveIfEqual){var deltaIsInsert="insert"==delta.action,deltaRowShift=(deltaIsInsert?1:-1)*(delta.end.row-delta.start.row),deltaColShift=(deltaIsInsert?1:-1)*(delta.end.column-delta.start.column),deltaStart=delta.start,deltaEnd=deltaIsInsert?deltaStart:delta.end;return $pointsInOrder(point,deltaStart,moveIfEqual)?{row:point.row,column:point.column}:$pointsInOrder(deltaEnd,point,!moveIfEqual)?{row:point.row+deltaRowShift,column:point.column+(point.row==deltaEnd.row?deltaColShift:0)}:{row:deltaStart.row,column:deltaStart.column}}oop.implement(this,EventEmitter),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(delta){if(!(delta.start.row==delta.end.row&&delta.start.row!=this.row||delta.start.row>this.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal("change",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),applyDelta=acequire("./apply_delta").applyDelta,EventEmitter=acequire("./lib/event_emitter").EventEmitter,Range=acequire("./range").Range,Anchor=acequire("./anchor").Anchor,Document=function(textOrLines){this.$lines=[""],0===textOrLines.length?this.$lines=[""]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==="aaa".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,"\\n").split("\\n")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:"\\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\\r\\n";case"unix":return"\\n";default:return this.$autoNewLine||"\\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return"\\r\\n"==text||"\\r"==text||"\\n"==text},this.getLine=function(row){return this.$lines[row]||""},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||"").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, [\'\', \'\']) instead."),this.insertMergedLines(position,["",""])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:"insert",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([""]),column=0):(lines=[""].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:"insert",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:"remove",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:"remove",lines:["",""]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert="insert"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal("change",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(""),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:"insert"==delta.action?"remove":"insert",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define("ace/lib/lang",["require","exports","module"],function(acequire,exports){"use strict";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split("").reverse().join("")},exports.stringRepeat=function(string,count){for(var result="";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,"")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,"")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&"object"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if("object"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if("[object Object]"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,"\\\\$1")},exports.escapeHTML=function(str){return str.replace(/&/g,"&").replace(/"/g,""").replace(/\'/g,"'").replace(/</g,"<")},exports.getMatchOffsets=function(string,regExp){var matches=[];return string.replace(regExp,function(str){matches.push({offset:arguments[arguments.length-2],length:str.length})}),matches},exports.deferredCall=function(fcn){var timer=null,callback=function(){timer=null,fcn()},deferred=function(timeout){return deferred.cancel(),timer=setTimeout(callback,timeout||0),deferred};return deferred.schedule=deferred,deferred.call=function(){return this.cancel(),fcn(),deferred},deferred.cancel=function(){return clearTimeout(timer),timer=null,deferred},deferred.isPending=function(){return timer},deferred},exports.delayedCall=function(fcn,defaultTimeout){var timer=null,callback=function(){timer=null,fcn()},_self=function(timeout){null==timer&&(timer=setTimeout(callback,timeout||defaultTimeout))};return _self.delay=function(timeout){timer&&clearTimeout(timer),timer=setTimeout(callback,timeout||defaultTimeout)},_self.schedule=_self,_self.call=function(){this.cancel(),fcn()},_self.cancel=function(){timer&&clearTimeout(timer),timer=null},_self.isPending=function(){return timer},_self}}),ace.define("ace/worker/mirror",["require","exports","module","ace/range","ace/document","ace/lib/lang"],function(acequire,exports){"use strict";acequire("../range").Range;var Document=acequire("../document").Document,lang=acequire("../lib/lang"),Mirror=exports.Mirror=function(sender){this.sender=sender;var doc=this.doc=new Document(""),deferredUpdate=this.deferredUpdate=lang.delayedCall(this.onUpdate.bind(this)),_self=this;sender.on("change",function(e){var data=e.data;if(data[0].start)doc.applyDeltas(data);else for(var i=0;data.length>i;i+=2){if(Array.isArray(data[i+1]))var d={action:"insert",start:data[i],lines:data[i+1]};else var d={action:"remove",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define("ace/mode/json/json_parse",["require","exports","module"],function(){"use strict";var at,ch,text,value,escapee={\'"\':\'"\',"\\\\":"\\\\","/":"/",b:"\\b",f:"\\f",n:"\\n",r:"\\r",t:"\t"},error=function(m){throw{name:"SyntaxError",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error("Expected \'"+c+"\' instead of \'"+ch+"\'"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string="";for("-"===ch&&(string="-",next("-"));ch>="0"&&"9">=ch;)string+=ch,next();if("."===ch)for(string+=".";next()&&ch>="0"&&"9">=ch;)string+=ch;if("e"===ch||"E"===ch)for(string+=ch,next(),("-"===ch||"+"===ch)&&(string+=ch,next());ch>="0"&&"9">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error("Bad number"),void 0):number},string=function(){var hex,i,uffff,string="";if(\'"\'===ch)for(;next();){if(\'"\'===ch)return next(),string;if("\\\\"===ch)if(next(),"u"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if("string"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error("Bad string")},white=function(){for(;ch&&" ">=ch;)next()},word=function(){switch(ch){case"t":return next("t"),next("r"),next("u"),next("e"),!0;case"f":return next("f"),next("a"),next("l"),next("s"),next("e"),!1;case"n":return next("n"),next("u"),next("l"),next("l"),null}error("Unexpected \'"+ch+"\'")},array=function(){var array=[];if("["===ch){if(next("["),white(),"]"===ch)return next("]"),array;for(;ch;){if(array.push(value()),white(),"]"===ch)return next("]"),array;next(","),white()}}error("Bad array")},object=function(){var key,object={};if("{"===ch){if(next("{"),white(),"}"===ch)return next("}"),object;for(;ch;){if(key=string(),white(),next(":"),Object.hasOwnProperty.call(object,key)&&error(\'Duplicate key "\'+key+\'"\'),object[key]=value(),white(),"}"===ch)return next("}"),object;next(","),white()}}error("Bad object")};return value=function(){switch(white(),ch){case"{":return object();case"[":return array();case\'"\':return string();case"-":return number();default:return ch>="0"&&"9">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=" ",result=value(),white(),ch&&error("Syntax error"),"function"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&"object"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({"":result},""):result}}),ace.define("ace/mode/json_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/json/json_parse"],function(acequire,exports){"use strict";var oop=acequire("../lib/oop"),Mirror=acequire("../worker/mirror").Mirror,parse=acequire("./json/json_parse"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:"error"})}this.sender.emit("annotate",errors)}}.call(JsonWorker.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,"sentinel",{}),"sentinel"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError("Function.prototype.bind called on incompatible "+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,"__defineGetter__"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,"XXX"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return"[object Array]"==_toString(obj)});var boxedString=Object("a"),splitString="a"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,thisp=arguments[1],i=-1,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=[],thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError("reduce of empty array with no initial value")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError("reduceRight of empty array with no initial value")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(object,property){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if("object"!=typeof prototype)throw new TypeError("typeof prototype["+typeof prototype+"] != \'object\'");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom="undefined"==typeof document||doesDefinePropertyWork(document.createElement("div"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR="Property description must be an object: ",ERR_NON_OBJECT_TARGET="Object.defineProperty called on non-object: ",ERR_ACCESSORS_NOT_SUPPORTED="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(object,property,descriptor){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if("object"!=typeof descriptor&&"function"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,"value"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,"get")&&defineGetter(object,property,descriptor.get),owns(descriptor,"set")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return"function"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name="";owns(object,name);)name+="?";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError("Object.keys called on a non-object");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws="\t\\n\v\\f\\r
8Â áá ââââââ
ââââââ¯âã\\u2028\\u2029\ufeff";if(!String.prototype.trim||ws.trim()){ws="["+ws+"]";var trimBeginRegexp=RegExp("^"+ws+ws+"*"),trimEndRegexp=RegExp(ws+ws+"*$");String.prototype.trim=function(){return(this+"").replace(trimBeginRegexp,"").replace(trimEndRegexp,"")}}var toObject=function(o){if(null==o)throw new TypeError("can\'t convert "+o+" to object");return Object(o)}});'},function(e,t){ace.define("ace/snippets/json",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=void 0,t.scope="json"})},function(e,t){!function(){var e=document,t=e.createElement("STYLE"),n="addEventListener"in e,r=function(t,r){n?e.addEventListener(t,r):e.attachEvent("on"+t,r)},a=function(e){t.styleSheet?t.styleSheet.cssText=e:t.innerHTML=e};e.getElementsByTagName("HEAD")[0].appendChild(t),r("mousedown",function(){a(":focus{outline:0 !important}::-moz-focus-inner{border:0;}")}),r("keydown",function(){a("")})}()},function(e,t,n){"use strict";var r=n(3),a=n.n(r),i=n(32),o=n.n(i),s=n(17),l=n.n(s),c=n(111),d=n.n(c),u=n(511),p=n(203),f=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),m=function(e){function t(t){var n=e.call(this,t)||this;return n.openColorPicker=n.openColorPicker.bind(n),n.closeColorPicker=n.closeColorPicker.bind(n),n.setPickerElem=n.setPickerElem.bind(n),n.onColorSelect=n.onColorSelect.bind(n),n}return f(t,e),t.prototype.setPickerElem=function(e){this.pickerElem=l()(e)},t.prototype.openColorPicker=function(){var e=a.a.createElement(u.a,{color:this.props.color,onColorSelect:this.onColorSelect}),t=document.createElement("div");o.a.render(e,t);var n=new d.a({target:this.pickerElem[0],content:t,position:"top center",classes:"drop-popover",openOn:"click",hoverCloseDelay:200,tetherOptions:{constraints:[{to:"scrollParent",attachment:"none both"}]}});n.on("close",this.closeColorPicker),this.colorPickerDrop=n,this.colorPickerDrop.open()},t.prototype.closeColorPicker=function(){var e=this;setTimeout(function(){e.colorPickerDrop&&e.colorPickerDrop.tether&&e.colorPickerDrop.destroy()},100)},t.prototype.onColorSelect=function(e){this.props.onChange(e)},t.prototype.render=function(){return a.a.createElement("div",{className:"sp-replacer sp-light",onClick:this.openColorPicker,ref:this.setPickerElem},a.a.createElement("div",{className:"sp-preview"},a.a.createElement("div",{className:"sp-preview-inner",style:{backgroundColor:this.props.color}})))},t}(a.a.Component);Object(p.a)("colorPicker",m,["color",["onChange",{watchDepth:"reference",wrapApply:!0}]])},function(e,t,n){"use strict";n.d(t,"a",function(){return s});var r=n(3),a=n.n(r),i=n(138),o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),s=function(e){function t(t){var n=e.call(this,t)||this;return n.paletteColors=i.g,n.onColorSelect=n.onColorSelect.bind(n),n}return o(t,e),t.prototype.onColorSelect=function(e){var t=this;return function(){t.props.onColorSelect(e)}},t.prototype.render=function(){var e=this,t=this.paletteColors.map(function(t){var n=t.toLowerCase()===e.props.color.toLowerCase()?"fa-circle-o":"fa-circle";return a.a.createElement("i",{key:t,className:"pointer fa "+n,style:{color:t},onClick:e.onColorSelect(t)}," ")});return a.a.createElement("div",{className:"graph-legend-popover"},a.a.createElement("p",{className:"m-b-0"},t))},t}(a.a.Component)},function(e,t,n){"use strict";n.d(t,"a",function(){return u});var r=n(3),a=n.n(r),i=n(4),o=n.n(i),s=n(17),l=n.n(s),c=n(1199),d=(n.n(c),this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}()),u=function(e){function t(t){var n=e.call(this,t)||this;return n.onSpectrumMove=n.onSpectrumMove.bind(n),n.setComponentElem=n.setComponentElem.bind(n),n}return d(t,e),t.prototype.setComponentElem=function(e){this.elem=l()(e)},t.prototype.onSpectrumMove=function(e){this.isMoving=!0,this.props.onColorSelect(e)},t.prototype.componentDidMount=function(){var e=o.a.assignIn({flat:!0,showAlpha:!0,showButtons:!1,color:this.props.color,appendTo:this.elem,move:this.onSpectrumMove},this.props.options);this.elem.spectrum(e),this.elem.spectrum("show"),this.elem.spectrum("set",this.props.color)},t.prototype.componentWillUpdate=function(e){this.isMoving||this.elem.spectrum("set",e.color)},t.prototype.componentDidUpdate=function(){this.isMoving&&(this.isMoving=!1)},t.prototype.componentWillUnmount=function(){this.elem.spectrum("destroy")},t.prototype.render=function(){return a.a.createElement("div",{className:"spectrum-container",ref:this.setComponentElem})},t}(a.a.Component)},function(e,t,n){var r,a,i;!function(o){"use strict";a=[n(17)],r=o,void 0!==(i="function"==typeof r?r.apply(t,a):r)&&(e.exports=i)}(function(e,t){"use strict";function n(t,n,r,a){for(var i=[],o=0;o<t.length;o++){var s=t[o];if(s){var l=tinycolor(s),c=l.toHsl().l<.5?"sp-thumb-el sp-thumb-dark":"sp-thumb-el sp-thumb-light";c+=tinycolor.equals(n,s)?" sp-thumb-active":"";var d=l.toString(a.preferredFormat||"rgb"),u=g?"background-color:"+l.toRgbString():"filter:"+l.toFilter();i.push('<span title="'+d+'" data-color="'+l.toRgbString()+'" class="'+c+'"><span class="sp-thumb-inner" style="'+u+';" /></span>')}else{i.push(e("<div />").append(e('<span data-color="" style="background-color:transparent;" class="sp-clear-display"></span>').attr("title",a.noColorSelectedText)).html())}}return"<div class='sp-cf "+r+"'>"+i.join("")+"</div>"}function r(){for(var e=0;e<m.length;e++)m[e]&&m[e].hide()}function a(t,n){var r=e.extend({},f,t);return r.callbacks={move:c(r.move,n),change:c(r.change,n),show:c(r.show,n),hide:c(r.hide,n),beforeShow:c(r.beforeShow,n)},r}function i(i,s){function c(){if(V.showPaletteOnly&&(V.showPalette=!0),De.text(V.showPaletteOnly?V.togglePaletteMoreText:V.togglePaletteLessText),V.palette){pe=V.palette.slice(0),fe=e.isArray(pe[0])?pe:[pe],me={};for(var t=0;t<fe.length;t++)for(var n=0;n<fe[t].length;n++){var r=tinycolor(fe[t][n]).toRgbString();me[r]=!0}}ke.toggleClass("sp-flat",W),ke.toggleClass("sp-input-disabled",!V.showInput),ke.toggleClass("sp-alpha-enabled",V.showAlpha),ke.toggleClass("sp-clear-enabled",Ke),ke.toggleClass("sp-buttons-disabled",!V.showButtons),ke.toggleClass("sp-palette-buttons-disabled",!V.togglePaletteOnly),ke.toggleClass("sp-palette-disabled",!V.showPalette),ke.toggleClass("sp-palette-only",V.showPaletteOnly),ke.toggleClass("sp-initial-disabled",!V.showInitial),ke.addClass(V.className).addClass(V.containerClassName),$()}function f(){if(Y&&window.localStorage){try{var t=window.localStorage[Y].split(",#");t.length>1&&(delete window.localStorage[Y],e.each(t,function(e,t){y(t)}))}catch(e){}try{he=window.localStorage[Y].split(";")}catch(e){}}}function y(t){if(G){var n=tinycolor(t).toRgbString();
8if(!me[n]&&-1===e.inArray(n,he))for(he.push(n);he.length>ge;)he.shift();if(Y&&window.localStorage)try{window.localStorage[Y]=he.join(";")}catch(e){}}}function w(){var e=[];if(V.showPalette)for(var t=0;t<he.length;t++){var n=tinycolor(he[t]).toRgbString();me[n]||e.push(he[t])}return e.reverse().slice(0,V.maxSelectionSize)}function x(){var t=L(),r=e.map(fe,function(e,r){return n(e,t,"sp-palette-row sp-palette-row-"+r,V)});f(),he&&r.push(n(w(),t,"sp-palette-row sp-palette-row-selection",V)),Re.html(r.join(""))}function k(){if(V.showInitial){var e=Ve,t=L();Le.html(n([e,t],t,"sp-palette-row-initial",V))}}function _(){(te<=0||ee<=0||re<=0)&&$(),Z=!0,ke.addClass(be),ve=null,we.trigger("dragstart.spectrum",[L()])}function E(){Z=!1,ke.removeClass(be),we.trigger("dragstop.spectrum",[L()])}function T(){var e=Ie.val();if(null!==e&&""!==e||!Ke){var t=tinycolor(e);t.isValid()?(R(t),F(!0)):Ie.addClass("sp-validation-error")}else R(null),F(!0)}function S(){J?O():C()}function C(){var t=e.Event("beforeShow.spectrum");if(J)return void $();we.trigger(t,[L()]),!1===K.beforeShow(L())||t.isDefaultPrevented()||(r(),J=!0,e(ye).bind("keydown.spectrum",A),e(ye).bind("click.spectrum",N),e(window).bind("resize.spectrum",Q),Be.addClass("sp-active"),ke.removeClass("sp-hidden"),$(),j(),Ve=L(),k(),K.show(Ve),we.trigger("show.spectrum",[Ve]))}function A(e){27===e.keyCode&&O()}function N(e){2!=e.button&&(Z||(Ye?F(!0):I(),O()))}function O(){J&&!W&&(J=!1,e(ye).unbind("keydown.spectrum",A),e(ye).unbind("click.spectrum",N),e(window).unbind("resize.spectrum",Q),Be.removeClass("sp-active"),ke.addClass("sp-hidden"),K.hide(L()),we.trigger("hide.spectrum",[L()]))}function I(){R(Ve,!0)}function R(e,t){if(tinycolor.equals(e,L()))return void j();var n,r;!e&&Ke?Xe=!0:(Xe=!1,n=tinycolor(e),r=n.toHsv(),le=r.h%360/360,ce=r.s,de=r.v,ue=r.a),j(),n&&n.isValid()&&!t&&(Ge=We||n.getFormat())}function L(e){return e=e||{},Ke&&Xe?null:tinycolor.fromRatio({h:le,s:ce,v:de,a:Math.round(100*ue)/100},{format:e.format||Ge})}function P(){return!Ie.hasClass("sp-validation-error")}function M(){j(),K.move(L()),we.trigger("move.spectrum",[L()])}function j(){Ie.removeClass("sp-validation-error"),D();var e=tinycolor.fromRatio({h:le,s:1,v:1});Ee.css("background-color",e.toHexString());var t=Ge;ue<1&&(0!==ue||"name"!==t)&&("hex"!==t&&"hex3"!==t&&"hex6"!==t&&"name"!==t||(t="rgb"));var n=L({format:t}),r="";if(ze.removeClass("sp-clear-display"),ze.css("background-color","transparent"),!n&&Ke)ze.addClass("sp-clear-display");else{var a=n.toHexString(),i=n.toRgbString();if(g||1===n.alpha?ze.css("background-color",i):(ze.css("background-color","transparent"),ze.css("filter",n.toFilter())),V.showAlpha){var o=n.toRgb();o.a=0;var s=tinycolor(o).toRgbString(),l="linear-gradient(left, "+s+", "+a+")";h?Ae.css("filter",tinycolor(s).toFilter({gradientType:1},a)):(Ae.css("background","-webkit-"+l),Ae.css("background","-moz-"+l),Ae.css("background","-ms-"+l),Ae.css("background","linear-gradient(to right, "+s+", "+a+")"))}r=n.toString(t)}V.showInput&&Ie.val(r),V.showPalette&&x(),k()}function D(){var e=ce,t=de;if(Ke&&Xe)Oe.hide(),Ce.hide(),Te.hide();else{Oe.show(),Ce.show(),Te.show();var n=e*ee,r=te-t*te;n=Math.max(-ne,Math.min(ee-ne,n-ne)),r=Math.max(-ne,Math.min(te-ne,r-ne)),Te.css({top:r+"px",left:n+"px"});var a=ue*ie;Oe.css({left:a-oe/2+"px"});var i=le*re;Ce.css({top:i-se+"px"})}}function F(e){var t=L(),n="",r=!tinycolor.equals(t,Ve);t&&(n=t.toString(Ge),y(t)),Fe&&we.val(n),e&&r&&(K.change(t),we.trigger("change",[t]))}function $(){ee=Ee.width(),te=Ee.height(),ne=Te.height(),ae=Se.width(),re=Se.height(),se=Ce.height(),ie=Ne.width(),oe=Oe.width(),W||(ke.css("position","absolute"),V.offset?ke.offset(V.offset):ke.offset(o(ke,Ue))),D(),V.showPalette&&x(),we.trigger("reflow.spectrum")}function q(){we.show(),Ue.unbind("click.spectrum touchstart.spectrum"),ke.remove(),Be.remove(),m[Qe.id]=null}function B(n,r){return n===t?e.extend({},V):r===t?V[n]:(V[n]=r,void c())}function U(){xe=!1,we.attr("disabled",!1),Ue.removeClass("sp-disabled")}function z(){O(),xe=!0,we.attr("disabled",!0),Ue.addClass("sp-disabled")}function H(e){V.offset=e,$()}var V=a(s,i),W=V.flat,G=V.showSelectionPalette,Y=V.localStorageKey,X=V.theme,K=V.callbacks,Q=u($,10),J=!1,Z=!1,ee=0,te=0,ne=0,re=0,ae=0,ie=0,oe=0,se=0,le=0,ce=0,de=0,ue=1,pe=[],fe=[],me={},he=V.selectionPalette.slice(0),ge=V.maxSelectionSize,be="sp-dragging",ve=null,ye=i.ownerDocument,we=(ye.body,e(i)),xe=!1,ke=e(v,ye).addClass(X),_e=ke.find(".sp-picker-container"),Ee=ke.find(".sp-color"),Te=ke.find(".sp-dragger"),Se=ke.find(".sp-hue"),Ce=ke.find(".sp-slider"),Ae=ke.find(".sp-alpha-inner"),Ne=ke.find(".sp-alpha"),Oe=ke.find(".sp-alpha-handle"),Ie=ke.find(".sp-input"),Re=ke.find(".sp-palette"),Le=ke.find(".sp-initial"),Pe=ke.find(".sp-cancel"),Me=ke.find(".sp-clear"),je=ke.find(".sp-choose"),De=ke.find(".sp-palette-toggle"),Fe=we.is("input"),$e=Fe&&"color"===we.attr("type")&&p(),qe=Fe&&!W,Be=qe?e(b).addClass(X).addClass(V.className).addClass(V.replacerClassName):e([]),Ue=qe?Be:we,ze=Be.find(".sp-preview-inner"),He=V.color||Fe&&we.val(),Ve=!1,We=V.preferredFormat,Ge=We,Ye=!V.showButtons||V.clickoutFiresChange,Xe=!He,Ke=V.allowEmpty&&!$e;!function(){function t(t){return t.data&&t.data.ignore?(R(e(t.target).closest(".sp-thumb-el").data("c
8olor")),M()):(R(e(t.target).closest(".sp-thumb-el").data("color")),M(),F(!0),V.hideAfterPaletteSelect&&O()),!1}if(h&&ke.find("*:not(input)").attr("unselectable","on"),c(),qe&&we.after(Be).hide(),Ke||Me.hide(),W)we.after(ke).hide();else{var n="parent"===V.appendTo?we.parent():e(V.appendTo);1!==n.length&&(n=e("body")),n.append(ke)}f(),Ue.bind("click.spectrum touchstart.spectrum",function(t){xe||S(),t.stopPropagation(),e(t.target).is("input")||t.preventDefault()}),(we.is(":disabled")||!0===V.disabled)&&z(),ke.click(l),Ie.change(T),Ie.bind("paste",function(){setTimeout(T,1)}),Ie.keydown(function(e){13==e.keyCode&&T()}),Pe.text(V.cancelText),Pe.bind("click.spectrum",function(e){e.stopPropagation(),e.preventDefault(),I(),O()}),Me.attr("title",V.clearText),Me.bind("click.spectrum",function(e){e.stopPropagation(),e.preventDefault(),Xe=!0,M(),W&&F(!0)}),je.text(V.chooseText),je.bind("click.spectrum",function(e){e.stopPropagation(),e.preventDefault(),h&&Ie.is(":focus")&&Ie.trigger("change"),P()&&(F(!0),O())}),De.text(V.showPaletteOnly?V.togglePaletteMoreText:V.togglePaletteLessText),De.bind("click.spectrum",function(e){e.stopPropagation(),e.preventDefault(),V.showPaletteOnly=!V.showPaletteOnly,V.showPaletteOnly||W||ke.css("left","-="+(_e.outerWidth(!0)+5)),c()}),d(Ne,function(e,t,n){ue=e/ie,Xe=!1,n.shiftKey&&(ue=Math.round(10*ue)/10),M()},_,E),d(Se,function(e,t){le=parseFloat(t/re),Xe=!1,V.showAlpha||(ue=1),M()},_,E),d(Ee,function(e,t,n){if(n.shiftKey){if(!ve){var r=ce*ee,a=te-de*te,i=Math.abs(e-r)>Math.abs(t-a);ve=i?"x":"y"}}else ve=null;var o=!ve||"x"===ve,s=!ve||"y"===ve;o&&(ce=parseFloat(e/ee)),s&&(de=parseFloat((te-t)/te)),Xe=!1,V.showAlpha||(ue=1),M()},_,E),He?(R(He),j(),Ge=We||tinycolor(He).format,y(He)):j(),W&&C();var r=h?"mousedown.spectrum":"click.spectrum touchstart.spectrum";Re.delegate(".sp-thumb-el",r,t),Le.delegate(".sp-thumb-el:nth-child(1)",r,{ignore:!0},t)}();var Qe={show:C,hide:O,toggle:S,reflow:$,option:B,enable:U,disable:z,offset:H,set:function(e){R(e),F()},get:L,destroy:q,container:ke};return Qe.id=m.push(Qe)-1,Qe}function o(t,n){var r=t.outerWidth(),a=t.outerHeight(),i=n.outerHeight(),o=t[0].ownerDocument,s=o.documentElement,l=s.clientWidth+e(o).scrollLeft(),c=s.clientHeight+e(o).scrollTop(),d=n.offset();return d.top+=i,d.left-=Math.min(d.left,d.left+r>l&&l>r?Math.abs(d.left+r-l):0),d.top-=Math.min(d.top,d.top+a>c&&c>a?Math.abs(a+i-0):0),d}function s(){}function l(e){e.stopPropagation()}function c(e,t){var n=Array.prototype.slice,r=n.call(arguments,2);return function(){return e.apply(t,r.concat(n.call(arguments)))}}function d(t,n,r,a){function i(e){e.stopPropagation&&e.stopPropagation(),e.preventDefault&&e.preventDefault(),e.returnValue=!1}function o(e){if(d){if(h&&c.documentMode<9&&!e.button)return l();var r=e.originalEvent&&e.originalEvent.touches&&e.originalEvent.touches[0],a=r&&r.pageX||e.pageX,o=r&&r.pageY||e.pageY,s=Math.max(0,Math.min(a-u.left,f)),g=Math.max(0,Math.min(o-u.top,p));m&&i(e),n.apply(t,[s,g,e])}}function s(n){(n.which?3==n.which:2==n.button)||d||!1!==r.apply(t,arguments)&&(d=!0,p=e(t).height(),f=e(t).width(),u=e(t).offset(),e(c).bind(g),e(c.body).addClass("sp-dragging"),o(n),i(n))}function l(){d&&(e(c).unbind(g),e(c.body).removeClass("sp-dragging"),setTimeout(function(){a.apply(t,arguments)},0)),d=!1}n=n||function(){},r=r||function(){},a=a||function(){};var c=document,d=!1,u={},p=0,f=0,m="ontouchstart"in window,g={};g.selectstart=i,g.dragstart=i,g["touchmove mousemove"]=o,g["touchend mouseup"]=l,e(t).bind("touchstart mousedown",s)}function u(e,t,n){var r;return function(){var a=this,i=arguments,o=function(){r=null,e.apply(a,i)};n&&clearTimeout(r),!n&&r||(r=setTimeout(o,t))}}function p(){return e.fn.spectrum.inputTypeColorSupport()}var f={beforeShow:s,move:s,change:s,show:s,hide:s,color:!1,flat:!1,showInput:!1,allowEmpty:!1,showButtons:!0,clickoutFiresChange:!0,showInitial:!1,showPalette:!1,showPaletteOnly:!1,hideAfterPaletteSelect:!1,togglePaletteOnly:!1,showSelectionPalette:!0,localStorageKey:!1,appendTo:"body",maxSelectionSize:7,cancelText:"cancel",chooseText:"choose",togglePaletteMoreText:"more",togglePaletteLessText:"less",clearText:"Clear Color Selection",noColorSelectedText:"No Color Selected",preferredFormat:!1,
8className:"",containerClassName:"",replacerClassName:"",showAlpha:!1,theme:"sp-light",palette:[["#ffffff","#000000","#ff0000","#ff8000","#ffff00","#008000","#0000ff","#4b0082","#9400d3"]],selectionPalette:[],disabled:!1,offset:null},m=[],h=!!/msie/i.exec(window.navigator.userAgent),g=function(){function e(e,t){return!!~(""+e).indexOf(t)}var t=document.createElement("div"),n=t.style;return n.cssText="background-color:rgba(0,0,0,.5)",e(n.backgroundColor,"rgba")||e(n.backgroundColor,"hsla")}(),b=["<div class='sp-replacer'>","<div class='sp-preview'><div class='sp-preview-inner'></div></div>","<div class='sp-dd'>▼</div>","</div>"].join(""),v=function(){var e="";if(h)for(var t=1;t<=6;t++)e+="<div class='sp-"+t+"'></div>";return["<div class='sp-container sp-hidden'>","<div class='sp-palette-container'>","<div class='sp-palette sp-thumb sp-cf'></div>","<div class='sp-palette-button-container sp-cf'>","<button type='button' class='sp-palette-toggle'></button>","</div>","</div>","<div class='sp-picker-container'>","<div class='sp-top sp-cf'>","<div class='sp-fill'></div>","<div class='sp-top-inner'>","<div class='sp-color'>","<div class='sp-sat'>","<div class='sp-val'>","<div class='sp-dragger'></div>","</div>","</div>","</div>","<div class='sp-clear sp-clear-display'>","</div>","<div class='sp-hue'>","<div class='sp-slider'></div>",e,"</div>","</div>","<div class='sp-alpha'><div class='sp-alpha-inner'><div class='sp-alpha-handle'></div></div></div>","</div>","<div class='sp-input-container sp-cf'>","<input class='sp-input' type='text' spellcheck='false' />","</div>","<div class='sp-initial sp-thumb sp-cf'></div>","<div class='sp-button-container sp-cf'>","<a class='sp-cancel' href='#'></a>","<button type='button' class='sp-choose'></button>","</div>","</div>","</div>"].join("")}();e.fn.spectrum=function(t,n){if("string"==typeof t){var r=this,a=Array.prototype.slice.call(arguments,1);return this.each(function(){var n=m[e(this).data("spectrum.id")];if(n){var i=n[t];if(!i)throw new Error("Spectrum: no such method: '"+t+"'");"get"==t?r=n.get():"container"==t?r=n.container:"option"==t?r=n.option.apply(n,a):"destroy"==t?(n.destroy(),e(this).removeData("spectrum.id")):i.apply(n,a)}}),r}return this.spectrum("destroy").each(function(){var n=e.extend({},t,e(this).data()),r=i(this,n);e(this).data("spectrum.id",r.id)})},e.fn.spectrum.load=!0,e.fn.spectrum.loadOpts={},e.fn.spectrum.draggable=d,e.fn.spectrum.defaults=f,e.fn.spectrum.inputTypeColorSupport=function t(){if(void 0===t._cachedResult){var n=e("<input type='color' value='!' />")[0];t._cachedResult="color"===n.type&&"!"!==n.value}return t._cachedResult},e.spectrum={},e.spectrum.localization={},e.spectrum.palettes={},e.fn.spectrum.processNativeColorInputs=function(){var t=e("input[type=color]");t.length&&!p()&&t.spectrum({preferredFormat:"hex6"})},function(){function e(e){var n={r:0,g:0,b:0},a=1,o=!1,s=!1;return"string"==typeof e&&(e=I(e)),"object"==typeof e&&(e.hasOwnProperty("r")&&e.hasOwnProperty("g")&&e.hasOwnProperty("b")?(n=t(e.r,e.g,e.b),o=!0,s="%"===String(e.r).substr(-1)?"prgb":"rgb"):e.hasOwnProperty("h")&&e.hasOwnProperty("s")&&e.hasOwnProperty("v")?(e.s=A(e.s),e.v=A(e.v),n=i(e.h,e.s,e.v),o=!0,s="hsv"):e.hasOwnProperty("h")&&e.hasOwnProperty("s")&&e.hasOwnProperty("l")&&(e.s=A(e.s),e.l=A(e.l),n=r(e.h,e.s,e.l),o=!0,s="hsl"),e.hasOwnProperty("a")&&(a=e.a)),a=x(a),{ok:o,format:e.format||s,r:D(255,F(n.r,0)),g:D(255,F(n.g,0)),b:D(255,F(n.b,0)),a:a}}function t(e,t,n){return{r:255*k(e,255),g:255*k(t,255),b:255*k(n,255)}}function n(e,t,n){e=k(e,255),t=k(t,255),n=k(n,255);var r,a,i=F(e,t,n),o=D(e,t,n),s=(i+o)/2;if(i==o)r=a=0;else{var l=i-o;switch(a=s>.5?l/(2-i-o):l/(i+o),i){case e:r=(t-n)/l+(t<n?6:0);break;case t:r=(n-e)/l+2;break;case n:r=(e-t)/l+4}r/=6}return{h:r,s:a,l:s}}function r(e,t,n){function r(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}var a,i,o;if(e=k(e,360),t=k(t,100),n=k(n,100),0===t)a=i=o=n;else{var s=n<.5?n*(1+t):n+t-n*t,l=2*n-s;a=r(l,s,e+1/3),i=r(l,s,e),o=r(l,s,e-1/3)}return{r:255*a,g:255*i,b:255*o}}function a(e,t,n){e=k(e,255),t=k(t,255),n=k(n,255);
vendor: 6,165 bytes, line 8
8var r,a,i=F(e,t,n),o=D(e,t,n),s=i,l=i-o;if(a=0===i?0:l/i,i==o)r=0;else{switch(i){case e:r=(t-n)/l+(t<n?6:0);break;case t:r=(n-e)/l+2;break;case n:r=(e-t)/l+4}r/=6}return{h:r,s:a,v:s}}function i(e,t,n){e=6*k(e,360),t=k(t,100),n=k(n,100);var r=M.floor(e),a=e-r,i=n*(1-t),o=n*(1-a*t),s=n*(1-(1-a)*t),l=r%6;return{r:255*[n,o,i,i,s,n][l],g:255*[s,n,n,o,i,i][l],b:255*[i,i,s,n,n,o][l]}}function o(e,t,n,r){var a=[C(j(e).toString(16)),C(j(t).toString(16)),C(j(n).toString(16))];return r&&a[0].charAt(0)==a[0].charAt(1)&&a[1].charAt(0)==a[1].charAt(1)&&a[2].charAt(0)==a[2].charAt(1)?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0):a.join("")}function s(e,t,n,r){return[C(N(r)),C(j(e).toString(16)),C(j(t).toString(16)),C(j(n).toString(16))].join("")}function l(e,t){t=0===t?0:t||10;var n=q(e).toHsl();return n.s-=t/100,n.s=_(n.s),q(n)}function c(e,t){t=0===t?0:t||10;var n=q(e).toHsl();return n.s+=t/100,n.s=_(n.s),q(n)}function d(e){return q(e).desaturate(100)}function u(e,t){t=0===t?0:t||10;var n=q(e).toHsl();return n.l+=t/100,n.l=_(n.l),q(n)}function p(e,t){t=0===t?0:t||10;var n=q(e).toRgb();return n.r=F(0,D(255,n.r-j(-t/100*255))),n.g=F(0,D(255,n.g-j(-t/100*255))),n.b=F(0,D(255,n.b-j(-t/100*255))),q(n)}function f(e,t){t=0===t?0:t||10;var n=q(e).toHsl();return n.l-=t/100,n.l=_(n.l),q(n)}function m(e,t){var n=q(e).toHsl(),r=(j(n.h)+t)%360;return n.h=r<0?360+r:r,q(n)}function h(e){var t=q(e).toHsl();return t.h=(t.h+180)%360,q(t)}function g(e){var t=q(e).toHsl(),n=t.h;return[q(e),q({h:(n+120)%360,s:t.s,l:t.l}),q({h:(n+240)%360,s:t.s,l:t.l})]}function b(e){var t=q(e).toHsl(),n=t.h;return[q(e),q({h:(n+90)%360,s:t.s,l:t.l}),q({h:(n+180)%360,s:t.s,l:t.l}),q({h:(n+270)%360,s:t.s,l:t.l})]}function v(e){var t=q(e).toHsl(),n=t.h;return[q(e),q({h:(n+72)%360,s:t.s,l:t.l}),q({h:(n+216)%360,s:t.s,l:t.l})]}function y(e,t,n){t=t||6,n=n||30;var r=q(e).toHsl(),a=360/n,i=[q(e)];for(r.h=(r.h-(a*t>>1)+720)%360;--t;)r.h=(r.h+a)%360,i.push(q(r));return i}function w(e,t){t=t||6;for(var n=q(e).toHsv(),r=n.h,a=n.s,i=n.v,o=[],s=1/t;t--;)o.push(q({h:r,s:a,v:i})),i=(i+s)%1;return o}function x(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function k(e,t){T(e)&&(e="100%");var n=S(e);return e=D(t,F(0,parseFloat(e))),n&&(e=parseInt(e*t,10)/100),M.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function _(e){return D(1,F(0,e))}function E(e){return parseInt(e,16)}function T(e){return"string"==typeof e&&-1!=e.indexOf(".")&&1===parseFloat(e)}function S(e){return"string"==typeof e&&-1!=e.indexOf("%")}function C(e){return 1==e.length?"0"+e:""+e}function A(e){return e<=1&&(e=100*e+"%"),e}function N(e){return Math.round(255*parseFloat(e)).toString(16)}function O(e){return E(e)/255}function I(e){e=e.replace(R,"").replace(L,"").toLowerCase();var t=!1;if(B[e])e=B[e],t=!0;else if("transparent"==e)return{r:0,g:0,b:0,a:0,format:"name"};var n;return(n=z.rgb.exec(e))?{r:n[1],g:n[2],b:n[3]}:(n=z.rgba.exec(e))?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=z.hsl.exec(e))?{h:n[1],s:n[2],l:n[3]}:(n=z.hsla.exec(e))?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=z.hsv.exec(e))?{h:n[1],s:n[2],v:n[3]}:(n=z.hsva.exec(e))?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=z.hex8.exec(e))?{a:O(n[1]),r:E(n[2]),g:E(n[3]),b:E(n[4]),format:t?"name":"hex8"}:(n=z.hex6.exec(e))?{r:E(n[1]),g:E(n[2]),b:E(n[3]),format:t?"name":"hex"}:!!(n=z.hex3.exec(e))&&{r:E(n[1]+""+n[1]),g:E(n[2]+""+n[2]),b:E(n[3]+""+n[3]),format:t?"name":"hex"}}var R=/^[\s,#]+/,L=/\s+$/,P=0,M=Math,j=M.round,D=M.min,F=M.max,$=M.random,q=function(t,n){if(t=t||"",n=n||{},t instanceof q)return t;if(!(this instanceof q))return new q(t,n);var r=e(t);this._originalInput=t,this._r=r.r,this._g=r.g,this._b=r.b,this._a=r.a,this._roundA=j(100*this._a)/100,this._format=n.format||r.format,this._gradientType=n.gradientType,this._r<1&&(this._r=j(this._r)),this._g<1&&(this._g=j(this._g)),this._b<1&&(this._b=j(this._b)),this._ok=r.ok,this._tc_id=P++};q.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},setAlpha:function(e){return this._a=x(e),this._roundA=j(100*this._a)/100,this},toHsv:function(){var e=a(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}},toHsvString:function(){var e=a(this._r,this._g,this._b),t=j(360*e.h),n=j(100*e.s),r=j(100*e.v);return 1==this._a?"hsv("+t+", "+n+"%, "+r+"%)":"hsva("+t+", "+n+"%, "+r+"%, "+this._roundA+")"},toHsl:function(){var e=n(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}},toHslString:function(){var e=n(this._r,this._g,this._b),t=j(360*e.h),r=j(100*e.s),a=j(100*e.l);return 1==this._a?"hsl("+t+", "+r+"%, "+a+"%)":"hsla("+t+", "+r+"%, "+a+"%, "+this._roundA+")"},toHex:function(e){return o(this._r,this._g,this._b,e)},toHexString:function(e){return"#"+this.toHex(e)},toHex8:function(){return s(this._r,this._g,this._b,this._a)},toHex8String:function(){return"#"+this.toHex8()},toRgb:function(){return{r:j(this._r),g:j(this._g),b:j(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+j(this._r)+", "+j(this._g)+", "+j(this._b)+")":"rgba("+j(this._r)+", "+j(this._g)+", "+j(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:j(100*k(this._r,255))+"%",g:j(100*k(this._g,255))+"%",b:j(100*k(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+j(100*k(this._r,255))+"%, "+j(100*k(this._g,255))+"%, "+j(100*k(this._b,255))+"%)":"rgba("+j(100*k(this._r,255))+"%, "+j(100*k(this._g,255))+"%, "+j(100*k(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(U[o(this._r,this._g,this._b,!0)]||!1)},toFilter:function(e){var t="#"+s(this._r,this._g,this._b,this._a),n=t,r=this._gradientType?"GradientType = 1, ":"";if(e){n=q(e).toHex8String()}return"progid:DXImageTransform.Microsoft.gradient("+r+"startColorstr="+t+",endColorstr="+n+")"},toString:function(e){var t=!!e;e=e||this._format;var n=!1,r=this._a<1&&this._a>=0;return t||!r||"hex"!==e&&"hex6"!==e&&"hex3"!==e&&"name"!==e?("rgb"
vendor: 3,944 bytes, line 8
8===e&&(n=this.toRgbString()),"prgb"===e&&(n=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(n=this.toHexString()),"hex3"===e&&(n=this.toHexString(!0)),"hex8"===e&&(n=this.toHex8String()),"name"===e&&(n=this.toName()),"hsl"===e&&(n=this.toHslString()),"hsv"===e&&(n=this.toHsvString()),n||this.toHexString()):"name"===e&&0===this._a?this.toName():this.toRgbString()},_applyModification:function(e,t){var n=e.apply(null,[this].concat([].slice.call(t)));return this._r=n._r,this._g=n._g,this._b=n._b,this.setAlpha(n._a),this},lighten:function(){return this._applyModification(u,arguments)},brighten:function(){return this._applyModification(p,arguments)},darken:function(){return this._applyModification(f,arguments)},desaturate:function(){return this._applyModification(l,arguments)},saturate:function(){return this._applyModification(c,arguments)},greyscale:function(){return this._applyModification(d,arguments)},spin:function(){return this._applyModification(m,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(y,arguments)},complement:function(){return this._applyCombination(h,arguments)},monochromatic:function(){return this._applyCombination(w,arguments)},splitcomplement:function(){return this._applyCombination(v,arguments)},triad:function(){return this._applyCombination(g,arguments)},tetrad:function(){return this._applyCombination(b,arguments)}},q.fromRatio=function(e,t){if("object"==typeof e){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]="a"===r?e[r]:A(e[r]));e=n}return q(e,t)},q.equals=function(e,t){return!(!e||!t)&&q(e).toRgbString()==q(t).toRgbString()},q.random=function(){return q.fromRatio({r:$(),g:$(),b:$()})},q.mix=function(e,t,n){n=0===n?0:n||50;var r,a=q(e).toRgb(),i=q(t).toRgb(),o=n/100,s=2*o-1,l=i.a-a.a;r=s*l==-1?s:(s+l)/(1+s*l),r=(r+1)/2;var c=1-r,d={r:i.r*r+a.r*c,g:i.g*r+a.g*c,b:i.b*r+a.b*c,a:i.a*o+a.a*(1-o)};return q(d)},q.readability=function(e,t){var n=q(e),r=q(t),a=n.toRgb(),i=r.toRgb(),o=n.getBrightness(),s=r.getBrightness(),l=Math.max(a.r,i.r)-Math.min(a.r,i.r)+Math.max(a.g,i.g)-Math.min(a.g,i.g)+Math.max(a.b,i.b)-Math.min(a.b,i.b);return{brightness:Math.abs(o-s),color:l}},q.isReadable=function(e,t){var n=q.readability(e,t);return n.brightness>125&&n.color>500},q.mostReadable=function(e,t){for(var n=null,r=0,a=!1,i=0;i<t.length;i++){var o=q.readability(e,t[i]),s=o.brightness>125&&o.color>500,l=o.brightness/125*3+o.color/500;(s&&!a||s&&a&&l>r||!s&&!a&&l>r)&&(a=s,r=l,n=q(t[i]))}return n};var B=q.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee9
80",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},U=q.hexNames=function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t}(B),z=function(){var e="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)",t="[\\s|\\(]+("+e+")[,|\\s]+("+e+")[,|\\s]+("+e+")\\s*\\)?",n="[\\s|\\(]+("+e+")[,|\\s]+("+e+")[,|\\s]+("+e+")[,|\\s]+("+e+")\\s*\\)?";return{rgb:new RegExp("rgb"+t),rgba:new RegExp("rgba"+n),hsl:new RegExp("hsl"+t),hsla:new RegExp("hsla"+n),hsv:new RegExp("hsv"+t),hsva:new RegExp("hsva"
8+n),hex3:/^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex8:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();window.tinycolor=q}(),e(function(){e.fn.spectrum.load&&e.fn.spectrum.processNativeColorInputs()})})},function(e,t,n){"use strict";var r=n(3),a=n.n(r),i=n(511),o=n(203),s=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),l=function(e){function t(t){var n=e.call(this,t)||this;return n.onColorChange=n.onColorChange.bind(n),n.onToggleAxis=n.onToggleAxis.bind(n),n}return s(t,e),t.prototype.onColorChange=function(e){this.props.onColorChange(e)},t.prototype.onToggleAxis=function(){this.props.onToggleAxis()},t.prototype.renderAxisSelection=function(){var e=1===this.props.series.yaxis?"btn-success":"btn-inverse",t=2===this.props.series.yaxis?"btn-success":"btn-inverse";return a.a.createElement("div",{className:"p-b-1"},a.a.createElement("label",{className:"small p-r-1"},"Y Axis:"),a.a.createElement("button",{onClick:this.onToggleAxis,className:"btn btn-small "+e},"Left"),a.a.createElement("button",{onClick:this.onToggleAxis,className:"btn btn-small "+t},"Right"))},t.prototype.render=function(){return a.a.createElement("div",{className:"graph-legend-popover"},this.props.series.yaxis&&this.renderAxisSelection(),a.a.createElement(i.a,{color:this.props.series.color,onColorSelect:this.onColorChange}))},t}(a.a.Component);Object(o.a)("seriesColorPicker",l,["series","onColorChange","onToggleAxis"])},function(e,t,n){"use strict";function r(){return{restrict:"E",require:"ngModel",scope:!0,replace:!0,template:'<color-picker color="ngModel.$viewValue" onChange="onColorChange"></color-picker>',link:function(e,t,n,r){e.ngModel=r,e.onColorChange=function(e){r.$setViewValue(e)}}}}n(2).a.directive("spectrumPicker",r)},function(e,t,n){"use strict";var r=n(4),a=n.n(r),i=n(2),o=n(200),s=n(77),l=n(101),c=n(239),d=function(){function e(e,t,n){this.backendSrv=e,this.$q=t,this.$routeParams=n,this.recentIsOpen=s.a.getBool("search.sections.recent",!0),this.starredIsOpen=s.a.getBool("search.sections.starred",!0)}return e.$inject=["backendSrv","$q","$routeParams"],e.prototype.getRecentDashboards=function(e){var t=this;return this.queryForRecentDashboards().then(function(n){n.length>0&&(e.recent={title:"Recent",icon:"fa fa-clock-o",score:-1,removable:!0,expanded:t.recentIsOpen,toggle:t.toggleRecent.bind(t),items:n})})},e.prototype.queryForRecentDashboards=function(){var e=this,t=a.a.take(o.a.getDashboardOpened(),5);return 0===t.length?Promise.resolve([]):this.backendSrv.search({dashboardIds:t}).then(function(n){return t.map(function(e){return a.a.find(n,{id:e})}).filter(function(e){return e&&!e.isStarred}).map(function(t){return e.experimentId&&(t.url="/e/"+e.experimentId+t.url),t})})},e.prototype.toggleRecent=function(e){return this.recentIsOpen=e.expanded=!e.expanded,s.a.set("search.sections.recent",this.recentIsOpen),!e.expanded||e.items.length?Promise.resolve(e):this.queryForRecentDashboards().then(function(t){return e.items=t,Promise.resolve(e)})},e.prototype.toggleStarred=function(e){return this.starredIsOpen=e.expanded=!e.expanded,s.a.set("search.sections.starred",this.starredIsOpen),Promise.resolve(e)},e.prototype.getStarred=function(e){var t=this;return l.a.isSignedIn?this.backendSrv.search({starred:!0,limit:5}).then(function(n){n.length>0&&(e.starred={title:"Starred",icon:"fa fa-star-o",score:-2,expanded:t.starredIsOpen,toggle:t.toggleStarred.bind(t),items:n})}):Promise.resolve()},e.prototype.search=function(e){var t=this;this.experimentId=e.experimentId,delete e.experimentId;var n={},r=[],i=a.a.clone(e),o=e.query||e.tag&&e.tag.length>0||e.starred||e.folderIds&&e.folderIds.length>0;return e.skipRecent||o||r.push(this.getRecentDashboards(n)),e.skipStarred||o||r.push(this.getStarred(n)),i.folderIds=i.folderIds||[],o||(i.folderIds=[0]),r.push(this.backendSrv.search(i).then(function(e){return t.handleSearchResult(n,e)})),this.$q.all(r).then(function(){return a.a.sortBy(a.a.values(n),"score")})},e.prototype.handleSearchResult=function(e,t){if(0===t.length)return e;for(var n=0,r=t;n<r.length;n++){var i=r[n];"dash-folder"===i.type&&(e[i.id]={id:i.id,uid:i.uid,title:i.title,expanded:!1,items:[],toggle:this.toggleFolder.bind(this),url:i.url,icon:"fa fa-folder",score:a.a.keys(e).length})}for(var o=0,s=t;o<s.length;o++){var i=s[o];
8if("dash-folder"!==i.type){if(this.experimentId)i.url="/e/"+this.experimentId+i.url;else{var l=this.$routeParams.experimentId;if(!l){var d=c.a.getExperimentOpened();d.length>0&&(l=d[0])}l&&(i.url="/e/"+l+i.url)}var u=e[i.folderId||0];u||(u=i.folderId?{id:i.folderId,uid:i.folderUid,title:i.folderTitle,url:i.folderUrl,items:[],icon:"fa fa-folder-open",toggle:this.toggleFolder.bind(this),score:a.a.keys(e).length}:{id:0,title:"General",items:[],icon:"fa fa-folder-open",toggle:this.toggleFolder.bind(this),score:a.a.keys(e).length},e[i.folderId||0]=u),u.expanded=!0,u.items.push(i)}}},e.prototype.toggleFolder=function(e){if(e.expanded=!e.expanded,e.icon=e.expanded?"fa fa-folder-open":"fa fa-folder",e.items.length)return Promise.resolve(e);var t={folderIds:[e.id]};return this.backendSrv.search(t).then(function(t){return e.items=t,Promise.resolve(e)})},e.prototype.getDashboardTags=function(){return this.backendSrv.get("/api/dashboards/tags")},e}();i.a.service("searchSrv",d)},function(e,t,n){"use strict";function r(e,t){if(v.a.isFunction(e))return e;if(!e)throw new Error("ReactComponent name attribute must be specified");var n;try{n=t.get(e)}catch(e){}if(!n)try{n=e.split(".").reduce(function(e,t){return e[t]},window)}catch(e){}if(!n)throw Error("Cannot find react component "+e);return n}function a(e,t){if(e.wrappedInApply)return e;var n=function(){var n=arguments,r=t.$root.$$phase;return"$apply"===r||"$digest"===r?e.apply(null,n):t.$apply(function(){return e.apply(null,n)})};return n.wrappedInApply=!0,n}function i(e,t,n){return Object.keys(e||{}).reduce(function(r,i){var o=e[i],s=(n||{})[i]||{};return r[i]=v.a.isFunction(o)&&!1!==s.wrapApply?a(o,t):o,r},{})}function o(e,t,n,r){var a=v.a.isFunction(t.$watchCollection),i=v.a.isFunction(t.$watchGroup),o=[];n.forEach(function(n){var s=d(n),l=p(e,n);"collection"===l&&a?t.$watchCollection(s,r):"reference"===l&&i?o.push(s):"one-time"===l||t.$watch(s,r,"reference"!==l)}),"one-time"===e&&r(),o.length&&t.$watchGroup(o,r)}function s(e,t,n,r){n.$evalAsync(function(){g.a.render(m.a.createElement(e,t),r[0])})}function l(e){return Array.isArray(e)?e[0]:e}function c(e){return Array.isArray(e)?e[1]:{}}function d(e){return Array.isArray(e)?e[0]:e}function u(e,t){return e[Object.keys(e).filter(function(e){return e.toLowerCase()===t.toLowerCase()})[0]]}function p(e,t){return Array.isArray(t)&&v.a.isObject(t[1])&&t[1].watchDepth||e}var f=n(3),m=n.n(f),h=n(32),g=n.n(h),b=n(27),v=n.n(b),y=function(e){return{restrict:"E",replace:!0,link:function(t,n,a){var l=r(a.name,e),c=function(){var e=t.$eval(a.props),r=i(e,t);s(l,r,t,n)};a.props?o(a.watchDepth,t,[a.props],c):c(),t.$on("$destroy",function(){a.onScopeDestroy?t.$eval(a.onScopeDestroy,{unmountComponent:g.a.unmountComponentAtNode.bind(this,n[0])}):g.a.unmountComponentAtNode(n[0])})}}},w=function(e){return function(t,n,a,d){var p={restrict:"E",replace:!0,link:function(a,p,f){var m=r(t,e);n=n||Object.keys(m.propTypes||{});var h=function(){var e={},t={};n.forEach(function(n){var r=l(n);e[r]=a.$eval(u(f,r)),t[r]=c(n)}),e=i(e,a,t),e=v.a.extend({},e,d),s(m,e,a,p)},b=n.map(function(e){return Array.isArray(e)?[f[l(e)],c(e)]:f[e]});n.length?o(f.watchDepth,a,b,h):h(),a.$on("$destroy",function(){f.onScopeDestroy?a.$eval(f.onScopeDestroy,{unmountComponent:g.a.unmountComponentAtNode.bind(this,p[0])}):g.a.unmountComponentAtNode(p[0])})}};return v.a.extend(p,a)}},x=v.a.module("react",[]);x.directive("reactComponent",["$injector",y]),x.factory("reactDirective",["$injector",w])},function(e,t,n){"use strict";function r(e,t,n,r,a){return{restrict:"E",controller:b,link:function(t,a){function i(){m&&c.hasClass("page-dashboard")&&(new Date).getTime()-p>h&&(m=!1,c.addClass("user-activity-low"),s&&(b=!0,c.removeClass("sidemenu-open"),n(function(){r.$broadcast("render")},100)))}function o(){p=(new Date).getTime(),m||(m=!0,c.removeClass("user-activity-low"),b&&(b=!1,c.addClass("sidemenu-open"),u.a.emit("toggle-inactive-mode"),n(function(){r.$broadcast("render")},100)))}var s,c=l()("body");l.a.fn.modal.Constructor.prototype.enforceFocus=function(){},s=t.contextSrv.sidemenu,c.toggleClass("sidemenu-open",s),u.a.on("dashboard-initialized",function(e){var t=e.templating.list;if(t=t.filter(function(e){return"experiment_id"===e.name}),t.length>0&&t[0].current.value){var n=parseInt(t[0].current.value);g.a.addExperimentImpression(n)}}),u.a.on("toggle-sidemenu",function(){s=t.contextSrv.sidemenu,c.toggleClass("sidemenu-open")}),u.a.on("toggle-sidemenu-mobile",function(){c.toggleClass("sidemenu-open--xs")}),u.a.on("toggle-sidemenu-hidden",function(){c.toggleClass("sidemenu-hidden")}),t.$watch(function(){return e.isPlaying},function(e){a.toggleClass("playlist-active",!0===e)}),-1!==document.cookie.indexOf("renderKey")&&c.addClass("body--phantomjs");var d;t.$on("$routeChangeSuccess",function(e,t){d&&c.removeClass(d),t.$$route&&(d=t.$$route.pageClass)&&c.addClass(d),c.removeClass("sidemenu-open--xs"),l()("#tooltip, .tooltip").remove(),t.params.kiosk&&u.a.emit
8("toggle-kiosk-mode"),t.params.inactive&&(c.addClass("user-activity-low"),c.addClass("sidemenu-open"));for(var n=0,r=f.a.drops;n<r.length;n++){r[n].destroy()}}),u.a.on("toggle-kiosk-mode",function(){c.toggleClass("page-kiosk-mode")});var p=(new Date).getTime(),m=!0,h=31536e8,b=!1;c.mousemove(o),c.keydown(o),document.addEventListener("wheel",o,{capture:!0,passive:!0}),document.addEventListener("visibilitychange",o),setInterval(i,2e3),u.a.on("toggle-view-mode",function(){p=0,i()}),c.click(function(n){var r=l()(n.target);if(0!==r.parents().length){var i=r.closest("[data-click-hide]");if(i.length){var o=i.parent();i.detach(),setTimeout(function(){o.append(i)},100)}0===r.parents(".navbar-buttons--playlist").length&&e.stop(),c.find(".search-container").length>0&&0===r.parents(".search-results-container, .search-field-wrapper").length&&t.$apply(function(){t.appEvent("hide-dash-search")});var s=a.find(".popover");s.length>0&&0===r.parents(".graph-legend").length&&s.hide()}})}}}r.$inject=["playlistSrv","contextSrv","$timeout","$rootScope","$location"];var a=n(23),i=n(4),o=n.n(i),s=n(17),l=n.n(s),c=n(2),d=n(512),u=n(22),p=n(111),f=n.n(p),m=n(112),h=n(138),g=n(239),b=function(){function e(e,t,n,r,i,s,l,c,p){Object(m.a)({backendSrv:c,datasourceSrv:p}),e.init=function(){e.contextSrv=s,e.appSubUrl=a.a.appSubUrl,e._=o.a,d.a.init(a.a,r),t.init(),n.init(),l.init(),e.dashAlerts=t},r.colors=h.f,e.initDashboard=function(t,n){e.appEvent("dashboard-fetch-end",t),i("DashboardCtrl",{$scope:n}).init(t)},r.onAppEvent=function(e,t,n){var a=r.$on(e,t),i=this;1!==i.$id||n||console.log("warning rootScope onAppEvent called without localscope"),n&&(i=n),i.$on("$destroy",a)},r.appEvent=function(e,t){r.$emit(e,t),u.a.emit(e,t)},e.init()}return e.$inject=["$scope","alertSrv","utilSrv","$rootScope","$controller","contextSrv","bridgeSrv","backendSrv","datasourceSrv"],e}();c.a.directive("grafanaApp",r)},function(e,t,n){"use strict";n.d(t,"a",function(){return u});var r=n(28),a=n(1208),i=n(1211),o=n(1213),s=n(1215),l=n(1217),c=n(1219),d=n(121),u=r.types.model({search:r.types.optional(a.a,{sections:[]}),serverStats:r.types.optional(i.a,{stats:[]}),nav:r.types.optional(o.a,{}),alertList:r.types.optional(s.a,{rules:[]}),permissions:r.types.optional(d.a,{fetching:!1,items:[]}),view:r.types.optional(l.a,{path:"",query:{},routeParams:{}}),folder:r.types.optional(c.a,{})})},,,function(e,t,n){"use strict";n.d(t,"a",function(){return i});var r=n(28),a=n(1209),i=r.types.model("SearchStore",{sections:r.types.array(a.a)}).actions(function(e){return{query:function(){for(var t=0;t<100;t++)e.sections.push(a.a.create({id:"starred"+t,title:"starred",icon:"fa fa-fw fa-star-o",expanded:!1,items:[]}))}}})},function(e,t,n){"use strict";n.d(t,"a",function(){return i});var r=n(28),a=n(1210),i=r.types.model("SearchResultSection",{id:r.types.identifier(),title:r.types.string,icon:r.types.string,expanded:r.types.boolean,items:r.types.array(a.a)}).actions(function(e){return{toggle:function(){e.expanded=!e.expanded;for(var t=0;t<100;t++)e.items.push(a.a.create({id:t,title:"Dashboard "+e.items.length,icon:"gicon gicon-dashboard",url:"asd"}))}}})},function(e,t,n){"use strict";n.d(t,"a",function(){return a});var r=n(28),a=r.types.model("ResultItem",{id:r.types.identifier(r.types.number),folderId:r.types.optional(r.types.number,0),title:r.types.string,url:r.types.string,icon:r.types.string,folderTitle:r.types.optional(r.types.string,"")})},function(e,t,n){"use strict";n.d(t,"a",function(){return o});var r=n(28),a=n(1212),i=this&&this.__generator||function(e,t){function n(e){return function(t){return r([e,t])}}function r(n){if(a)throw new TypeError("Generator is already executing.");for(;l;)try{if(a=1,i&&(o=2&n[0]?i.return:n[0]?i.throw||((o=i.return)&&o.call(i),0):i.next)&&!(o=o.call(i,n[1])).done)return o;switch(i=0,o&&(n=[2&n[0],o.value]),n[0]){case 0:case 1:o=n;break;case 4:return l.label++,{value:n[1],done:!1};case 5:l.label++,i=n[1],n=[0];continue;case 7:n=l.ops.pop(),l.trys.pop();continue;default:if(o=l.trys,!(o=o.length>0&&o[o.length-1])&&(6===n[0]||2===n[0])){l=0;continue}if(3===n[0]&&(!o||n[1]>o[0]&&n[1]<o[3])){l.label=n[1];break}if(6===n[0]&&l.label<o[1]){l.label=o[1],o=n;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(n);break}o[2]&&l.ops.pop(),l.trys.pop();continue}n=t.call(e,l)}catch(e){n=[6,e],i=0}finally{a=o=0}if(5&n[0])throw n[1];return{value:n[0]?n[1]:void 0,done:!0}}var a,i,o,s,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return s={next:n(0),throw:n(1),return:n(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s},o=r.types.model("ServerStatsStore",{stats:r.types.array(a.a),error:r.types.optional(r.types.string,"")}).actions(function(e){return{load:Object(r.flow)(function(){var t,n;return i(this,function(i){switch(i.label){case 0:return t=Object(r.getEnv)(e).backendSrv,[4,t.get("/api/admin/stats")];case 1:return n=i.sent(),e.stats.clear(),e.stats.push(a.a.create({name:"Total dashboards",value:n.dashboards})),e.stats.push(a.a.create({name:"Total users",value:n.users})),e.stats.push(a.a.create({name:"Active users (seen last 30 days)",value:n.activeUsers})),e.stats.push(a.a.create({name:"Total orgs",value:n.orgs})),e.stats.push(a.a.create({name:"Total playlists",value:n.playlists})),e.stats.push(a.a.create({name:"Total snapshots",value:n.snapshots})),e.stats.push(a.a.create({name:"Total dashboard tags",value:n.tags})),e.stats.push(a.a.create({name:"Total starred dashboards",value:n.stars})),e.stats.push(a.a.create({name:"Total alerts",value:n.alerts})),[2]}})})}})},function(e,t,n){"use strict";n.d(t,"a",function(){return a});var r=n(28),a=r.types.model("ServerStat",{name:r.types.string,value:r.types.optional(r.types.number,0)})},function(e,t,n){"use strict";n.d(t,"a",function(){return s});var r=n(4),a=n.n(r),i=n(28),o=n(1214),s=i.types.model("NavStore",{main:i.types.maybe(o.a),node:i.types.maybe(o.a)}).actions(function(e){return{load:function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];for(var r,a,s=Object(i.getEnv)(e).navTree,l=[],c=0,d=t;c<d.length;c++){var u=d[c];!function(e){if(!(a=s.find(function(t){return t.id===e})))throw new Error("NavItem with id "+e+" not found");s=a.children,l.push(a)}(u)}if(r=l[l.length-2],r.children)for(var p=0,f=r.children;p<f.length;p++){var m=f[p];m.active=!1,m.url===a.url&&(m.active=!0)}e.main=o.a.create(r),e.node=o.a.create(a)},initFolderNav:function(t,n){var r={icon:"fa fa-folder-open",id:"manage-folder",subTitle:"Manage folder dashboards & permissions",url:"",text:t.title,breadcrumbs:[{title:"Dashboards",url:"dashboards"}],children:[{active:"manage-folder-dashboards"===n,icon:"fa fa-fw fa-th-large",id:"manage-folder-dashboards",text:"Dashboards",url:t.url},{active:"manage-folder-permissions"===n,icon:"fa fa-fw fa-lock",id:"manage-folder-permissions",text:"Permissions",url:t.url+"/permissions"},{active:"manage-folder-settings"===n,icon:"fa fa-fw fa-cog",id:"manage-folder-settings",text:"Settings",url:t.url+"/settings"}]};e.main=o.a.create(r)},initDatasourceEditNav:function(t,n,r){var i="New",s="Type: "+n.name;t.id&&(i=t.name);var l={img:n.info.logos.large,id:"ds-edit-"+n.id,subTitle:s,url:"",text:i,breadcrumbs:[{title:"Data Sources",url:"datasources"}],children:[{active:"datasource-settings"===r,icon:"fa fa-fw fa-sliders",id:"datasource-settings",text:"Settings",url:"datasources/edit/"+t.id}]};void 0!==a.a.find(n.includes,{type:"dashboard"})&&t.id&&l.children.push({active:"datasource-dashboards"===r,icon:"fa fa-fw fa-th-large",id:"datasource-dashboards",text:"Dashboards",url:"datasources/edit/"+t.id+"/dashboards"}),e.main=o.a.create(l)}}})},function(e,t,n){"use strict";n.d(t,"a",function(){return a});var r=n(28),a=r.types.model("NavItem",{id:r.types.identifier(r.types.string),text:r.types.string,url:r.types.optional(r.types.string,""),subTitle:r.types.optional(r.types.string,""),icon:r.types.optional(r.types.string,""),img:r.types.optional(r.types.string,""),active:r.types.optional(r.types.boolean,!1),breadcrumbs:r.types.optional(r.types.array(r.types.late(function(){return i})),[]),children:r.types.optional(r.types.array(r.types.late(function(){return a})),[])}),i=r.types.model("Breadcrumb",{title:r.types.string,url:r.types.string})},function(e,t,n){"use strict";n.d(t,"a",function(){return s});var r=n(28),a=n(1216),i=n(514),o=this&&this.__generator||function(e,t){function n(e){return function(t){return r([e,t])}}function r(n){if(a)throw new TypeError("Generator is already executing.");for(;l;)try{if(a=1,i&&(o=2&n[0]?i.return:n[0]?i.throw||((o=i.return)&&o.call(i),0):i.next)&&!(o=o.call(i,n[1])).done)return o;switch(i=0,o&&(n=[2&n[0],o.value]),n[0]){case 0:case 1:o=n;break;case 4:return l.label++,{value:n[1],done:!1};case 5:l.label++,i=n[1],n=[0];continue;case 7:n=l.ops.pop(),l.trys.pop();continue;default:if(o=l.trys,!(o=o.length>0&&o[o.length-1])&&(6===n[0]||2===n[0])){l=0;continue}if(3===n[0]&&(!o||n[1]>o[0]&&n[1]<o[3])){l.label=n[1];break}if(6===n[0]&&l.label<o[1]){l.label=o[1],o=n;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(n);break}o[2]&&l.ops.pop(),l.trys.pop();continue}n=t.call(e,l)}catch(e){n=[6,e],i=0}finally{a=o=0}if(5&n[0])throw n[1];return{value:n[0]?n[1]:void 0,done:!0}}var a,i,o,s,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return s={next:n(0),throw:n(1),return:n(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s},s=r.types.model("AlertListStore",{rules:r.types.array(a.a),stateFilter:r.types.optional(r.types.string,"all"),search:r.types.optional(r.types.string,"")}).views(function(e){return{get filteredRules(){var t=new RegExp(e.search,"i");return e.rules.filter(function(e){return t.test(e.name)||t.test(e.stateText)||t.test(e.info)})}}}).actions(function(e){return{loadRules:Object(r.flow)(function(t){var n,s,l,c,d;return o(this,function(o){switch(o.label){case 0:return n=Object(r.getEnv)(e).backendSrv,e.stateFilter=t.state,[4,n.get("/api/alerts",t)];case 1:for(s=o.sent(),e.rules.clear(),l=0,c=s;l<c.length;l++)d=c[l],Object(i.a)(d,d.state),"paused"!==d.state&&(d.executionError&&(d.info="Execution Error: "+d.executionError),d.evalData&&d.evalData.noData&&(d.info="Query returned no data")),e.rules.push(a.a.create(d));return[2]}})}),setSearchQuery:function(t){e.search=t}}})},function(e,t,n){"use strict";n.d(t,"a",function(){return o}
8);var r=n(28),a=n(514),i=this&&this.__generator||function(e,t){function n(e){return function(t){return r([e,t])}}function r(n){if(a)throw new TypeError("Generator is already executing.");for(;l;)try{if(a=1,i&&(o=2&n[0]?i.return:n[0]?i.throw||((o=i.return)&&o.call(i),0):i.next)&&!(o=o.call(i,n[1])).done)return o;switch(i=0,o&&(n=[2&n[0],o.value]),n[0]){case 0:case 1:o=n;break;case 4:return l.label++,{value:n[1],done:!1};case 5:l.label++,i=n[1],n=[0];continue;case 7:n=l.ops.pop(),l.trys.pop();continue;default:if(o=l.trys,!(o=o.length>0&&o[o.length-1])&&(6===n[0]||2===n[0])){l=0;continue}if(3===n[0]&&(!o||n[1]>o[0]&&n[1]<o[3])){l.label=n[1];break}if(6===n[0]&&l.label<o[1]){l.label=o[1],o=n;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(n);break}o[2]&&l.ops.pop(),l.trys.pop();continue}n=t.call(e,l)}catch(e){n=[6,e],i=0}finally{a=o=0}if(5&n[0])throw n[1];return{value:n[0]?n[1]:void 0,done:!0}}var a,i,o,s,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return s={next:n(0),throw:n(1),return:n(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s},o=r.types.model("AlertRule",{id:r.types.identifier(r.types.number),dashboardId:r.types.number,panelId:r.types.number,name:r.types.string,state:r.types.string,stateText:r.types.string,stateIcon:r.types.string,stateClass:r.types.string,stateAge:r.types.string,info:r.types.optional(r.types.string,""),url:r.types.string}).views(function(e){return{get isPaused(){return"paused"===e.state}}}).actions(function(e){return{togglePaused:Object(r.flow)(function(){var t,n,o;return i(this,function(i){switch(i.label){case 0:return t=Object(r.getEnv)(e).backendSrv,n={paused:!e.isPaused},[4,t.post("/api/alerts/"+e.id+"/pause",n)];case 1:return o=i.sent(),Object(a.a)(e,o.state),e.info="",[2]}})})}})},function(e,t,n){"use strict";n.d(t,"a",function(){return l});var r=n(28),a=n(70),i=n(1218),o=r.types.union(r.types.string,r.types.boolean,r.types.number),s=r.types.union(o,r.types.array(o)),l=r.types.model({path:r.types.string,query:r.types.map(s),routeParams:r.types.map(s)}).views(function(e){return{get currentUrl(){var t=e.path;return e.query.size&&(t+="?"+Object(i.a)(Object(a.toJS)(e.query))),t}}}).actions(function(e){function t(t){e.query.clear();for(var n=0,r=Object.keys(t);n<r.length;n++){var a=r[n];t[a]&&e.query.set(a,t[a])}}function n(t){e.routeParams.clear();for(var n=0,r=Object.keys(t);n<r.length;n++){var a=r[n];t[a]&&e.routeParams.set(a,t[a])}}function r(r,a,i){e.path=r,t(a),n(i)}return{updateQuery:t,updatePathAndQuery:r}})},function(e,t,n){"use strict";/** 9 * @preserve jquery-param (c) 2015 KNOWLEDGECODE | MIT 10 */ 11function r(e){var t=[],n=/\[\]$/,r=function(e){return"[object Array]"===Object.prototype.toString.call(e)}
11,a=function(e,n){n="function"==typeof n?n():null===n?"":void 0===n?"":n,t[t.length]="boolean"!=typeof n?encodeURIComponent(e)+"="+encodeURIComponent(n):encodeURIComponent(e)},i=function(e,o){var s,l,c;if(e)if(r(o))for(s=0,l=o.length;s<l;s++)n.test(e)?a(e,o[s]):i(e,o[s]);else if(o&&"[object Object]"===String(o))for(c in o)i(e+"["+c+"]",o[c]);else a(e,o);else if(r(o))for(s=0,l=o.length;s<l;s++)a(o[s].name,o[s].value);else for(c in o)i(c,o[c]);return t};return i("",e).join("&").replace(/%20/g,"+")}t.a=r},function(e,t,n){"use strict";n.d(t,"a",function(){return o});var r=n(28),a=this&&this.__generator||function(e,t){function n(e){return function(t){return r([e,t])}}function r(n){if(a)throw new TypeError("Generator is already executing.");for(;l;)try{if(a=1,i&&(o=2&n[0]?i.return:n[0]?i.throw||((o=i.return)&&o.call(i),0):i.next)&&!(o=o.call(i,n[1])).done)return o;switch(i=0,o&&(n=[2&n[0],o.value]),n[0]){case 0:case 1:o=n;break;case 4:return l.label++,{value:n[1],done:!1};case 5:l.label++,i=n[1],n=[0];continue;case 7:n=l.ops.pop(),l.trys.pop();continue;default:if(o=l.trys,!(o=o.length>0&&o[o.length-1])&&(6===n[0]||2===n[0])){l=0;continue}if(3===n[0]&&(!o||n[1]>o[0]&&n[1]<o[3])){l.label=n[1];break}if(6===n[0]&&l.label<o[1]){l.label=o[1],o=n;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(n);break}o[2]&&l.ops.pop(),l.trys.pop();continue}n=t.call(e,l)}catch(e){n=[6,e],i=0}finally{a=o=0}if(5&n[0])throw n[1];return{value:n[0]?n[1]:void 0,done:!0}}var a,i,o,s,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return s={next:n(0),throw:n(1),return:n(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s},i=r.types.model("Folder",{id:r.types.identifier(r.types.number),uid:r.types.string,title:r.types.string,url:r.types.string,canSave:r.types.boolean,hasChanged:r.types.boolean,version:r.types.number}),o=r.types.model("FolderStore",{folder:r.types.maybe(i)}).actions(function(e){return{load:Object(r.flow)(function(t){var n,o;return a(this,function(a){switch(a.label){case 0:return e.folder&&e.folder.uid!==t&&(e.folder=null),n=Object(r.getEnv)(e).backendSrv,[4,n.getFolderByUid(t)];case 1:return o=a.sent(),e.folder=i.create({id:o.id,uid:o.uid,title:o.title,url:o.url,canSave:o.canSave,hasChanged:!1,version:o.version}),[2,o]}})}),setTitle:function(t,n){e.folder.title=n,e.folder.hasChanged=t.toLowerCase()!==n.trim().toLowerCase()&&n.trim().length>0},saveFolder:Object(r.flow)(function(t){var n,i;return a(this,function(a){switch(a.label){case 0:return n=Object(r.getEnv)(e).backendSrv,e.folder.title=e.folder.title.trim(),[4,n.updateFolder(e.folder,t)];case 1:return i=a.sent(),e.folder.url=i.url,e.folder.version=i.version,[2,e.folder.url+"/settings"]}})}),deleteFolder:Object(r.flow)(function(){var t;return a(this,function(n){return t=Object(r.getEnv)(e).backendSrv,[2,t.deleteFolder(e.folder.uid)]})})}})},function(e,t,n){"use strict";n.d(t,"a",function(){return a});var r=n(28),a=r.types.model("PermissionsStoreItem",{dashboardId:r.types.optional(r.types.number,-1),permission:r.types.number,permissionName:r.types.maybe(r.types.string),role:r.types.maybe(r.types.string),team:r.types.optional(r.types.string,""),teamId:r.types.optional(r.types.number,0),userEmail:r.types.optional(r.types.string,""),userId:r.types.optional(r.types.number,0),userLogin:r.types.optional(r.types.string,""),inherited:r.types.maybe(r.types.boolean),sortRank:r.types.maybe(r.types.number),icon:r.types.maybe(r.types.string),name:r.types.maybe(r.types.string),teamAvatarUrl:r.types.maybe(r.types.string),userAvatarUrl:r.types.maybe(r.types.string)}).actions(function(e){return{updateRole:function(t){e.role=t},updatePermission:function(t,n){e.permission=t,e.permissionName=n}}})},function(e,t,n){"use strict";function r(){return{restrict:"E",templateUrl:"public/app/core/components/sidemenu/sidemenu.html",controller:u,bindToController:!0,controllerAs:"ctrl",scope:{},link:function(e,t){t.on("click.dropdown",".dropdown-menu a",function(e){var t=l()(e.target).parents(".dropdown-menu"),n=t.parent();t.detach(),setTimeout(function(){n.append(t)},100)})}}}var a=n(4),i=n.n(a),o=n(23),s=n(17),l=n.n(s),c=n(2),d=n(22),u=function(){function e(e,t,n,r,a){var s=this;this.$scope=e,this.$rootScope=t,this.$location=n,this.contextSrv=r,this.$timeout=a,this.isSignedIn=r.isSignedIn,this.user=r.user;var l=i.a.cloneDeep(o.a.bootData.navTree);if(this.mainLinks=i.a.filter(l,function(e){return!e.hideFromMenu}),this.bottomNav=i.a.filter(l,function(e){return e.hideFromMenu}),this.loginUrl="login?redirect="+encodeURIComponent(this.$location.path()),r.user.orgCount>1){var c=i.a.find(this.bottomNav,{id:"profile"});c&&(c.showOrgSwitcher=!0)}this.$scope.$on("$routeChangeSuccess",function(){s.loginUrl="login?redirect="+encodeURIComponent(s.$location.path())})}return e.$inject=["$scope","$rootScope","$location","contextSrv","$timeout"],e.prototype.toggleSideMenu=function(){var e=this;this.contextSrv.toggleSideMenu(),d.a.emit("toggle-sidemenu"),this.$timeout(function(){e.$rootScope.$broadcast("render")})},e.prototype.toggleSideMenuSmallBreakpoint=function(){d.a.emit("toggle-sidemenu-mobile")},e.prototype.switchOrg=function(){this.$rootScope.appEvent("show-modal",{templateHtml:'<org-switcher dismiss="dism
11iss()"></org-switcher>'})},e.prototype.itemClicked=function(e,t){"/shortcuts"===e.url&&(d.a.emit("show-modal",{templateHtml:"<help-modal></help-modal>"}),t.preventDefault())},e}();c.a.directive("sidemenu",r)},function(e,t,n){"use strict";function r(){return{restrict:"E",templateUrl:"public/app/core/components/search/search.html",controller:c,bindToController:!0,controllerAs:"ctrl",scope:{}}}var a=n(4),i=n.n(a),o=n(2),s=n(101),l=n(22),c=function(){function e(e,t,n,r){this.$location=t,this.$timeout=n,this.searchSrv=r,l.a.on("show-dash-search",this.openSearch.bind(this),e),l.a.on("hide-dash-search",this.closeSearch.bind(this),e),this.initialFolderFilterTitle="All",this.getTags=this.getTags.bind(this),this.onTagSelect=this.onTagSelect.bind(this),this.isEditor=s.a.isEditor,this.hasEditPermissionInFolders=s.a.hasEditPermissionInFolders}return e.$inject=["$scope","$location","$timeout","searchSrv"],e.prototype.closeSearch=function(){this.isOpen=this.ignoreClose},e.prototype.openSearch=function(e,t){var n=this;if(this.isOpen)return void this.closeSearch();this.isOpen=!0,this.giveSearchFocus=0,this.selectedIndex=-1,this.results=[],this.query={query:"",tag:[],starred:!1},this.currentSearchId=0,this.ignoreClose=!0,this.isLoading=!0,t&&t.starred&&(this.query.starred=!0),this.$timeout(function(){n.ignoreClose=!1,n.giveSearchFocus=n.giveSearchFocus+1,n.search()},100)},e.prototype.keyDown=function(e){if(27===e.keyCode&&this.closeSearch(),40===e.keyCode&&this.moveSelection(1),38===e.keyCode&&this.moveSelection(-1),13===e.keyCode){var t=this.getFlattenedResultForNavigation(),n=t[this.selectedIndex];if(n)if(void 0!==n.dashboardIndex){var r=this.results[n.folderIndex].items[n.dashboardIndex];r&&(this.$location.search({}),this.$location.path(r.url),this.closeSearch())}else{var a=this.results[n.folderIndex];a&&a.toggle(a)}}},e.prototype.onFilterboxClick=function(){this.giveSearchFocus=0,this.preventClose()},e.prototype.preventClose=function(){var e=this;this.ignoreClose=!0,this.$timeout(function(){e.ignoreClose=!1},100)},e.prototype.moveSelection=function(e){if(0!==this.results.length){var t=this.getFlattenedResultForNavigation(),n=t[this.selectedIndex];if(n&&(void 0!==n.dashboardIndex?this.results[n.folderIndex].items[n.dashboardIndex].selected=!1:this.results[n.folderIndex].selected=!1),0===e)return void(this.selectedIndex=-1);var r=t.length,a=this.selectedIndex+e;this.selectedIndex=(a%=r)<0?a+r:a;var i=t[this.selectedIndex];return void 0===i.dashboardIndex&&0===this.results[i.folderIndex].id?void this.moveSelection(e):void 0!==i.dashboardIndex?this.results[i.folderIndex].expanded?void(this.results[i.folderIndex].items[i.dashboardIndex].selected=!0):void this.moveSelection(e):this.results[i.folderIndex].hideHeader?void this.moveSelection(e):void(this.results[i.folderIndex].selected=!0)}},e.prototype.searchDashboards=function(){var e=this;this.currentSearchId=this.currentSearchId+1;var t=this.currentSearchId;return this.searchSrv.search(this.query).then(function(n){if(!(t<e.currentSearchId)){e.results=n||[];for(var r=0,a=e.results;r<a.length;r++)for(var i=a[r],o=0,s=i.items;o<s.length;o++){var l=s[o];l.url+=window.location.search}e.isLoading=!1,e.moveSelection(1)}})},e.prototype.queryHasNoFilters=function(){var e=this.query;return""===e.query&&!1===e.starred&&0===e.tag.length},e.prototype.filterByTag=function(e){-1===i.a.indexOf(this.query.tag,e)&&(this.query.tag.push(e),this.search())},e.prototype.removeTag=function(e,t){this.query.tag=i.a.without(this.query.tag,e),this.search(),this.giveSearchFocus=this.giveSearchFocus+1,t.stopPropagation(),t.preventDefault()},e.prototype.getTags=function(){return this.searchSrv.getDashboardTags()},e.prototype.onTagSelect=function(e){this.query.tag=i.a.map(e,function(e){return e.value}),this.search()},e.prototype.clearSearchFilter=function(){this.query.tag=[],this.search()},e.prototype.showStarred=function(){this.query.starred=!this.query.starred,this.giveSearchFocus=this.giveSearchFocus+1,this.search()},e.prototype.search=function(){this.showImport=!1,this.selectedIndex=-1,this.searchDashboards()},e.prototype.folderExpanding=function(){this.moveSelection(0)},e.prototype.getFlattenedResultForNavigation=function(){var e=0;return i.a.flatMap(this.results,function(t){var n=[];n.push({folderIndex:e});var r=0;return n=n.concat(i.a.map(t.items||[],function(t){return{folderIndex:e,dashboardIndex:r++}})),e++,n})},e}();o.a.directive("dashboardSearch",r)},function(e,t,n){"use strict";function r(){return{restrict:"E",template:'<i class="fa fa-info-circle"></i>',transclude:!0,link:function(e,t,n,r,a){var o=n.offset||"0 -10px",s=n.position||"right middle",c="drop-help drop-hide-out-of-bounds";t.addClass("gf-form-help-icon"),n.wide&&(c+=" drop-wide"),n.mode&&t.addClass("gf-form-help-icon--"+n.mode),a(function(n,r){var a=document.createElement("div");a.className="markdown-html",i.a.each(n,function(e){a.appendChild(e)});var d={target:t[0],content:a,position:s,classes:c,openOn:"hover",hoverOpenDelay:400,tetherOptions:{offset:o,constraints:[{to:"window",attachment:"together",pin:!0}]}};e.$applyAsync(function(){var t=new l.a(d),n=e.$on("$destroy",function(){t.destroy(),n()})})})}}}var a=n(4),i=n.n(a),o=n(2),s=n(111),l=n.n(s);o.a.directive("infoPopover",r)},function(e,t,n){"use strict";function r(){return{restrict:"E",templateUrl:"public/app/core/components/navbar/navbar.html",controller:s,bindToController:!0,controllerAs:"ctrl",scope:{model:"="},link:function(e,t){}}}function a(){return{restrict:"E",template:'\n <h1 class="page-header__title">\n <i class="page-header__icon {{::model.header.icon}}" ng-if="::model.header.icon"></i>\n <img class="page-header__img" ng-src="{{::model.header.img}}" ng-if="::model.header.img"></i>\n {{model.header.text}}\n </h1>\n ',scope:{model:"="}}}var i=n(2),o=n(22),s=function(){function e(){}return e.prototype.showSearch=function(){o.a.emit("show-dash-search")},e.prototype.navItemClicked=function(e,t){e.clickHandler&&(e.clickHandler(),t.preventDefault())},e}();i.a.directive("pageH1",a),i.a.directive("navbar",r)},function(e,t,n){"use strict";function r(){return{restrict:"A",require:"ngModel",link:function(e,t,n,r){function a(e){return(e||"").split(",")}function o(e){return i.a.isArray(e)?(e||"").join(","):e}r.$parsers.push(a),r.$formatters.push(o)}}}var a=n(4),i=n.n(a);n(2).a.directive("arrayJoin",r)},function(e,t,n){"use strict";var r=n(4),a=n.n(r),i=n(23),o=n(690),s=(n.n(o),function(){function e(){this.observers={}}return e.prototype.getWebSocketUrl=function(){var e=window.location;return("https:"===e.protocol?"wss://":"ws://")+e.host+i.a.appSubUrl+"/ws"},e.prototype.getConnection=function(){var e=this;return this.initPromise?this.initPromise:this.conn&&1===this.conn.readyState?Promise.resolve(this.conn):(this.initPromise=new Promise(function(t,n){console.log("Live: connecting..."),e.conn=new WebSocket(e.getWebSocketUrl()),e.conn.onclose
11=function(t){console.log("Live: websocket onclose",t),n({message:"Connection closed"}),e.initPromise=null,setTimeout(e.reconnect.bind(e),2e3)},e.conn.onmessage=function(t){e.handleMessage(t.data)},e.conn.onerror=function(t){e.initPromise=null,n({message:"Connection error"}),console.log("Live: websocket error",t)},e.conn.onopen=function(n){console.log("opened"),e.initPromise=null,t(e.conn)}}),this.initPromise)},e.prototype.handleMessage=function(e){if(e=JSON.parse(e),!e.stream)return void console.log("Error: stream message without stream!",e);var t=this.observers[e.stream];if(!t)return void this.removeObserver(e.stream,null);t.next(e)},e.prototype.reconnect=function(){var e=this;0!==a.a.keys(this.observers).length&&(console.log("LiveSrv: Reconnecting"),this.getConnection().then(function(t){a.a.each(e.observers,function(t,n){e.send({action:"subscribe",stream:n})})}))},e.prototype.send=function(e){this.conn.send(JSON.stringify(e))},e.prototype.addObserver=function(e,t){var n=this;this.observers[e]=t,this.getConnection().then(function(t){n.send({action:"subscribe",stream:e})})},e.prototype.removeObserver=function(e,t){var n=this;console.log("unsubscribe",e),delete this.observers[e],this.getConnection().then(function(t){n.send({action:"unsubscribe",stream:e})})},e.prototype.subscribe=function(e){var t=this;return console.log("LiveSrv.subscribe: "+e),o.Observable.create(function(n){return t.addObserver(e,n),function(){t.removeObserver(e,n)}})},e}());new s},function(e,t,n){"use strict";function r(e,t,n){if(e){if(e instanceof a.Subscriber)return e;if(e[i.rxSubscriber])return e[i.rxSubscriber]()}return e||t||n?new a.Subscriber(e,t,n):new a.Subscriber(o.empty)}var a=n(693),i=n(318),o=n(517);t.toSubscriber=r},function(e,t,n){"use strict";function r(){try{return i.apply(this,arguments)}catch(e){return o.errorObject.e=e,o.errorObject}}function a(e){return i=e,r}var i,o=n(516);t.tryCatch=a},function(e,t,n){"use strict";var r=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)},a=function(e){function t(t){e.call(this),this.errors=t;var n=Error.call(this,t?t.length+" errors occurred during unsubscription:\n "+t.map(function(e,t){return t+1+") "+e.toString()}).join("\n "):"");this.name=n.name="UnsubscriptionError",this.stack=n.stack,this.message=n.message}return r(t,e),t}(Error);t.UnsubscriptionError=a},function(e,t,n){"use strict";function r(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return a(e)}function a(e){return e?1===e.length?e[0]:function(t){return e.reduce(function(e,t){return t(e)},t)}:i.noop}var i=n(1231);t.pipe=r,t.pipeFromArray=a},function(e,t,n){"use strict";function r(){}t.noop=r},function(e,t,n){"use strict";function r(){return{restrict:"E",controller:l,bindToController:!0,controllerAs:"ctrl",scope:{},template:s}}function a(e){return{restrict:"A",scope:{},link:function(t,n){var r=i.a.get("grafana.list.layout.mode")||"grid",a="card-list-layout-"+r;n.addClass(a),e.onAppEvent("layout-mode-changed",function(e,t){n.removeClass(a),a="card-list-layout-"+t,n.addClass(a)},t)}}}a.$inject=["$rootScope"];var i=n(77),o=n(2),s='\n<div class="layout-selector">\n <button ng-click="ctrl.listView()" ng-class="{active: ctrl.mode === \'list\'}">\n <i class="fa fa-list"></i>\n </button>\n <button ng-click="ctrl.gridView()" ng-class="{active: ctrl.mode === \'grid\'}">\n <i class="fa fa-th"></i>\n </button>\n</div>\n',l=function(){function e(e){this.$rootScope=e,this.mode=i.a.get("grafana.list.layout.mode")||"grid"}return e.$inject=["$rootScope"],e.prototype.listView=function(){this.mode="list",i.a.set("grafana.list.layout.mode","list"),this.$rootScope.appEvent("layout-mode-changed","list")},e.prototype.gridView=function(){this.mode="grid",i.a.set("grafana.list.layout.mode","grid"),this.$rootScope.appEvent("layout-mode-changed","grid")},e}();o.a.directive("layoutSelector",r),o.a.directive("layoutMode",a)},function(e,t,n){"use strict";function r(){return{restrict:"E",controller:o,controllerAs:"ctrl",bindToController:!0,scope:{checked:"=",label:"@",labelClass:"@",tooltip:"@",switchClass:"@",onChange:"&"},template:i}}var a=n(2),i='\n<label for="check-{{ctrl.id}}" class="gf-form-label {{ctrl.labelClass}} pointer" ng-show="ctrl.label">\n {{ctrl.label}}\n <info-popover mode="right-normal" ng-if="ctrl.tooltip" position="top center">\n {{ctrl.tooltip}}\n </info-popover>\n</label>
11\n<div class="gf-form-switch {{ctrl.switchClass}}" ng-if="ctrl.show">\n <input id="check-{{ctrl.id}}" type="checkbox" ng-model="ctrl.checked" ng-change="ctrl.internalOnChange()">\n <label for="check-{{ctrl.id}}" data-on="Yes" data-off="No"></label>\n</div>\n',o=function(){function e(e,t){this.$timeout=t,this.show=!0,this.id=e.$id}return e.$inject=["$scope","$timeout"],e.prototype.internalOnChange=function(){var e=this;return this.$timeout(function(){return e.onChange()})},e}();a.a.directive("gfFormSwitch",r)},function(e,t,n){"use strict";function r(){return{restrict:"E",controller:o,bindToController:!0,controllerAs:"ctrl",template:i,scope:{model:"="}}}var a=n(2),i='\n<select class="gf-form-input" ng-model="ctrl.model" ng-options="f.value as f.text for f in ctrl.options"></select>\n',o=function(){function e(e){this.backendSrv=e}return e.$inject=["backendSrv"],e.prototype.$onInit=function(){var e=this;return this.options=[{value:0,text:"Default"}],this.backendSrv.search({starred:!0}).then(function(t){t.forEach(function(t){e.options.push({value:t.id,text:t.title})})})},e}();a.a.directive("dashboardSelector",r)},function(e,t,n){"use strict";function r(e,t){return{restrict:"E",template:l,scope:{part:"=",handleEvent:"&",debounce:"@"},link:function(e,n){function r(e){var t=s()(this),n=t.next();n.val(u.params[e]),n.css("width",t.width()+16+"px"),t.hide(),n.show(),n.focus(),n.select();var r=n.data("typeahead");r&&(n.val(""),r.lookup())}function a(n){var r=s()(this),a=r.prev(),i=r.val();(""!==i||u.def.params[n].optional)&&(a.html(t.highlightVariablesAsHtml(i)),u.updateParam(r.val(),n),e.$apply(function(){e.handleEvent({$event:{name:"part-param-changed"}})})),r.hide(),a.show()}function o(e,t){13===t.which&&a.call(this,e)}function l(){this.style.width=8*(3+this.value.length)+"px"}function c(t,n,r){if(n.options||n.dynamicLookup){var o=function(t,r){if(n.options){var a=n.options;return"int"===n.type&&(a=i.a.map(a,function(e){return e.toString()})),a}e.$apply(function(){e.handleEvent({$event:{name:"get-param-options"}}).then(function(e){var t=i.a.map(e,function(e){return e.value});r(t)})})};t.attr("data-provide","typeahead"),t.typeahead({source:o,minLength:0,items:1e3,updater:function(e){return setTimeout(function(){a.call(t[0],r)},0),e}}
11);var l=t.data("typeahead");l.lookup=function(){this.query=this.$element.val()||"";var e=this.source(this.query,s.a.proxy(this.process,this));return e?this.process(e):e},m&&(l.lookup=i.a.debounce(l.lookup,500,{leading:!0}))}}function d(){i.a.each(p.params,function(e,n){if(!(e.optional&&u.params.length<=n)){n>0&&s()("<span>, </span>").appendTo(f);var d=t.highlightVariablesAsHtml(u.params[n]),p=s()('<a class="graphite-func-param-link pointer">'+d+"</a>"),m=s()('<input type="text" class="hide input-mini tight-form-func-param"></input>');p.appendTo(f),m.appendTo(f),m.blur(i.a.partial(a,n)),m.keyup(l),m.keypress(i.a.partial(o,n)),p.click(i.a.partial(r,n)),c(m,e,n)}})}var u=e.part,p=u.def,f=n.find(".query-part-parameters"),m=e.debounce;e.partActions=[],e.showActionsMenu=function(){e.handleEvent({$event:{name:"get-part-actions"}}).then(function(t){e.partActions=t})},e.triggerPartAction=function(t){e.handleEvent({$event:{name:"action",action:t}})},function(){f.empty(),d()}()}}}r.$inject=["$compile","templateSrv"];var a=n(4),i=n.n(a),o=n(17),s=n.n(o),l='\n<div class="dropdown cascade-open">\n<a ng-click="showActionsMenu()" class="query-part-name pointer dropdown-toggle" data-toggle="dropdown">{{part.def.type}}</a>\n<span>(</span><span class="query-part-parameters"></span><span>)</span>\n<ul class="dropdown-menu">\n <li ng-repeat="action in partActions">\n <a ng-click="triggerPartAction(action)">{{action.text}}</a>\n </li>\n</ul>\n';n(2).a.directive("queryPartEditor",r)},function(e,t,n){"use strict";function r(e){var t=this.query;return""===t||("/"===t[0]&&(t=t.substring(1)),"/"===t[t.length-1]&&(t=t.substring(0,t.length-1)),e.toLowerCase().match(t.toLowerCase()))}function a(){return{restrict:"E",template:c,controller:l,bindToController:!0,controllerAs:"ctrl",scope:{model:"=",getOptions:"&",onChange:"&",cssClass:"@",allowCustom:"@",labelMode:"@",lookupText:"@",placeholder:"@",startOpen:"@",debounce:"@"}}}var i=n(4),o=n.n(i),s=n(2),l=function(){function e(e,t,n,a,i){var s=this;this.$scope=e,this.$sce=n,this.templateSrv=a,this.$q=i,this.inputElement=t.find("input").first(),this.linkElement=t.find("a").first(),this.linkMode=!0,this.cancelBlur=null,e.$watch("ctrl.model",this.modelChanged.bind(this)),this.labelMode?this.cssClasses="gf-form-label "+this.cssClass:this.cssClasses="gf-form-input gf-form-input--dropdown "+this.cssClass,this.placeholder&&this.inputElement.attr("placeholder",this.placeholder),this.inputElement.attr("data-provide","typeahead"),this.inputElement.typeahead({source:this.t
11ypeaheadSource.bind(this),minLength:0,items:1e4,updater:this.typeaheadUpdater.bind(this),matcher:r});var l=this.inputElement.data("typeahead");l.lookup=function(){this.query=this.$element.val()||"",this.source(this.query,this.process.bind(this))},this.debounce&&(l.lookup=o.a.debounce(l.lookup,500,{leading:!0})),this.linkElement.keydown(function(e){40!==e.keyCode&&13!==e.keyCode||s.linkElement.click()}),this.inputElement.keydown(function(e){13===e.keyCode&&setTimeout(function(){s.inputElement.blur()},100)}),this.inputElement.blur(this.inputBlur.bind(this)),this.startOpen&&setTimeout(this.open.bind(this),0)}return e.$inject=["$scope","$element","$sce","templateSrv","$q"],e.prototype.getOptionsInternal=function(e){var t=this.getOptions({$query:e});return this.isPromiseLike(t)?t:this.$q.when(t)},e.prototype.isPromiseLike=function(e){return e&&"function"==typeof e.then},e.prototype.modelChanged=function(){var e=this;o.a.isObject(this.model)?this.updateDisplay(this.model.text):this.lookupText?this.getOptionsInternal("").then(function(t){var n=o.a.find(t,{value:e.model});e.updateDisplay(n?n.text:e.model)}):this.updateDisplay(this.model)},e.prototype.typeaheadSource=function(e,t){var n=this;this.getOptionsInternal(e).then(function(e){n.optionCache=e;var r=o.a.map(e,function(e){return o.a.escape(e.text)});n.allowCustom&&""!==n.text&&-1===o.a.indexOf(r,n.text)&&r.unshift(n.text),t(r)})},e.prototype.typeaheadUpdater=function(e){return e===this.text?(clearTimeout(this.cancelBlur),this.inputElement.focus(),e):(this.inputElement.val(e),this.switchToLink(!0),e)},e.prototype.switchToLink=function(e){this.linkMode&&!e||(clearTimeout(this.cancelBlur),this.cancelBlur=null,this.linkMode=!0,this.inputElement.hide(),this.linkElement.show(),this.updateValue(this.inputElement.val()))},e.prototype.inputBlur=function(){this.cancelBlur=setTimeout(this.switchToLink.bind(this),200)},e.prototype.updateValue=function(e){var t=this;""!==(e=o.a.unescape(e))&&this.text!==e&&this.$scope.$apply(function(){var n=o.a.find(t.optionCache,{text:e});n?(o.a.isObject(t.model)?t.model=n:t.model=n.value,t.text=n.text):t.allowCustom&&(o.a.isObject(t.model)?t.model.text=t.model.value=e:t.model=e,t.text=e),t.$scope.$$postDigest(function(){t.$scope.$apply(function(){t.onChange({$option:n})})})})},e.prototype.updateDisplay=function(e){this.text=e,this.display=this.$sce.trustAsHtml(this.templateSrv.highlightVariablesAsHtml(e))},e.prototype.open=function(){this.inputElement.css("width",Math.max(this.linkElement.width(),80)+16+"px"),this.inputElement.show(),this.inputElement.focus(),this.linkElement.hide(),this.linkMode=!1;var e=this.inputElement.data("typeahead");e&&(this.inputElement.val(""),e.lookup())},e}(),c='\n<input type="text"\n data-provide="typeahead"\n class="gf-form-input"\n spellcheck="false"\n style="display:none">\n</input>\n<a ng-class="ctrl.cssClasses"\n tabindex="1"\n ng-click="ctrl.open()"\n give-focus="ctrl.focus"\n ng-bind-html="ctrl.display || \' \'">\n</a>\n';s.a.directive("gfFormDropdown",a)},function(e,t,n){"use strict";function r(e,t){for(var n=e.toLowerCase(),r=t.toLowerCase(),a=t.length;a>0&&!n.endsWith(r.substring(0,a));)a--;return e+t.substring(a)}function a(){return{restrict:"E",template:p,controller:u,bindToController:!0,controllerAs:"ctrl",scope:{model:"=",sensors:"<",onSearch:"&"}}}var i=n(0),o=n.n(i),s=n(2),l=10,c={sensor:new RegExp('sensor:([^ "]*)$|sensor:"([^"]*)$'),tag:new RegExp('tag:([^ "]*)$|tag:"([^"]*)$'),date:new RegExp('date:([^ "]*)$|date:"([^"]*)$')},d={"sensor:":"<span class='hint-keyword'>sensor:</span> <span class='hint-description'>Filter sensors by name</span>","date:":"<span class='hint-keyword'>date:</span> <span class='hint-description'>Filter experiments by date</span>","tag:":"<span class='hint-keyword'>tag:</span> <span class='hint-description'>Filter experiment by tag</span>"},u=function(){function e(e,t){this.backendSrv=t,this.inputElement=e.find("input").first(),this.searchButton=e.find(".fa-search").first(),this.inputElement.typeahead({source:this.source.bind(this),highlighter:this.highlighter.bind(this),sorter:function(e){return e},minLength:0,items:l,updater:this.updater.bind(this),matcher:this.matcher.bind(this)}),this.typeahead=this.inputElement.data("typeahead"),this.typeahead.lookup=function(){this.query=this.$element.val()||"",this.source(this.query,this.process.bind(this))},this.typeahead.select=function(){var e=this.$menu.find(".active").attr("data-value");return e&&this.$element.val(this.updater(e)).change(),this.hide()}}return e.$inject=["$element","backendSrv"],e.prototype.initDropdownMode=function(e){var t;this.searchTerm=null,(t=e.match(c.sensor))?(this.dropdownMode="fillsensor",this.searchTerm=t[1]||t[2]||""):(t=e.match(c.tag))?(this.dropdownMode="filltag",this.searchTerm=t[1]||t[2]||""):(t=e.match(c.date))?(this.dropdownMode="filldate",this.searchTerm=t[1]||t[2]||""):this.dropdownMode="hint"},e.prototype.source=function(e,t){var n=this;switch(this.initDropdownMode(e),this.dropdownMode){case"hint":t(["sensor:","date:","tag:"]);break;case"fillsensor":var r=Object.keys(this.sensors).map(function(e){return n.sensors[e].shortName});t(r);break;case"filldate":t(["Last week","Last month","Last year"]);break;case"filltag":if(void 0!==this.tagCache)return t(this.tagCache);this.backendSrv.searchExperimentTags(this.searchTerm).then(function(e){void 0===n.tagCache&&e.results.length===e.totalCount&&""===n.searchTerm&&(n.tagCache=e.results),t(e.results)})}},e.prototype.matcher=function(e){var t=this.dropdownMode;return"fillsensor"!==t&&"filltag"!==t||-1!==e.toLowerCase().indexOf(this.searchTerm.toLowerCase())},e.prototype.highlighter=function(e){if("hint"===this.dropdownMode){var t=d[e];return t||e}var n=this.searchTerm;return n?(n=n.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),n?e.replace(new RegExp("("+n+")","ig"),function(e,t){return"<strong>"+t+"</strong>"}):e):e},e.prototype.updater=function(e){var t=this.inputElement.val();return 0===t.length?e:"hint"===this.dropdownMode?r(t,e):(t=t.substring(0,t.length-this.searchTerm.length),'"'===t[t.length-1]&&(t=t.substring(0,t.length-1)),"Last week"===e?e=">"+o()().subtract(1,"weeks").format("YYYY-MM-DD"):"Last month"===e?e=">"+o()().subtract(1,"months").format("YYYY-MM-DD"):"Last year"===e&&(e=">"+o()().subtract(1,"years").format("YYYY-MM-DD")),-1!==e.indexOf(" ")&&(e='"'+e+'"'),t+e+" ")},e.prototype.inputClicked=function(e){this.typeahead.lookup()},e.prototype.inputChanged=function(){var e=this;clearTimeout(this.reOpenTimer),this.reOpenTimer=setTimeout(function(){e.typeahead.shown||e.typeahead.lookup()},50)},e.prototype.inputFocused=function(){this.searchButton.addClass("active")},e.prototype.inputBlurred=function(){var e=this;setTimeout(function(){!1===e.inputElement.is(":focus")&&e.searchButton.removeClass("active")},100)},e.prototype.searchButtonClicked=function(e){e.preventDefault(),this.onSearch({$query:this.text})},e.prototype.inputSubmit=function(e){this.onSearch({$query:this.text})},e.prototype.clearClicked=function(e){e.preventDefault(),this.text="",this.onSearch({$query:""})},e}(),p='\n<input type="text"\n ng-model="ctrl.text"\n ng-change="ctrl.inputChanged()"\n class="gf-form-input"\n ng-click="ctrl.inputClicked($event)"\n ng-focus="ctrl.inputFocused()"\n ng-blur="ctrl.inputBlurred()"\n ng-submit="ctrl.inputSubmit($event)"\n spellcheck="false">\n</input>\n<i class="gf-form-input-icon fa fa-search"\n ng-click="ctrl.searchButtonClicked($event)"></i>\n<i class="gf-form-input-icon fa fa-times"\n ng-if="ctrl.text"\n ng-click="ctrl.clearClicked($event)"></i>\n';s.a.directive("gfSidepaneSearch",a)},function(e,t,n){"use strict";n(1239),n(1240),n(1241),n(1242),n(1243),n(1244),n(1245),n(1246)},function(e,t,n){"use strict";var r=n(27),a=n.n(r),i=n(4),o=n.n(i),s=n(17),l=n.n(s),c=n(2),d=function(){function e(e,t){var n=e.inspector;e.init=function(){e.editor={index:0},n.error&&(o.a.isString(n.error.data)?e.response=l()("<div>"+n.error.data+"</div>").text():n.error.data?n.error.data.response?e.response=t(n.error.data.response):e.response=a.a.toJson(n.error.data,!0):n.error.message&&(e.message=n.error.message),n.error.config&&n.error.config.params&&(e.request_parameters=o.a.map(n.error.config.params,function(e,t){return{key:t,value:e}})),n.error.stack&&(e.editor.index=3,e.stack_trace=n.error.stack,e.message=n.error.message),n.error.config&&n.error.config.data&&(e.editor.index=2,o.a.isString(n.error.config.data)?e.request_parameters=this.getParametersFromQueryString(n.error.config.data):e.request_parameters=o.a.map(n.error.config.data,function(e,t){return{key:t,value:a.a.toJson(e,!0)}})))}}return e.$inject=["$scope","$sanitize"],e.prototype.getParametersFromQueryString=function(e){for(var t=[],n=e.split("&"),r=0;r<n.length;r++){var a=n[r].split("=");a[1].length>0&&t.push({key:a[0],value:window.unescape(a[1])})}return t},e}();c.a.controller("InspectCtrl",d)},function(e,t,n){"use strict";var r=n(27),a=n.n(r),i=n(2),o=function(){function e(e){e.json=a.a.toJson(e.object,!0),e.canUpdate=void 0!==e.updateHandler&&e.contextSrv.isEditor,e.canCopy=e.enableCopy,e.update=function(){var t=a.a.fromJson(e.json);e.updateHandler(t,e.object)},e.getContentForClipboard=function(){return e.json}}return e.$inject=["$scope"],e}();i.a.controller("JsonEditorCtrl",o)},function(e,t,n){"use strict";var r=n(4),a=n.n(r),i=n(2),o=n(23),s=function(){function e(e,t,n,r,i){e.formModel={user:"",email:"",password:""},e.command={},e.result="",n.sidemenu=!1,e.oauth=o.a.oauth,e.oauthEnabled=a.a.keys(o.a.oauth).length>0,e.ldapEnabled=o.a.ldapEnabled,e.authProxyEnabled=o.a.authProxyEnabled,e.disableLoginForm=o.a.disableLoginForm,e.disableUserSignUp=o.a.disableUserSignUp,e.loginHint=o.a.loginHint,e.loginMode=!0,e.submitBtnText="Log in",e.init=function(){e.$watch("loginMode",e.loginModeChanged),o.a.loginError&&e.appEvent("alert-warning",["Login Failed",o.a.loginError])},e.submit=function(){e.loginMode?e.login():e.signUp()},e.changeView=function(){var e=document.querySelector("#login-view"),t=document.querySelector("#change-password-view");e.className+=" add",setTimeout(function(){e.className+=" hidden"},250),setTimeout(function(){t.classList.remove("hidden")},251),setTimeout(function(){t.classList.remove("remove")},301),setTimeout(function(){document.getElementById("newPassword").focus()},400)},e.changePassword=function(){if(e.command.oldPassword="admin",e.command.newPassword!==e.command.confirmNew)return void e.appEvent("alert-warning",["New passwords do not match",""]);t.put("/api/user/password",e.command).then(function(){e.toGrafana()})},e.skip=function(){e.toGrafana()},e.loginModeChanged=function(t){e.submitBtnText=t?"Log in":"Sign up"},e.signUp=function(){e.loginForm.$valid&&t.post("/api/user/signup",e.formModel).then(function(t){"SignUpCreated"===t.status?r.path("/signup").search({email:e.formModel.email}):window.location.href=o.a.appSubUrl+"/"})},e.login=function(){delete e.loginError,e.loginForm.$valid&&t.post("/login",e.formModel).then(function(t){if(e.result=t,"admin"!==e.formModel.password||e.ldapEnabled||e.authProxyEnabled)return void e.toGrafana();e.changeView()},function(e){e.data&&e.data.message&&(i.set("Error logging in",e.data.message,"warning",1e4),e.isHandled=!0)})},e.toGrafana=function(){var t=r.search();t.redirect&&"/"===t.redirect[0]?window.location.href=o.a.appSubUrl+t.redirect:e.result.redirectUrl?window.location.href=e.result.redirectUrl:window.location.href=o.a.appSubUrl+"/"}
11,e.init()}return e.$inject=["$scope","backendSrv","contextSrv","$location","alertSrv"],e}();i.a.controller("LoginCtrl",s)},function(e,t,n){"use strict";var r=n(2),a=n(23),i=function(){function e(e,t,n,r){n.sidemenu=!1,e.formModel={},e.navModel={main:{icon:"gicon gicon-branding",text:"Invite",subTitle:"Register your Grafana account",breadcrumbs:[{title:"Login",url:"login"}]}},e.init=function(){r.get("/api/user/invite/"+t.code).then(function(n){e.formModel.name=n.name,e.formModel.email=n.email,e.formModel.username=n.email,e.formModel.inviteCode=t.code,e.greeting=n.name||n.email||n.username,e.invitedBy=n.invitedBy})},e.submit=function(){e.inviteForm.$valid&&r.post("/api/user/invite/complete",e.formModel).then(function(){window.location.href=a.a.appSubUrl+"/"})},e.init()}return e.$inject=["$scope","$routeParams","contextSrv","backendSrv"],e}();r.a.controller("InvitedCtrl",i)},function(e,t,n){"use strict";var r=n(23),a=n(2),i=function(){function e(e,t,n,r,a){this.$scope=e,this.backendSrv=t,this.alertSrv=a,r.sidemenu=!1,e.ctrl=this,e.formModel={};var i=n.search();if(i.email&&!i.email.match(/^\S+@\S+$/))return void console.log("invalid email");e.formModel.orgName=i.email,e.formModel.email=i.email,e.formModel.username=i.email,e.formModel.code=i.code,e.formModel.newsletter=!0,e.verifyEmailEnabled=!1,e.autoAssignOrg=!1,e.navModel={main:{icon:"gicon gicon-add-user",text:"Sign Up",subTitle:"Register your Curve account",breadcrumbs:[{title:"Login",url:"login"}]}},t.get("/api/user/signup/options").then(function(t){e.verifyEmailEnabled=t.verifyEmailEnabled,e.autoAssignOrg=t.autoAssignOrg})}return e.$inject=["$scope","backendSrv","$location","contextSrv","alertSrv"],e.prototype.submit=function(){var e=this;this.$scope.signUpForm.$valid&&this.backendSrv.post("/api/user/signup/step2",this.$scope.formModel).then(function(e){"redirect-to-select-org"===e.code?window.location.href=r.a.appSubUrl+"/profile/select-org?signup=1":window.location.href=r.a.appSubUrl+"/?signup=1"},function(t){t.data&&t.data.message&&(e.alertSrv.set("Error signing up",t.data.message,"warning",1e4),t.isHandled=!0)})},e}();a.a.controller("SignUpCtrl",i)},function(e,t,n){"use strict";var r=n(2),a=function(){function e(e,t,n,r){t.sidemenu=!1,e.formModel={},e.mode="send";var a=r.search();a.code&&(e.mode="reset",e.formModel.code=a.code),e.navModel={main:{icon:"gicon gicon-branding",text:"Reset Password",subTitle:"Reset your Grafana password",breadcrumbs:[{title:"Login",url:"login"}]}},e.sendResetEmail=function(){e.sendResetForm.$valid&&n.post("/api/user/password/send-reset-email",e.formModel).then(function(){e.mode="email-sent"})},e.submitReset=function(){if(e.resetForm.$valid)return e.formModel.newPassword!==e.formModel.confirmPassword?void e.appEvent("alert-warning",["New passwords do not match",""]):void n.post("/api/user/password/reset",e.formModel).then(function(){r.path("login")})}}return e.$inject=["$scope","contextSrv","backendSrv","$location"],e}();r.a.controller("ResetPasswordCtrl",a)},function(e,t,n){"use strict";var r=n(23),a=n(2),i=n(22),o=function(){function e(e,t,n){e.navModel=n.getNotFoundNav(),e.appSubUrl=r.a.appSubUrl,t.isSignedIn||i.a.emit("toggle-sidemenu-hidden"),e.$on("destroy",function(){t.isSignedIn||i.a.emit("toggle-sidemenu-hidden")})}return e.$inject=["$scope","contextSrv","navModelSrv"],e}();a.a.controller("ErrorCtrl",o)},function(e,t,n){"use strict";var r=n(2),a=function(){function e(e,t){var n=this;this.hasLoaded=!1,e.getUrl().then(function(e){n.matlabPluginUrl=e}),t.getRootObjectCount().then(function(e){n.hasLoaded=!0,n.hasExperiments=e>0})}return e.$inject=["matlabPluginSrv","experimentSrv"],e}();r.a.controller("HomeCtrl",a)},function(e,t,n){"use strict";n(1248),n(1249),n(101),n(1250),n(1251),n(1252),n(1253),n(1254),n(1257),n(1258),n(1259),n(1260),n(1261),n(1262),n(1263),n(1264)},function(e,t,n){"use strict";var r=n(27),a=n.n(r),i=n(4),o=n.n(i),s=n(2),l=n(22),c=function(){function e(e,t){this.$timeout=e,this.$rootScope=t,this.list=[]}return e.$inject=["$timeout","$rootScope"],e.prototype.init=function(){var e=this;this.$rootScope.onAppEvent("alert-error",function(t,n){e.set(n[0],n[1],"error",12e3)},this.$rootScope),this.$rootScope.onAppEvent("alert-warning",function(t,n){e.set(n[0],n[1],"warning",5e3)},this.$rootScope),this.$rootScope.onAppEvent("alert-success",function(t,n){e.set(n[0],n[1],"success",3e3)},this.$rootScope),l.a.on("alert-warning",function(t){return e.set(t[0],t[1],"warning",5e3)}),l.a.on("alert-success",function(t){return e.set(t[0],t[1],"success",3e3)}),l.a.on("alert-error",function(t){return e.set(t[0],t[1],"error",7e3)})},e.prototype.getIconForSeverity=function(e){switch(e){case"success":return"fa fa-check";case"error":return"fa fa-exclamation-triangle";default:return"fa fa-exclamation"}},e.prototype.set=function(e,t,n,r){var i=this;o.a.isObject(t)&&(console.log("alert error",t),t.statusText&&(t="HTTP Error ("+t.status+") "+t.statusText));var s={title:e||"",text:t||"",severity:n||"info",icon:this.getIconForSeverity(n)},l=a.a.toJson(s);return o.a.remove(this.list,function(e){return a.a.toJson(e)===l}),this.list.push(s),r>0&&this.$timeout(function(){i.list=o.a.without(i.list,s)},r),this.$rootScope.$$phase||this.$rootScope.$digest(),s},e.prototype.clear=function(e){this.list=o.a.without(this.list,e)},e.prototype.clearAll=function(){this.list=[]},e}();s.a.service("alertSrv",c)},function(e,t,n){"use strict";var r=n(2),a=n(22),i=function(){function e(e,t){this.$rootScope=e,this.$modal=t}return e.$inject=["$rootScope","$modal"],e.prototype.init=function(){a.a.on("show-modal",this.showModal.bind(this),this.$rootScope),a.a.on("hide-modal",this.hideModal.bind(this),this.$rootScope),a.a.on("confirm-modal",this.showConfirmModal.bind(this),this.$rootScope)},e.prototype.hideModal=function(){this.modalScope&&this.modalScope.dismiss&&this.modalScope.dismiss()},e.prototype.showModal=function(e){this.modalScope&&this.modalScope.dismiss&&this.modalScope.dismiss(),this.modalScope=e.scope,e.model?(this.modalScope=this.$rootScope.$new(),this.modalScope.model=e.model):this.modalScope||(this.modalScope=this.$rootScope.$new());var t=this.$modal({modalClass:e.modalClass,template:e.src,templateHtml:e.templateHtml,persist:!1,show:!1,scope:this.modalScope,keyboard:!1,backdrop:e.backdrop});Promise.resolve(t).then(function(e){e.modal("show")})},e.prototype.showConfirmModal=function(e){var t=this.$rootScope.$new();t.onConfirm=function(){e.onConfirm(),t.dismiss()},t.updateConfirmText=function(n){t.confirmTextValid=e.confirmText.toLowerCase()===n.toLowerCase()},t.title=e.title,t.text=e.text,t.text2=e.text2,t.confirmText=e.confirmText,t.onConfirm=e.onConfirm,t.onAltAction=e.onAltAction,t.altActionText=e.altActionText,t.icon=e.icon||"fa-check",t.yesText=e.yesText||"Yes",t.noText=e.noText||"Cancel",t.confirmTextValid=!t.confirmText,a.a.emit("show-modal",{src:"public/app/partials/confirm_modal.html",scope:t,modalClass:"confirm-modal"})},e}();
11r.a.service("utilSrv",i)},function(e,t,n){"use strict";var r=n(4),a=n.n(r),i=n(2),o=function(){function e(e){this.$timeout=e,this.timers=[]}return e.$inject=["$timeout"],e.prototype.register=function(e){return this.timers.push(e),e},e.prototype.cancel=function(e){this.timers=a.a.without(this.timers,e),this.$timeout.cancel(e)},e.prototype.cancelAll=function(){var e=this;a.a.each(this.timers,function(t){e.$timeout.cancel(t)}),this.timers=[]},e}();i.a.service("timer",o)},function(e,t,n){"use strict";function r(e){s.a.googleAnalyticsId&&e.init()}r.$inject=["googleAnalyticsSrv"];var a=n(17),i=n.n(a),o=n(2),s=n(23),l=function(){function e(e,t,n){this.$rootScope=e,this.$location=t,this.contextSrv=n}return e.$inject=["$rootScope","$location","contextSrv"],e.prototype.gaInit=function(){i.a.ajax({url:"https://www.google-analytics.com/analytics.js",dataType:"script",cache:!0});var e=window.ga=window.ga||function(){(e.q=e.q||[]).push(arguments)};return e.l=+new Date,e("create",s.a.googleAnalyticsId,"auto"),e("set","anonymizeIp",!0),e},e.prototype.init=function(){var e=this;this.$rootScope.$on("$viewContentLoaded",function(){var t={page:e.$location.url()},n=window.ga||e.gaInit();e.contextSrv.isSignedIn&&e.contextSrv.user&&e.contextSrv.user.id&&n("set","userId",e.contextSrv.user.id),n("set",t),n("send","pageview")})},e}();o.a.service("googleAnalyticsSrv",l).run(r)},function(e,t,n){"use strict";function r(e,t,n){var r=null;this.close=function(){r&&r.close()},this.show=function(a){r&&(r.close(),r=null);var o,s=i.a.extend(t.$new(!0),a.model),c=function(){setTimeout(function(){s.$destroy(),o.tether&&o.destroy(),a.onClose&&a.onClose()}),r=null};s.dismiss=function(){o.close()};var d=document.createElement("div");return d.innerHTML=a.template,e(d)(s),n(function(){o=new l.a({target:a.element,content:d,position:a.position,classes:a.classNames||"drop-popover",openOn:a.openOn,hoverCloseDelay:200,tetherOptions:{constraints:[{to:"scrollParent",attachment:"together"}]}}),o.on("close",function(){c()}),r=o,r.open()},100),function(){o&&o.close()}}}r.$inject=["$compile","$rootScope","$timeout"];var a=n(4),i=n.n(a),o=n(2),s=n(111),l=n.n(s);o.a.service("popoverSrv",r)},function(e,t,n){"use strict";function r(e,t){function n(n){return"*"===n||"*"===n.value?(this.value="*",this.html=e.trustAsHtml('<i class="fa fa-asterisk"><i>'),this.type=n.type,void(this.expandable=!0)):i.a.isString(n)?(this.value=n,void(this.html=e.trustAsHtml(t.highlightVariablesAsHtml(this.value)))):(this.text=n.value,this.cssClass=n.cssClass,this.custom=n.custom,this.type=n.type,this.fake=n.fake,this.value=n.value,this.selectMode=n.selectMode,this.type=n.type,this.expandable=n.expandable,void(this.html=n.html||e.trustAsHtml(t.highlightVariablesAsHtml(this.value))))}var r=this;this.getSegmentForValue=function(e,t){return e?this.newSegment(e):this.newSegment({value:t,fake:!0})},this.newSelectMeasurement=function(){return new n({value:"select measurement",fake:!0})},this.newFake=function(e,t,r){return new n({value:e,fake:!0,type:t,cssClass:r})},this.newSegment=function(e){return new n(e)},this.newKey=function(e){return new n({value:e,type:"key",cssClass:"query-segment-key"})},this.newKeyValue=function(e){return new n({value:e,type:"value",cssClass:"query-segment-value"})},this.newCondition=function(e){return new n({value:e,type:"condition",cssClass:"query-keyword"})},this.newOperator=function(e){return new n({value:e,type:"operator",cssClass:"query-segment-operator"})},this.newOperators=function(e){return i.a.map(e,function(e){return new n({value:e,type:"operator",cssClass:"query-segment-operator"})})},this.transformToSegments=function(e,n){return function(a){var o=i.a.map(a,function(e){return r.newSegment({value:e.text,expandable:e.expandable})});return e&&i.a.each(t.variables,function(e){void 0!==n&&n!==e.type||o.unshift(r.newSegment({type:"value",value:"$"+e.name,expandable:!0}))}),o}},this.newSelectMetric=function(){return new n({value:"select metric",fake:!0})},this.newPlusButton=function(){return new n({fake:!0,html:'<i class="fa fa-plus "></i>',type:"plus-button",cssClass:"query-part"})}}r.$inject=["$sce","templateSrv"];var a=n(4),i=n.n(a);n(2).a.service("uiSegmentSrv",r)},function(e,t,n){"use strict";var r=n(4),a=n.n(r),i=n(2),o=n(22),s=n(703),l=function(){function e(e,t,n,r,a){this.$http=e,this.alertSrv=t,this.$q=n,this.$timeout=r,this.contextSrv=a,this.inFlightRequests={},this.HTTP_REQUEST_CANCELLED=-1}return e.$inject=["$http","alertSrv","$q","$timeout","contextSrv"],e.prototype.get=function(e,t){return this.request({method:"GET",url:e,params:t})},e.prototype.delete=function(e){return this.request({method:"DELETE",url:e})},e.prototype.post=function(e,t){return this.request({method:"POST",url:e,data:t})},e.prototype.patch=function(e,t){return this.request({method:"PATCH",url:e,data:t})},e.prototype.put=function(e,t){return this.request({method:"PUT",url:e,data:t})},e.prototype.withNoBackendCache=function(e){var t=this;return this.noBackendCache=!0,e().finally(function(){t.noBackendCache=!1})},e.prototype.requestErrorHandler=function(e){if(!e.isHandled){var t=e.data||{message:"Unexpected error"};if(a.a.isString(t)&&(t={message:t}),422===e.status)throw this.alertSrv.set("Validation failed",t.message,"warning",4e3),t;if(t.severity="error",e.status<500&&(t.severity="warning"),t.message){var n="",r=t.message;r.length>80&&(n=r,r="Error"),this.alertSrv.set(r,n,t.severity,1e4)}throw t}},e.prototype.request=function(e){var t=this;e.retry=e.retry||0;
11var n=!e.url.match(/^http/),r=0===e.retry;return n&&(this.contextSrv.user&&this.contextSrv.user.orgId&&(e.headers=e.headers||{},e.headers["X-Grafana-Org-Id"]=this.contextSrv.user.orgId),0===e.url.indexOf("/")&&(e.url=e.url.substring(1))),this.$http(e).then(function(n){return"GET"!==e.method&&n&&n.data.message&&!1!==e.showSuccessAlert&&t.alertSrv.set(n.data.message,"","success",3e3),n.data},function(n){if(401===n.status&&t.contextSrv.user.isSignedIn&&r)return t.loginPing().then(function(){return e.retry=1,t.request(e)});throw t.$timeout(t.requestErrorHandler.bind(t,n),50).catch(function(e){}),n})},e.prototype.addCanceler=function(e,t){e in this.inFlightRequests?this.inFlightRequests[e].push(t):this.inFlightRequests[e]=[t]},e.prototype.resolveCancelerIfExists=function(e){var t=this.inFlightRequests[e];!a.a.isUndefined(t)&&t.length&&t[0].resolve()},e.prototype.datasourceRequest=function(e){var t=this;e.retry=e.retry||0;var n=e.requestId;if(n){this.resolveCancelerIfExists(n);var r=this.$q.defer();e.timeout=r.promise,this.addCanceler(n,r)}var i=!e.url.match(/^http/),s=0===e.retry;return i&&(this.contextSrv.user&&this.contextSrv.user.orgId&&(e.headers=e.headers||{},e.headers["X-Grafana-Org-Id"]=this.contextSrv.user.orgId),0===e.url.indexOf("/")&&(e.url=e.url.substring(1)),e.headers&&e.headers.Authorization&&(e.headers["X-DS-Authorization"]=e.headers.Authorization,delete e.headers.Authorization),this.noBackendCache&&(e.headers["X-Grafana-NoCache"]="true")),this.$http(e).then(function(t){return e.silent||o.a.emit("ds-request-response",t),t}).catch(function(n){if(n.status===t.HTTP_REQUEST_CANCELLED)throw{err:n,cancelled:!0};if(i&&s&&401===n.status)return t.loginPing().then(function(){return e.retry=1,r&&r.resolve(),t.datasourceRequest(e)});throw a.a.isString(n.data)&&500===n.status&&(n.data={error:n.statusText,response:n.data}),n.data&&!n.data.message&&a.a.isString(n.data.error)&&(n.data.message=n.data.error),e.silent||o.a.emit("ds-request-error",n),n}).finally(function(){e.requestId&&t.inFlightRequests[e.requestId].shift()})},e.prototype.loginPing=function(){return this.request({url:"/api/login/ping",method:"GET",retry:1})},e.prototype.search=function(e){return this.get("/api/search",e)},e.prototype.searchExperiments=function(e){return this.get("/api/experiments/search",e)},e.prototype.searchSensors=function(e){return this.get("/api/sensors/search",e)},e.prototype.searchExperimentTags=function(e){return this.get("/api/experiments/tags/search",e)},e.prototype.getExperimentTree=function(e,t){return e=Number.parseInt(e),t=Number.parseInt(t),isNaN(e)&&(e=0),isNaN(t)&&(t=100),this.get("/api/experiments/tree?offset="+e+"&limit="+t)},e.prototype.updateExperimentTree=function(e){return this.request({method:"PUT",url:"/api/experiments/tree",data:e,showSuccessAlert:!1})},e.prototype.createExperiment=function(e){return this.post("/api/experiments",e)},e.prototype.updateExperiment=function(e,t){return this.put("/api/experiments/"+e,t)},e.prototype.updateExperimentSilent=function(e,t){return this.request({method:"PUT",url:"/api/experiments/"+e,data:t,showSuccessAlert:!1})},e.prototype.getExperiment=function(e){return this.get("/api/experiments/"+e)},e.prototype.deleteExperiment=function(e){return this.delete("/api/experiments/"+e)},e.prototype.experimentCreateVideoJob=function(e,t){return this.request({method:"POST",url:"/api/experiments/"+e+"/videojob",data:{filename:t},showSuccessAlert:!1})},e.prototype.experimentGetVideoJob=function(e){return this.request({method:"GET",url:"/api/experiments/"+e+"/videojob",showSuccessAlert:!1})},e.prototype.experimentAddSensors=function(e,t){var n={sensors:t};return this.post("/api/experiments/"+e+"/sensors",n)},e.prototype.experimentRemoveSensor=function(e,t){return this.delete("/api/experiments/"+e+"/sensors/"+t)},e.prototype.createExperimentFolder=function(e){return this.post("/api/experiments/folders",e)},e.prototype.updateExperimentFolder=function(e,t){return this.put("/api/experiments/folders/"+e,t)},e.prototype.getExperimentFolder=function(e){return this.get("/api/experiments/folders"+e)},e.prototype.deleteExperimentFolder=function(e){return this.delete("/api/experiments/folders/"+e)},e.prototype.createSensor=function(e){return e.position||(e.position=-1),this.post("/api/sensors",e)},e.prototype.updateSensor=function(e,t){return this.put("/api/sensors/"+e,t)},e.prototype.updateSensorSilent=function(e,t){return this.request({method:"PUT",url:"/api/sensors/"+e,data:t,showSuccessAlert:!1})},e.prototype.getSensor=function(e){return this.get("/api/sensors/"+e)},e.prototype.deleteSensor=function(e){return this.delete("/api/sensors/"+e)},e.prototype.getDashboardBySlug=function(e){return this.get("/api/dashboards/db/"+e)},e.prototype.getDashboardByUid=function(e){return this.get("/api/dashboards/uid/"+e)},e.prototype.getFolderByUid=function(e){return this.get("/api/folders/"+e)},e.prototype.saveDashboard=function(e,t){return t=t||{},this.post("/api/dashboards/db/",{dashboard:e,folderId:t.folderId,overwrite:!0===t.overwrite,message:t.message||""})},e.prototype.createFolder=function(e){return this.post("/api/folders",e)},e.prototype.updateFolder=function(e,t){return t=t||{},this.put("/api/folders/"+e.uid,{title:e.title,version:e.version,overwrite:!0===t.overwrite})},e.prototype.deleteFolder=function(e,t){return this.request({method:"DELETE",url:"/api/folders/"+e,showSuccessAlert:!0===t})},e.prototype.deleteDashboard=function(e,t){return this.request({method:"DELETE",url:"/api/dashboards/uid/"+e,showSuccessAlert:!0===t})},e.prototype.deleteFoldersAndDashboards=function(e,t){for(var n=[],r=0,a=e;r<a.length;r++){var i=a[r];n.push(this.createTask(this.deleteFolder.bind(this),!0,i,!0))}for(var o=0,s=t;o<s.length;o++){var l=s[o];n.push(this.createTask(this.deleteDashboard.bind(this),!0,l,!0))}return this.executeInOrder(n,[])},e.prototype.moveDashboards=function(e,t){for(var n=[],r=0,i=e;r<i.length;r++){var o=i[r];n.push(this.createTask(this.moveDashboard.bind(this),!0,o,t))}return this.executeInOrder(n,[]).then(function(e){return{totalCount:e.length,successCount:a.a.filter(e,{succeeded:!0}).length,alreadyInFolderCount:a.a.filter(e,{alreadyInFolder:!0}).length}})},e.prototype.moveDashboard=function(e,t){var n=this,r=this.$q.defer();return this.getDashboardByUid(e).then(function(e){var a=new s.a(e.dashboard,e.meta);if(!e.meta.folderId&&0===t.id||e.meta.folderId===t.id)return void r.resolve({alreadyInFolder:!0});var i=a.getSaveModelClone(),o={folderId:t.id,overwrite:!1};n.saveDashboard(i,o).then(function(){r.resolve({succeeded:!0})}).catch(function(e){e.data&&"plugin-dashboard"===e.data.status?(e.isHandled=!0,o.overwrite=!0,n.saveDashboard(i,o).then(function(){r.resolve({succeeded:!0})}).catch(function(e){r.resolve({succeeded:!1})})):r.resolve({succeeded:!1})})}),r.promise},e.prototype.createTask=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];return function(r){return e.apply(null,n).then(function(e){return Array.prototype.concat(r,[e])}).catch(function(e){if(t)return r;throw e})}},e.prototype.executeInOrder=function(e,t){return e.reduce(this.$q.when,t)},e}();i.a.service("backendSrv",l)},function(e,t,n){"use strict";function r(e){if(i.a.isArray(e))return e.map(r);if(i.a.isPlainObject(e)){for(var t={},n=0,a=i.a.keys(e).sort();n<a.length;n++){var o=a[n];t[o]=r(e[o])}return t}return e}t.a=r;var a=n(4),i=n.n(a)},function(e,t,n){"use strict";function r(e){return i.a.isString(e)&&(e=parseInt(e.replace("px",""),10)),e<o.g&&(e=o.g),Math.ceil(e/(o.c+o.d))}n.d(t,"a",function(){return l});var a=n(4),i=n.n(a),o=n(315),s=n(319),l=function(){function e(e){this.dashboard=e}return e.prototype.updateSchema=function(e){var t,n,r,a,o=this.dashboard.schemaVersion,s=[];if(this.dashboard.schemaVersion=16,o!==this.dashboard.schemaVersion){if(o<2&&(e.services&&e.services.filter&&(this.dashboard.time=e.services.filter.time,this.dashboard.templating.list=e.services.filter.list||[]),s.push(function(e){"graphite"===e.type&&(e.type="graph"),"graph"===e.type&&(i.a.isBoolean(e.legend)&&(e.legend={show:e.legend}),e.grid&&(e.grid.min&&(e.grid.leftMin=e.grid.min,delete e.grid.min),e.grid.max&&(e.grid.leftMax=e.grid.max,delete e.grid.max)),e.y_format&&(e.y_formats||(e.y_formats=[]),e.y_formats[0]=e.y_format,delete e.y_format),e.y2_format&&(e.y_formats||(e.y_formats=[]),e.y_formats[1]=e.y2_format,delete e.y2_format))})),o<3){var l=this.dashboard.getNextPanelId();s.push(function(e){e.id||(e.id=l,l+=1)})}if(o<4&&s.push(function(e){"graph"===e.type&&(i.a.each(e.aliasYAxis,function(t,n){e.seriesOverrides=[{alias:n,yaxis:t}]}),delete e.aliasYAxis)}),o<6){var c=i.a.find(e.pulldowns,{type:"annotations"});for(c&&(this.dashboard.annotations={list:c.annotations||[]}),t=0;t<this.dashboard.templating.list.length;t++){var d=this.dashboard.templating.list[t];void 0===d.datasource&&(d.datasource=null),"filter"===d.type&&(d.type="query"),void 0===d.type&&(d.type="query"),void 0===d.allFormat&&(d.allFormat="glob")}}if(o<7&&(e.nav&&e.nav.length&&(this.dashboard.timepicker=e.nav[0]),s.push(function(e){i.a.each(e.targets,function(t){t.refId||(t.refId=this.dashboard.getNextQueryLetter(e))}.bind(this))})),o<8&&s.push(function(e){i.a.each(e.targets,function(e){e.fields&&e.tags&&e.groupBy&&(e.rawQuery?(delete e.fields,delete e.fill):(e.select=i.a.map(e.fields,function(e){var t=[];return t.push({type:"field",params:[e.name]}),t.push({type:e.func,params:[]}),e.mathExpr&&t.push({type:"math",params:[e.mathExpr]}),e.asExpr&&t.push({type:"alias",params:[e.asExpr]}),t}),delete e.fields,i.a.each(e.groupBy,function(e){"time"===e.type&&e.interval&&(e.params=[e.interval],delete e.interval),"tag"===e.type&&e.key&&(e.params=[e.key],delete e.key)}),e.fill&&(e.groupBy.push({type:"fill",params:[e.fill]}),delete e.fill)))})}),o<9&&s.push(function(e){if(("singlestat"===e.type||""===e.thresholds)&&e.thresholds){var t=e.thresholds.split(",");t.length>=3&&(t.shift(),e.thresholds=t.join(","))}}),o<10&&s.push(function(e){"table"===e.type&&i.a.each(e.styles,function(e){if(e.thresholds&&e.thresholds.length>=3){var t=e.thresholds;t.shift(),e.thresholds=t}})}),o<12&&i.a.each(this.dashboard.templating.list,function(e){e.refresh&&(e.refresh=1),e.refresh||(e.refresh=0),e.hideVariable?e.hide=2:e.hideLabel&&(e.hide=1)}),o<12&&s.push(function(e){"graph"===e.type&&e.grid&&(e.yaxes||(e.yaxes=[{show:e["y-axis"],min:e.grid.leftMin,max:e.grid.leftMax,logBase:e.grid.leftLogBase,format:e.y_formats[0],label:e.leftYAxisLabel},{show:e["y-axis"],min:e.grid.rightMin,max:e.grid.rightMax,logBase:e.grid.rightLogBase,format:e.y_formats[1],label:e.rightYAxisLabel}],e.xaxis={show:e["x-axis"]},delete e.grid.leftMin,delete e.grid.leftMax,delete e.grid.leftLogBase,delete e.grid.rightMin,delete e.grid.rightMax,delete e.grid.rightLogBase,delete e.y_formats,delete e.leftYAxisLabel,delete e.rightYAxisLabel,delete e["y-axis"],delete e["x-axis"]))}),o<13&&s.push(function(e){if("graph"===e.type&&e.grid){e.thresholds=[];var t={},n={};null!==e.grid.threshold1&&(t.value=e.grid.threshold1,e.grid.thresholdLine?(t.line=!0,t.lineColor=e.grid.threshold1Color,t.colorMode="custom"):(t.fill=!0,t.fillColor=e.grid.threshold1Color,t.colorMode="custom")),null!==e.grid.threshold2&&(n.value=e.grid.threshold2,e.grid.thresholdLine?(n.line=!0,n.lineColor=e.grid.threshold2Color,n.colorMode="custom"):(n.fill=!0,n.fillColor=e.grid.threshold2Color,n.colorMode="custom")),i.a.isNumber(t.value)&&(i.a.isNumber(n.value)?t.value>n.value?(t.op=n.op="lt",e.thresholds.push(t),e.thresholds.push(n)):(t.op=n.op="gt",e.thresholds.push(t),e.thresholds.push(n)):(t.op="gt",e.thresholds.push(t))),delete e.grid.threshold1,delete e.grid.threshold1Color,delete e.grid.threshold2,delete e.grid.threshold2Color,delete e.grid.thresholdLine}}),o<14&&(this.dashboard.graphTooltip=e.sharedCrosshair?1:0),o<16&&this.upgradeToGridLayout(e),0!==s.length)for(n=0;n<this.dashboard.panels.length;n++)for(r=0;r<s.length;r++)if(s[r].call(this,this.dashboard.panels[n]),this.dashboard.panels[n].panels)for(a=0;a<this.dashboard.panels[n].panels.length;a++)s[r].call(this,this.dashboard.panels[n].panels[a])}},e.prototype.upgradeToGridLayout=function(e){var t=0,n=o.e/12,a=i.a.max(i.a.flattenDeep(i.a.map(e.rows,function(e){return i.a.map(e.panels,"id")}))),l=a+1;if(e.rows)for(var d=i.a.some(e.rows,function(e){return e.collapse||e.showTitle||e.repeat}),u=0,p=e.rows;u<p.length;u++){var f=p[u];if(!f.repeatIteration){var m=f.height||o.b,h=r(m),g={},b=void 0;d&&(g.id=l,g.type="row",g.title=f.title,g.collapsed=f.collapse,g.repeat=f.repeat,g.panels=[],g.gridPos={x:0,y:t,w:o.e,h:h},b=new s.a(g),l++,t++);for(var v=new c(h,o.e,t),y=0,w=f.panels;y<w.length;y++){var x=w[y];
11x.span=x.span||o.a,x.minSpan&&(x.minSpan=Math.min(o.e,o.e/12*x.minSpan));var k=Math.floor(x.span)*n,_=x.height?r(x.height):h,E=v.getPanelPosition(_,k);t=v.yPos,x.gridPos={x:E.x,y:t+E.y,w:k,h:_},v.addPanel(x.gridPos),delete x.span,b&&g.collapsed?b.panels.push(x):this.dashboard.panels.push(new s.a(x))}b&&this.dashboard.panels.push(b),b&&g.collapsed||(t+=h)}}},e}(),c=function(){function e(e,t,n){void 0===t&&(t=o.e),void 0===n&&(n=0),this.area=new Array(t).fill(0),this.yPos=n,this.height=e}return e.prototype.reset=function(){this.area.fill(0)},e.prototype.addPanel=function(e){for(var t=e.x;t<e.x+e.w;t++)(!this.area[t]||e.y+e.h-this.yPos>this.area[t])&&(this.area[t]=e.y+e.h-this.yPos);return this.area},e.prototype.getPanelPosition=function(e,t,n){void 0===n&&(n=!1);for(var r,a,o=this.area.length-1;o>=0&&this.height-this.area[o]>0;o--)if(void 0===a)a=o;else{if(!(o<this.area.length-1&&this.area[o]<=this.area[o+1]))break;r=o}return void 0!==r&&void 0!==a&&a-r>=t-1?{x:r,y:i.a.max(this.area.slice(r))}:n?null:(this.yPos+=this.height,this.reset(),this.getPanelPosition(e,t,!0))},e}()},function(e,t,n){"use strict";var r=n(27),a=n.n(r),i=n(2),o=function(){function e(e,t){this.$compile=e,this.$rootScope=t}return e.$inject=["$compile","$rootScope"],e.prototype.addDirective=function(e,t,n){var r=a.a.element(document.createElement(t));this.$compile(r)(n),e.empty(),e.append(r)},e.prototype.link=function(e,t,n,r){var a=this;r.directive(e).then(function(r){if(!r||!r.fn)return void t.empty();r.fn.registered||(i.a.directive(n.$normalize(r.name),r.fn),r.fn.registered=!0),a.addDirective(t,r.name,e)}).catch(function(e){console.log("Plugin load:",e),a.$rootScope.appEvent("alert-error",["Plugin error",e.toString()])})},e.prototype.create=function(e){var t=this;return{restrict:"E",scope:e.scope,link:function(n,r,a){if(e.watchPath){var i=null;n.$watch(e.watchPath,function(){i&&i.$destroy(),i=n.$new(),t.link(i,r,a,e)})}else t.link(n,r,a,e)}}},e}();i.a.service("dynamicDirectiveSrv",o)},function(e,t,n){"use strict";var r=n(2),a=n(22),i=n(112),o=n(70),s=n(198),l=function(){function e(e,t,n,r,a){this.$location=e,this.$timeout=t,this.$window=n,this.$rootScope=r,this.$route=a,this.fullPageReloadRoutes=["/logout"]}return e.$inject=["$location","$timeout","$window","$rootScope","$route"],e.prototype.init=function(){var e=this;this.$rootScope.$on("$routeUpdate",function(t,n){var r=e.$location.url();i.b.view.currentUrl!==r&&i.b.view.updatePathAndQuery(e.$location.path(),e.$location.search(),e.$route.current.params)}),this.$rootScope.$on("$routeChangeSuccess",function(t,n){i.b.view.updatePathAndQuery(e.$location.path(),e.$location.search(),e.$route.current.params)}),Object(o.reaction)(function(){return i.b.view.currentUrl},function(t){var n=e.$location.url(),r=s.b.stripBaseFromUrl(t);n!==r&&(e.$timeout(function(){e.$location.url(r)}),console.log("store updating angular $location.url",r))}),a.a.on("location-change",function(t){var n=s.b.stripBaseFromUrl(t.href);if(e.fullPageReloadRoutes.indexOf(n)>-1)return void(e.$window.location.href=t.href);e.$timeout(function(){e.$location.url(n)})})},e}();r.a.service("bridgeSrv",l)},function(e,t,n){"use strict";var r=n(2),a=function(){function e(e){this.backendSrv=e}return e.prototype.search=function(e){var t=this;return this.backendSrv.get("/api/experiments/search",e).then(function(e){return t.handleSearchResults(e)})},e.prototype.handleSearchResults=function(e){var t=this;return console.log("handleSearchResults()",e),e.results.map(function(e){e.created=new Date(e.created),"0001-01-01T00:00:00Z"===e.tZero?e.tZero=null:e.tZero=new Date(e.tZero),"folder"===e.type?(e.icon="fa fa-folder",e.items=[],e.toggle=t.toggleFolder.bind(t)):e.icon="fa fa-flask"}),e},e.prototype.toggleFolder=function(e){var t=this;if(e.expanded=!e.expanded,e.icon=e.expanded?"fa fa-folder-open":"fa fa-folder",e.items.length)return Promise.resolve(e);var n={folderIds:[e.id]};return this.backendSrv.get("/api/experiments/search",n).then(function(n){return n=t.handleSearchResults(n),e.items=n.results,Promise.resolve(e)})},e}();r.a.service("experimentsSearchSrv",a)},function(e,t,n){"use strict";var r=n(2),a=function(){function e(e,t,n){this.$q=e,this.backendSrv=t,this.$routeParam
11s=n,this.cache={},this.rootObjectCount=-1,this.rootObjectRequests=[]}return e.$inject=["$q","backendSrv","$routeParams"],e.prototype.getCurrentId=function(){return this.$routeParams.experimentId},e.prototype.getCurrent=function(){var e=this.getCurrentId();return e?this.get(e):new Promise(function(e,t){t("Experiment id missing.")})},e.prototype.get=function(e){var t=this;return new Promise(function(n,r){if(!t.cache[e])return t.backendSrv.getExperiment(e).then(function(r){t.cache[e]=r,n(r)},function(e){r(e)});n(t.cache[e])})},e.prototype.setRootObjectCount=function(e){this.rootObjectCount=e;for(var t=0,n=this.rootObjectRequests;t<n.length;t++){n[t].resolve(e)}this.rootObjectRequests=[]},e.prototype.getRootObjectCount=function(){if(-1!==this.rootObjectCount)return this.$q.resolve(this.rootObjectCount);var e=this.$q.defer();return this.rootObjectRequests.push(e),e.promise},e.prototype.clearCache=function(){this.cache={}},e}();r.a.service("experimentSrv",a)},function(e,t,n){"use strict";var r=n(2),a=function(){function e(e,t){this.backendSrv=e,this.$q=t,this.map={}}return e.$inject=["backendSrv","$q"],e.prototype.init=function(){var e=this;return this.$q(function(t,n){e.backendSrv.searchSensors().then(function(n){for(var r=0,a=n;r<a.length;r++){var i=a[r];e.map[i.shortName.toLowerCase()]=i}t()})})},e.prototype.get=function(e){var t=e.toLowerCase();return this.map[t]},e.prototype.getAll=function(){return this.map},e}();r.a.service("sensorSrv",a)},function(e,t,n){"use strict";var r=n(2),a=function(){function e(e,t){this.$q=e,this.$http=t,this.request=null}return e.$inject=["$q","$http"],e.prototype.getUrl=function(){var e=this;return"getcurve.io"!==window.location.hostname?Promise.resolve("https://curve-ops.s3.amazonaws.com/Curve-0.9.39-VAST.mlappinstall"):this.request?this.request:(this.request=this.$q(function(t,n){var r="https://curve-ops.s3.amazonaws.com/update.json?r="+Math.random();e.$http.get(r).then(function(e){e&&e.data&&e.data.url?t(e.data.url):n("Plugin URL: Invalid response.")},function(e){throw new Error("Couldn't fetch update.json")})}),this.request)},e}();r.a.service("matlabPluginSrv",a)},function(e,t,n){"use strict";function r(e){e.init()}r.$inject=["freshchatSrv"];var a=n(2),i=function(){function e(e,t,n){this.$rootScope=e,this.contextSrv=t,this.$window=n}return e.$inject=["$rootScope","contextSrv","$window"],e.prototype.init=function(){},e}();a.a.service("freshchatSrv",i).run(r)},function(e,t,n){"use strict";function r(e){e.init()}r.$inject=["mixpanelSrv"];var a=n(2),i=function(){function e(e,t,n){this.$rootScope=e,this.contextSrv=t,this.$window=n}return e.$inject=["$rootScope","contextSrv","$window"],e.prototype.init=function(){var e=this;this.$rootScope.$on("$viewContentLoaded",function(){if(e.contextSrv.isSignedIn&&e.contextSrv.user&&e.contextSrv.user.id){e.$window.mixpanel.identify(""+e.contextSrv.user.id);var t={$email:e.contextSrv.user.email,$last_name:e.contextSrv.user.name};e.$window.mixpanel.people.set(t)}})},e}();a.a.service("mixpanelSrv",i).run(r)},function(e,t,n){"use strict";function r(e){var t=function(t,n){var r;return r=n.ctrl?(n.ctrl.panel||n.ctrl.row).scopedVars:n.row.scopedVars,e.replaceWithText(t,r)};return t.$stateful=!0,t}r.$inject=["templateSrv"];var a=n(4),i=n.n(a),o=n(27),s=n.n(o),l=n(0),c=n.n(l),d=n(2);d.a.filter("stringSort",function(){return function(e){return e.sort()}}),d.a.filter("slice",function(){return function(e,t,n){if(!i.a.isUndefined(e))return e.slice(t,n)}}),d.a.filter("stringify",function(){return function(e){return i.a.isObject(e)&&!i.a.isArray(e)?s.a.toJson(e):i.a.isNull(e)?null:e.toString()}}),d.a.filter("moment",function(){return function(e,t){switch(t){case"ago":return c()(e).fromNow()}return c()(e).fromNow()}}),d.a.filter("prettydate",function(){return function(e,t){return"short"===t?c()(e).format("L"):c()(e).format("LL")}}),d.a.filter("noXml",function(){var e=function(e){return i.a.isString(e)?e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/'/g,"'").replace(/"/g,"""):e};return function(t){return i.a.isArray(t)?i.a.map(t,e):e(t)}}),d.a.filter("interpolateTemplateVars",r)},function(e,t,n){"use strict";var r=n(17),a=n.n(r),i=n(4),o=n.n(i),s=n(23),l=n(2),c=n(22),d=n(198),u=n(518),p=n.n(u),f=n(519),m=(n.n(f),this&&this.__assign||function(){return m=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++){t=arguments[n];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},m.apply(this,arguments)}),h=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Prom
11ise))(function(a,i){function o(e){try{l(r.next(e))}catch(e){i(e)}}function s(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){e.done?a(e.value):new n(function(t){t(e.value)}).then(o,s)}l((r=r.apply(e,t||[])).next())})},g=this&&this.__generator||function(e,t){function n(e){return function(t){return r([e,t])}}function r(n){if(a)throw new TypeError("Generator is already executing.");for(;l;)try{if(a=1,i&&(o=2&n[0]?i.return:n[0]?i.throw||((o=i.return)&&o.call(i),0):i.next)&&!(o=o.call(i,n[1])).done)return o;switch(i=0,o&&(n=[2&n[0],o.value]),n[0]){case 0:case 1:o=n;break;case 4:return l.label++,{value:n[1],done:!1};case 5:l.label++,i=n[1],n=[0];continue;case 7:n=l.ops.pop(),l.trys.pop();continue;default:if(o=l.trys,!(o=o.length>0&&o[o.length-1])&&(6===n[0]||2===n[0])){l=0;continue}if(3===n[0]&&(!o||n[1]>o[0]&&n[1]<o[3])){l.label=n[1];break}if(6===n[0]&&l.label<o[1]){l.label=o[1],o=n;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(n);break}o[2]&&l.ops.pop(),l.trys.pop();continue}n=t.call(e,l)}catch(e){n=[6,e],i=0}finally{a=o=0}if(5&n[0])throw n[1];return{value:n[0]?n[1]:void 0,done:!0}}var a,i,o,s,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return s={next:n(0),throw:n(1),return:n(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s},b=function(){function e(e,t,n,r,a){var i=this;this.$rootScope=e,this.$location=t,this.datasourceSrv=n,this.timeSrv=r,this.contextSrv=a,this.modalOpen=!1,this.timepickerOpen=!1,e.$on("$routeChangeSuccess",function(){p.a.reset(),i.setupGlobal()}),this.setupGlobal(),c.a.on("show-modal",function(){return i.modalOpen=!0}),e.onAppEvent("timepickerOpen",function(){return i.timepickerOpen=!0}),e.onAppEvent("timepickerClosed",function(){return i.timepickerOpen=!1})}return e.$inject=["$rootScope","$location","datasourceSrv","timeSrv","contextSrv"],e.prototype.setupGlobal=function(){this.bind(["?","h"],this.showHelpModal),this.bind("g h",this.goToHome),this.bind("g a",this.openAlerting),this.bind("g p",this.goToProfile),this.bind("s s",this.openSearchStarred),this.bind("s o",this.openSearch),this.bind("s t",this.openSearchTags),this.bind("f",this.openSearch),this.bindGlobal("esc",this.exit)},e.prototype.openSearchStarred=function(){c.a.emit("show-dash-search",{starred:!0})},e.prototype.openSearchTags=function(){c.a.emit("show-dash-search",{tagsMode:!0})},e.prototype.openSearch=function(){c.a.emit("show-dash-search")},e.prototype.openAlerting=function(){this.$location.url("/alerting")},e.prototype.goToHome=function(){this.$location.url("/")},e.prototype.goToProfile=function(){this.$location.url("/profile")},e.prototype.showHelpModal=function(){c.a.emit("show-modal",{templateHtml:"<help-modal></help-modal>"})},e.prototype.exit=function(){if(!(a()(".popover.in").length>0)){c.a.emit("hide-modal"),this.modalOpen?this.modalOpen=!1:this.timepickerOpen?(this.$rootScope.appEvent("closeTimepicker"),this.timepickerOpen=!1):this.$rootScope.appEvent("panel-change-view",{fullscreen:!1,edit:!1});var e=this.$location.search();e.editview&&(delete e.editview,this.$location.search(e))}},e.prototype.bind=function(e,t){var n=this;p.a.bind(e,function(e){return e.preventDefault(),e.stopPropagation(),e.returnValue=!1,n.$rootScope.$apply(t.bind(n))},"keydown")},e.prototype.bindGlobal=function(e,t){var n=this;p.a.bindGlobal(e,function(e){return e.preventDefault(),e.stopPropagation(),e.returnValue=!1,n.$rootScope.$apply(t.bind(n))},"keydown")},e.prototype.showDashEditView=function(){var e=o.a.extend(this.$location.search(),{editview:"settings"});this.$location.search(e)},e.prototype.setupDashboardBindings=function(e,t){var n=this;this.bind("mod+o",function(){t.graphTooltip=(t.graphTooltip+1)%3,c.a.emit("graph-hover-clear"),n.$rootScope.$broadcast("refresh")}),this.bind("mod+s",function(t){e.appEvent("save-dashboard")}),this.bind("t z",function(){e.appEvent("zoom-out",2)}),this.bind("ctrl+z",function(){e.appEvent("zoom-out",2)}),this.bind("t left",function(){e.appEvent("shift-time-backward")}),this.bind("t right",function(){e.appEvent("shift-time-forward")}),this.bind("e",function(){t.meta.focusPanelId&&t.meta.canEdit&&n.$rootScope.appEvent("panel-change-view",{fullscreen:!0,edit:!0,panelId:t.meta.focusPanelId,toggle:!0})}),this.bind("v",function(){t.meta.focusPanelId&&n.$rootScope.appEvent("panel-change-view",{fullscreen:!0,edit:null,panelId:t.meta.focusPanelId,toggle:!0})}),this.contextSrv.isEditor&&s.a.exploreEnabled&&this.bind("x",function(){return h(n,void 0,void 0,function(){var e,n,r,a,i;return g(this,function(o){switch(o.label){case 0:return t.meta.focusPanelId?(e=t.getPanelById(t.meta.focusPanelId),[4,this.datasourceSrv.get(e.datasource)]):[3,2];case 1:n=o.sent(),n&&n.supportsExplore&&(r=this.timeSrv.timeRangeForUrl(),a=m({},n.getExploreState(e),{range:r}),i=Object(d.c)(JSON.stringify(a)),this.$location.url("/explore/"+i)),o.label=2;case 2:return[2]}})})}),this.bind("p r",function(){t.meta.focusPanelId&&t.meta.canEdit&&(n.$rootScope.appEvent("panel-remove",{panelId:t.meta.focusPanelId}),t.meta.focusPanelId=0)}),this.bind("p d",function(){if(t.meta.focusPanelId&&t.meta.canEdit){var e=t.getPanelInfoById(t.meta.focusPanelId).index;t.duplicatePanel(t.panels[e])}}),this.bind("p s",function(){if(t.meta.focusPanelId){var n=e.$new(),r=t.getPanelInfoById(t.meta.focusPanelId);n.panel=r.panel,n.dashboard=t,c.a.emit("show-modal",{src:"public/app/features/dashboard/partials/shareModal.html",scope:n})}}),this.bind("d shift+c",function(){t.collapseRows()}),this.bind("d shift+e",function(){t.expandRows()}),this.bind("d n",function(e){n.$location.url("/dashboard/new")}),this.bind("d r",function(){n.$rootScope.$broadcast("refresh")}),this.bind("d s",function(){n.showDashEditView()}),this.bind("d k",function(){c.a.emit("toggle-kiosk-mode")}),this.bind("d v",function(){c.a.emit("toggle-view-mode")})},e}();l.a.service("keybindingSrv",b)},function(e,t,n){"use strict";function r(){return{restrict:"E",templateUrl:"public/app/core/components/help/help.html",controller:o,bindToController:!0,transclude:!0,controllerAs:"ctrl",scope:{}}}var a=n(2),i=n(22),o=function(){function e(){this.tabIndex=0,this.shortcuts={Global:[{keys:["g","h"],description:"Go to Home Dashboard"},{keys:["g","p"],description:"Go to Profile"},{keys:["s","o"],description:"Open search"},{keys:["s","s"],description:"Open search with starred filter"},{keys:["s","t"],description:"Open search in tags view"},{keys:["esc"],description:"Exit edit/setting views"}],Dashboard:[{keys:["mod+s"],description:"Save dashboard"},{keys:["d","r"],description:"Refresh all panels"},{keys:["d","s"],description:"Dashboard settings"},{keys:["d","v"],description:"Toggle in-active / view mode"},{keys:["d","k"],description:"Toggle kiosk mode (hides top nav)"},{keys:["d","E"],description:"Expand all rows"},{keys:["d","C"],description:"Collapse all rows"},{keys:["mod+o"],description:"Toggle shared graph crosshair"}],"Focused Panel":[{keys:["e"],description:"Toggle panel edit view"},{keys:["v"],description:"Toggle panel fullscreen view"},{keys:["p","s"],description:"Open Panel Share Modal"},{keys:["p","d"],description:"Duplicate Panel"},{keys:["p","r"],description:"Remove Panel"}],"Time Range":[{keys:["t","z"],description:"Zoom out time range"},{keys:["t",'<i class="fa fa-long-arrow-left"></i>'],description:"Move time range back"},{keys:["t",'<i class="fa fa-long-arrow-right"></i>'],description:"Move time range forward"}]}}return e.prototype.dismiss=function(){i.a.emit("hide-modal")},e}();a.a.directive("helpModal",r)},function(e,t,n){"use strict";function r(){return{restrict:"E",template:s,controller:l,bindToController:!0,controllerAs:"ctrl",scope:{userPicked:"&"},link:function(e,t,n,r){e.$on("user-picker-reset",function(){r.reset()})}}}var a=n(2),i=n(4),o=n.n(i),s='\n<div class="dropdown">\n <gf-form-dropdown model="ctrl.user"\n get-options="ctrl.debouncedSearchUsers($query)"\n css-class="gf-size-auto"\n on-change="ctrl.onChange($option)"\n </gf-form-dropdown>\n</div>\n',l=function(){function e(e){this.backendSrv=e,this.reset(),this.debouncedSearchUsers=o.a.debounce(this.searchUsers,500,{leading:!0,trailing:!1})}return e.$inject=["backendSrv"],e.prototype.searchUsers=function(e){return Promise.resolve(this.backendSrv.get("/api/users/search?perpage=10&page=1&query="+e).then(function(e){return o.a.map(e.users,function(e){return{text:e.login+" - "+e.email,value:e}})}))},e.prototype.onChange=function(e){this.userPicked({$user:e.value})}
11,e.prototype.reset=function(){this.user={text:"Choose",value:null}},e}();a.a.directive("userPicker",r)},function(e,t,n){"use strict";function r(){return{restrict:"E",template:s,controller:l,bindToController:!0,controllerAs:"ctrl",scope:{teamPicked:"&"},link:function(e,t,n,r){e.$on("team-picker-reset",function(){r.reset()})}}}var a=n(2),i=n(4),o=n.n(i),s='\n<div class="dropdown">\n <gf-form-dropdown model="ctrl.group"\n get-options="ctrl.debouncedSearchGroups($query)"\n css-class="gf-size-auto"\n on-change="ctrl.onChange($option)"\n </gf-form-dropdown>\n</div>\n',l=function(){function e(e){this.backendSrv=e,this.debouncedSearchGroups=o.a.debounce(this.searchGroups,500,{leading:!0,trailing:!1}),this.reset()}return e.$inject=["backendSrv"],e.prototype.reset=function(){this.group={text:"Choose",value:null}},e.prototype.searchGroups=function(e){return Promise.resolve(this.backendSrv.get("/api/teams/search?perpage=10&page=1&query="+e).then(function(e){return o.a.map(e.teams,function(e){return{text:e.name,value:e}})}))},e.prototype.onChange=function(e){this.teamPicked({$group:e.value})},e}();a.a.directive("teamPicker",r)},function(e,t,n){"use strict";function r(){return{restrict:"A",link:function(e,t,n){function r(){f.scroll()}var a=t.parent(),o=t;n.grafanaScrollbar&&"scrollonroot"===n.grafanaScrollbar&&(a=o),a.addClass(u),i()(d).appendTo(a),t.addClass(p);var l={root:a[0],scroller:o[0],bar:".baron__bar",barOnCls:"_scrollbar",scrollingCls:"_scrolling",track:".baron__track",direction:"v"},f=s()(l),m=0;c.a.on("dash-scroll",function(e){if(e.restore)return void(t[0].scrollTop=m);m=t[0].scrollTop,e.animate?t.animate({scrollTop:e.pos},500):t[0].scrollTop=e.pos},e),c.a.on("toggle-sidemenu",r,e),c.a.on("toggle-sidemenu-hidden",r,e),c.a.on("toggle-view-mode",r,e),c.a.on("toggle-kiosk-mode",r,e),c.a.on("toggle-inactive-mode",r,e),e.$on("$routeChangeSuccess",function(){m=0,t[0].scrollTop=0}),e.$on("$destroy",function(){f.dispose()})}}}var a=n(17),i=n.n(a),o=n(316),s=n.n(o),l=n(2),c=n(22),d='\n<div class="baron__track">\n <div class="baron__bar"></div>\n</div>\n',u="baron baron__root",p="baron__scroller";l.a.directive("grafanaScrollbar",r)},,,,,function(e,t,n){"use strict";function r(){return{restrict:"A",link:function(e,t,n){var r=0;i.a.on("dash-scroll",function(e){if(e.restore)return void(t[0].scrollTop=r);r=t[0].scrollTop,e.animate?t.animate({scrollTop:e.pos},500):t[0].scrollTop=e.pos},e),e.$on("$routeChangeSuccess",function(){r=0,t[0].scrollTop=0,t[0].focus()}),t[0].tabIndex=-1,t[0].focus()}}}var a=n(2),i=n(22);a.a.directive("pageScrollbar",r)},function(e,t,n){"use strict";function r(){return{restrict:"E",template:a,scope:{model:"="},transclude:{header:"?gfPageHeader",body:"gfPageBody"},link:function(e,t,n){console.log(e)}}}var a='\n<div class="scroll-canvas">\n <navbar model="model"></navbar>\n <div class="page-container">\n\t\t<div class="page-header">\n <h1>\n <i class="{{::model.node.icon}}" ng-if="::model.node.icon"></i>\n <img ng-src="{{::model.node.img}}" ng-if="::model.node.img"></i>\n {{::model.node.text}}\n </h1>\n\n <div class="page-header__actions" ng-transclude="header"></div>\n\t\t</div>\n\n <div class="page-body" ng-transclude="body">\n </div>\n </div>\n</div>\n';n(2).a.directive("gfPage",r)},function(e,t,n){"use strict";function r(){return{restrict:"E",template:s,controller:l,bindToController:!0,controllerAs:"ctrl",scope:{dismiss:"&"}}}var a=n(2),i=n(101),o=n(23),s='\n<div class="modal-body">\n\t<div class="modal-header">\n\t\t<h2 class="modal-header-title">\n\t\t\t<i class="fa fa-random"></i>\n\t\t\t<span class="p-l-1">Switch Organization</span>\n\t\t</h2>\n\n\t\t<a class="modal-header-close" ng-click="ctrl.dismiss();">\n\t\t\t<i class="fa fa-remove"></i>\n\t\t</a>\n\t</div>\n\n <div class="modal-content modal-content--has-scroll" grafana-scrollbar>\n <table class="filter-table form-inline">\n\t\t\t<thead>\n\t\t\t\t<tr>\n\t\t\t\t\t<th>Name</th>\n\t\t\t\t\t<th>Role</th>\n\t\t\t\t\t<th></th>\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t\t<tbody>\n\t\t\t\t<tr ng-repeat="org in ctrl.orgs">\n\t\t\t\t\t<td>{{org.name}}</td>\n\t\t\t\t\t<td>{{org.role}}</td>\n\t\t\t\t\t<td class="text-right">\n\t\t\t\t\t\t<span class="btn btn-primary btn-mini" ng-show="org.orgId === ctrl.currentOrgId">\n\t\t\t\t\t\t\tCurrent\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<a ng-click="ctrl.setUsingOrg(org)" class="btn btn-inverse btn-mini" ng-show="org.orgId !== ctrl.currentOrgId">\n\t\t\t\t\t\t\tSwitch to\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</tbody>\n\t\t</table>\n\t</div>\n</div>',l=function(){function e(e){this.backendSrv=e,this.currentOrgId=i.a.user.orgId,this.getUserOrgs()}return e.$inject=["backendSrv"],e.prototype.getUserOrgs=function(){var e=this;this.backendSrv.get("/api/user/orgs").then(function(t){e.orgs=t})},e.prototype.setUsingOrg=function(e){var t=this;return this.backendSrv.post("/api/user/using/"+e.orgId).then(function(){t.setWindowLocation(o.a.appSubUrl+(o.a.appSubUrl.endsWith("/")?"":"/")+"?orgId="+e.orgId)})},e.prototype.setWindowLocation=function(e){window.location.href=e},e}();a.a.directive("orgSwitcher",r)},function(e,t,n){"use strict";function r(){Object(a.a)("passwordStrength",i.a,["password"]),Ob
11ject(a.a)("pageHeader",o.a,["model","noTabs"]),Object(a.a)("tree",f.a,["dragStart","dragEnd","searchterm","searchinprogress","searcherror","tree","handleChange","onEdit","onAdd","onView","matlabPluginUrlClick"]),Object(a.a)("emptyListCta",s.a,["model"]),Object(a.a)("loginBackground",l.a,[]),Object(a.a)("searchResult",c.a,[]),Object(a.a)("tagFilter",d.a,["tags",["onSelect",{watchDepth:"reference"}],["tagOptions",{watchDepth:"reference"}]]),Object(a.a)("selectUserPicker",u.a,["backendSrv","handlePicked"]),Object(a.a)("dashboardPermissions",p.a,["backendSrv","dashboardId","folder"])}t.a=r;var a=n(203),i=n(1279),o=n(122),s=n(1280),l=n(1281),c=n(1282),d=n(1283),u=n(521),p=n(1289),f=n(1301)},function(e,t,n){"use strict";n.d(t,"a",function(){return o});var r=n(3),a=n.n(r),i=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),o=function(e){function t(t){return e.call(this,t)||this}return i(t,e),t.prototype.render=function(){var e=this.props.password,t="strength: strong like a bull.",n="password-strength-good";return e?(e.length<=8&&(t="strength: you can do better.",n="password-strength-ok"),e.length<4&&(t="strength: weak sauce.",n="password-strength-bad"),a.a.createElement("div",{className:"password-strength small "+n},a.a.createElement("em",null,t))):null},t}(a.a.Component)},function(e,t,n){"use strict";var r=n(3),a=n.n(r),i=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.render=function(){var e=this.props.model,t=e.title,n=e.buttonIcon,r=e.buttonLink,i=e.buttonTitle,o=e.proTip,s=e.proTipLink,l=e.proTipLinkTitle,c=e.proTipTarget;return a.a.createElement("div",{className:"empty-list-cta"},a.a.createElement("div",{className:"empty-list-cta__title"},t),a.a.createElement("a",{href:r,className:"empty-list-cta__button btn btn-xlarge btn-success"},a.a.createElement("i",{className:n}),i),a.a.createElement("div",{className:"empty-list-cta__pro-tip"},a.a.createElement("i",{className:"fa fa-rocket"})," ProTip: ",o,a.a.createElement("a",{className:"text-link empty-list-cta__pro-tip-link",href:s,target:c},l)))},t}(r.Component);t.a=o},function(e,t,n){"use strict";function r(e){var t=e.x,n=e.y,r=e.flipIndex,a=n*d+t,o=i(t,n);return s.a.createElement("div",{className:"login-bg__item "+(r===a?"login-bg-flip":""),key:a,style:{background:o}})}function a(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(Math.random()*(t-e))+e}function i(e,t){var n=["#14161A","#111920","#121E27","#13212B","#122029","#101C24","#0F1B23","#0F1B22","#111C24","#101A22","#101A21","#111D25","#101E27","#101D26","#101B23","#11191E","#131519","#131518","#101B21","#121F29","#10232D","#11212B","#0E1C25","#0E1C24","#111F29","#11222B","#101E28","#102028","#111F2A","#11202A","#11191F","#121417","#12191D","#101D25","#11212C","#10242F","#0F212B","#0F1E27","#0F1D26","#0F1F29","#0F2029","#11232E","#10212B","#10222C","#0F202A","#112530","#10252F","#0F242E","#10222D","#10202A","#0F1C24","#0F1E28","#0F212A","#0F222B","#14171A","#0F1A20","#0F1C25","#10232E","#0E202A","#0E1E27","#0E1D26","#0F202B","#11232F","#102632","#102530","#122430","#0F1B21","#0F212C","#0E1
11F29","#112531","#0F2734","#0F2835","#0D1B23","#0F1A21","#0F1A23","#0F1D27","#0F222D","#102430","#102531","#10222E","#0F232D","#0E2633","#0E2734","#0F2834","#0E2835","#0F2633","#0F2532","#0E1A22","#0D1C24","#0F2735","#0F2937","#102A38","#112938","#102A39","#0F2A38","#102836","#0E1B23","#0F2938","#102A3A","#102D3D","#0F3040","#102D3E","#0F2E3E","#112C3B","#102B3B","#102B3A","#102D3C","#0F2A39","#0F2634","#0E2029","#0E1A21","#0F2B39","#0F2D3D","#0F2F40","#0E3142","#113445","#122431","#102E3E","#0F3345","#0E2F40","#0F3143","#102C3C","#0F2B3A","#0F1F28","#0F3344","#113548","#113C51","#144258","#103A4E","#103A4F","#103547","#10364A","#103649","#0F3448","#102C3A","#0F2836","#103447","#0F384C","#123F55","#15445A","#133F55","#103B50","#113E54","#103446","#0F3A4F","#0F3548","#0D3142","#102C3B","#0E2937","#103D52","#0E3544","#184C65","#154760","#14435B","#15465F","#124159","#0F3D53","#103C51","#0F3447","#0E3243","#113143","#113D53","#184B64","#184D67","#184C66","#174A63","#15455C","#13425A","#14445A","#10384C","#0E3446","#10181E","#103243","#0F384D","#14455C","#164761","#164C66","#1D627D","#12425A","#164A63","#14465D","#13435A","#0A2B38","#0F3446","#0D2F40","#0D2F3F","#0F2531","#102937","#10384B","#0F3649","#184E68","#1A5472","#184D68","#154A63","#19506B","#19536F","#1A4F69","#144760","#114058","#0E3A4F","#0E3547","#0C3042","#0E1B24","#11222C","#154C65","#1A5776","#1B5675","#113847","#1A5371","#194E68","#0E2D3D","#112D3B","#113D52","#18516D","#1A5979","#1B5878","#19526E","#1A526E","#13435B","#0F3E55","#0B374C","#0E3448","#0D2E3F","#0F2B3B","#112E3E","#113B50","#15465D","#1A526F","#1E5E81","#1D5B7B","#1A5777","#154456","#113949","#0D394E","#0F3549","#0F2C3B","#0E2733","#112E3D","#123D52","#10394C","#1B5674","#1A5370","#144861","#104058","#104159","#0E384C","#0D2D3D","#0E2533","#112C3A","#1B5979","#1B5C7D","#1A5675","#104057","#0F3C51","#11425A","#0E394D","#0C3243","#0E2735","#112F3E","#134158","#1D5E7F","#1D6083","#1C5877","#1A5573","#184D66","#164962","#0F3D54","#0E3D53","#0E3447","#0F2A3A","#0F2936","#101F28","#103040","#124056","#164E69","#144B64","#164D66","#0F3E54","#0E3B51","#0D3346","#0E1F27","#124158","#164961","#0E3C52","#19506C","#0F2C3C","#0E3244","#0E2A39","#0E2938","#113040","#134057","#1A5471","#154B63","#1C597A","#164760","#10374B","#0E374C","#0E384D","#11242F","#10394D","#18526E","#154B65","#103F55","#0D3345","#102532","#102029","#113142","#1B5973","#1A516B","#1C5979","#1C5A7A","#184A65","#164C65","#0D3041","#123142","#123E54","#1B5877","#1A5574","#1C5878","#13435C","#0F374B","#0C3143","#112F40","#123C51","#174E68","#1D5C7D","#14465F","#0F3F56","#0B3041","#123243","#15435B","#19516D","#1D5D7E","#1C5C7D","#184F69","#11374B","#103E54","#0E3143","#0F2D3C","#11242E","#133445","#1A5674","#1D6184","#1F658B","#0D3A50","#0C374B","#154862","#164B64","#154961","#0D384D","#102631","#113242","#134259","#185270","#1D6386","#1E678C","#1C5978","#0D3549","#0F2632","#184961","#1D5E80","#1E6488","#1F678D","#1E5B7C","#164862","#19526D","#113C52","#15455E","#0F2F3F","#144259","#194D67","#1D6991","#195777","#19516C","#103F56","#144660","#0D2E3E","#10212A","#113141","#16455C","#1D5B7C","#1F6589","#1E668C","#1E5F81","#0F3B50","#0D3244","#164A64","#184E69","#0E364A","#0E2E3E","#10222B","#19475E","#1B5A7B","#1E5D7F","#1E678D","#1E6184","#19506A","#1B5370","#1B5573","#0E3041","#122E3E","#16455B","#195370","#1D6489","#1D6B93","#164A65","#154A64","#1A5572","#1D6082","#1F6286","#1D6C94","#1E709A","#174A65","#1B526F","#1E6589","#1D6384","#0D3143","#0E2F3F","#174760","#1F6487","#1D668C","#0D2F41","#103B4F","#1C5C7E","#1F688F","#1C5B7C","#164D68","#1D6285","#0D364A","#1D5A7A","#1E6990","#1D6488","#18516B","#1A506B","#0E3B50","#0E3548","#124259","#13455C","#14485F","#1E5C7D","#122D3C","#1E6E98","#1E6A91","#1E6286","#1E6C95","#1D6990","#101F29","#174A62","#10394E","#1D6D96","#1E688E","#1D6E97","#1E6C94","#0E394E","#112B39","#195270","#1E668B","#1E6386","#1D6385","#0C3142","#1E6083","#1E729C","#1F709A","#1E6F98","#1D5F81","#1F688D","#1C6488","#1D6588","#1C6A93","#1E658B","#1F6C95","#0D3C52","#1C6385","#1E5F82","#0E3D54","#0F3244","#18485F","#1E6991","#1C5B7B","#1F6082","#0F3346","#18536F","#114056","#1D6B92","#1B5776","#0F3C52","#1E6890","#1F688E","#0C394E","#0F1D25","#1F6386","#1E688D","#1F6488","#20668C","#1D5978","#0F3D52","#0F1E26","#13465F","#0D374C","#1B5C7C","#0E1A23","#0F374A","#1B5574","#0F394C","#0E2A38","#102A37","#18506B","#1E5A7A","#0F3245","#0E2E3F","#1E678E","#1C5D7E","#1A5A7A","#0E2837","#102733","#0F3B51","#15475E","#1E6B93","#1E648A","#194961","#0F3A4E","#0E1D25","#194F69","#103345","#0F394D","#102B39","#103E55","#1B5572","#164861","#174861","#113B4F","#102936","#0F3041","#174961","#113E53","#134056","#124057","#194B63","#0E364B","#15445B","#16475E","#102F3F","#16485F","#0F2E3D","#101920","#12222C","#122C3B","#144157","#123B50","#16465D","#184960","#112B3A","#12232F","#132430","#113344","#11394C","#113649","#11364A","#133F56","#121D25","#112733","#112A38","#0F1F2A","#113447","#113A4E","#0F222C","#13222B","#112836","#102F3E","#113243","#123445","#12374B","#121E26","#122531","#11303F","#0D1D25","#102835","#112834","#101C23","#111C23","#12212B","#11222D","#0E1B22","#0E1D27","#121C22","#12202A","#101A20","#13191E","#111E28","#11212D","#0F1B24","#0F1C23","#13181D","#15171A","#121D23","#121F27","#111E27","#101B22","#121F28","#111E26","#101D24","#111C22","#12161E","#101925","#121E2D","#112033","#111E2F","#0F1B29","#0F1A28","#101B2A","#0E1A27","#101C2B","#111D2D","#111D2B","#0F1B28","#101923","#13161D","#13161C","#0F1A26","#101E2F","#112235","#102031","#0F1B2A","#112031","#102032","#101D2E","#121F2F","#112133","#101E30","#101F30","#102336","#101B2C","#0F1C2B","#111E2E","#0F2134","#102236","#0F2133","#101F31","#0F2438","#102337","#102235","#102133","#11171E","#101F2F","#102030","#102234","#102132","#12181F","#0F1A25","#0F2135","#0F1F30","#0F1C2D","#101D2C","#0F2033","#0E2338","#0F2237","#0F2236","#0B243B","#0D2338","#0E1A26","#0F1D2E","#0F2032","#0D2339","#0B253F","#0A253F","#0A253E","#0C2439","#0E1925","#0E2135","#0F2235","#0A243A","#08253E","#09253E","#0A263F","#0A243C","#0B233B","#0E1A28","#0D1A26","#09253F","#0A2743","#0B2844","#0B2641","#0A2744","#0A2844","#0B2743","#092745","#0F2337","#101D2D","#092743","#092846","#0E2B4C","#102E4F","#0E2C4D","#0B2A49","#082947","#0D2B4B","#0C2A4A","#092946","#082845","#0C2B4B","#0F2D4E","#103051","#133257","#0E2D4E","#143156","#112F51","#0B243A","#082744","#092844","#123054","#143359","#173A64","#183F6E","#173F6D","#153961","#163962","#133358","#15345B","#14345A","#102F50","#0A2948","#082844","#092641","#16375F","#193C69","#174170","#173E6B","#163A63","#173D69","#183D6A","#15365E","#112E50","#0A2A49","#082743","#0E1927","#173C68","#13487E","#164476","#174375","#193F6F","#173B66","#163B65","#082A48","#0A2641","#09243C","#174171","#14477C","#124980","#14487F","#174374","#15467B","#184172","#17406F","#184070","#163C67","#16355D","#123256","#0E1B29","#0F1923","#113052","#184274","#164579","#13477C","#193E6D","#0A243E","#0B233A","#0D1A29","#0B2742","#17365E","#163860","#124A84","#095191","#114A83","#0
11D4D8A","#0C4D8C","#104B85","#15477E","#174477","#183862","#0A233A","#092947","#09243D","#173963","#194173","#085396","#085394","#114B87","#144983","#094F8E","#075090","#0F4C89","#215287","#0E1A29","#184376","#0C4D8B","#07549A","#0A4E8D","#0F4C88","#0A4E8C","#174273","#193C6A","#0B2948","#0B2C4B","#0C4E8D","#1259A4","#0C579E","#0D4D8B","#095397","#085397","#085295","#144880","#173861","#15335A","#0F2C4D","#0C2949","#0B4E8D","#08559C","#07508F","#154578","#17365F","#122F53","#111D2C","#092A48","#08559D","#08559E","#0C56A1","#164271","#163E6A","#194071","#082642","#0F1E30","#0D2D4D","#114C87","#0E59A3","#135BA6","#085498","#085497","#095192","#0E4D8B","#0C4E8A","#134982","#17457B","#121F2E","#183E6C","#153E69","#07508E","#173F6C","#193D6B","#112D4F","#0A243B","#072946","#111E2D","#0B2740","#10497F","#17406E","#084F8D","#104A80","#0E2E4F","#143358","#16365D","#0A2742","#13477B","#154474","#104C86","#095291","#0B4F8E","#114A80","#095090","#075296","#163760","#2D6DB5","#0C2843","#0C233A","#153A62","#14467A","#075498","#085293","#09263F","#122030","#09559D","#0F4B83","#08549A","#14375D","#085499","#075499","#0A243D","#143E68","#10497E","#074F8E","#085496","#0C58A3","#065499","#085190","#0A2B4A","#104C88","#0D4F8E","#0F58A2","#0B569B","#0D58A1","#134A81","#09559C","#0A5293","#114B86","#0D2C4C","#103255","#16457A","#074F8C","#07559C","#185DA9","#1D61AD","#175CA8","#16406D","#153C65","#0E243A","#144679","#085192","#1A5EAC","#1D61AE","#11497F","#12487E","#0C243C","#123155","#0F59A3","#1B5FAB","#1E61AD","#145CA4","#0E599F","#11497E","#094F8D","#15345A","#134A85","#165CA8","#2263AF","#124466","#0A518F","#08569D","#16416F","#0B2B4A","#124A83","#0C57A2","#1E60AD","#1E62AE","#165DA8","#1059A4","#15406C","#0A4F8E","#12365A","#0A5191","#16355C","#1C5EAB","#155CA7","#085292","#174478","#153258","#111F2F","#174272","#1159A5","#1C5EAC","#2F74BB","#0C58A2","#0D59A3","#14477D","#132F53","#155BA6","#195FAA","#2366B1","#2967B2","#14477E","#1B5EAB","#175DA8","#0F4C86","#065090","#1C5FAC","#185CA8","#0D58A3","#0C4E8C","#134981","#14416D","#0F5AA5","#1F63AF","#114B88","#09508E","#0A569D","#195DAA","#0F1D2F","#1059A2","#0E599E","#2063AF","#1F63AE","#1A5EAA","#0C57A0","#195EAA","#1A5EA9","#0E4E8A","#12487D","#185DAA","#175EAA","#0A508E","#1559A6","#0E58A3","#095399","#0B4E8B","#0B569F","#0C57A1","#2967B1","#2365B0","#2163AE","#1A5DAA","#195EAB","#1E5FAC","#2564AF","#2767B1","#2766B1","#0D5A9F","#2062AE","#1F61AD","#195FAB","#0D4E8D","#173760","#111D2E","#09518F","#1A5FAC","#135BA7","#085291","#183761","#0B2845","#113457","#075393","#185EA9","#2B69B3","#2A67B2","#2867B1","#155DA8","#135CA6","#135AA5","#114980","#2566B1","#2064AF","#2364AF","#13365B","#154475","#08549B","#164373","#085392","#144576","#12497E","#0E5392","#135BA3","#0C5395","#0C5291","#0E579C","#0E5290","#134C83","#2163AC","#195CA6","#0D4E8C","#082945","#133256","#0E2F50","#105AA6","#134677","#144475","#145BA7","#154270","#1D60AD","#09569B","#09243E","#134A86","#0E59A4","#0A4E8B","#0E4B83","#1D5EAC","#101C2A","#134A84","#0E518F","#145CA7","#0E5699","#145BA5","#095292","#15416E","#153D67","#153F6B","#125AA5","#16406E","#0E1B27","#0D4F8C","#0F58A3","#114A82","#09569C","#0C2339","#0E1B28","#0D59A4","#07559D","#08569E","#095190","#0B253E","#0C2B49","#2264AF","#09549A","#09569F","#163D68","#0C263F","#143960","#183A65","#075496","#0C579F","#085191","#102438","#075295","#082946","#102437","#0C2642","#101C29","#0C253E","#15355C","#0B2E4D","#0F3253","#154577","#16335B","#0F1925","#0C2742","#0B2946","#0E2C4B","#0E2B48","#0E2237","#102237","#0B253D","#0A2946","#0C2841","#0D2A47","#0C2C4A","#08253F","#08243D","#111C2B","#0C2844","#0C2945","#0D243A","#122134","#0B2642","#113154","#113255","#0A2642","#0A2945","#0B263F","#0D2E4E","#0F1E2E","#0A2845","#0D2439","#0F1A29","#101C2E","#111923","#13181F","#111D2F","#111F30","#121E30","#121E2E","#101B27","#101A27","#13171F"];return n[(t*d+e)%n.length]}var o=n(3),s=n.n(o),l=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),c=this&&this.__assign||function(){return c=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++){t=arguments[n];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},c.apply(this,arguments)},d=50,u=function(e){function t(t){var n=e.call(this,t)||this;return n.state={flipIndex:null},n.flipElements=n.flipElements.bind(n),n}return l(t,e),t.prototype.flipElements=function(){var e=a(0,50*d-1);this.setState(function(t){return c({},t,{flipIndex:e})})},t.prototype.componentWillMount=function(){this.cancelInterval=setInterval(this.flipElements,3e3)},t.prototype.componentWillUnmount=function(){clearInterval(this.cancelInterval)},t.prototype.render=function(){var e=this;return console.log("re-render!",this.state.flipIndex),s.a.createElement("div",{className:"login-bg"},Array.from(Array(50)).map(function(t,n){return s.a.createElement("div",{className:"login-bg__row"},Array.from(Array(d)).map(function(t,a){return s.a.createElement(r,{y:n,x:a,flipIndex:e.state.flipIndex})}))}))},t}(o.Component);t.a=u},function(e,t,n){"use strict";n.d(t,"a",function(){return u});var r=n(3),a=n.n(r),i=n(29),o=n.n(i),s=n(39),l=n(112),c=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),d=this&&this.__decorate||function(e,t,n,r){var a,i=arguments.length,o=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(a=e[s])&&(o=(i<3?a(o):i>3?a(t,n,o):a(t,n))||o);return i>3&&o&&Object.defineProperty(t,n,o),o},u=function(e){function t(t){var n=e.call(this,t)||this;return n.state={search:l.b.search},l.b.search.query(),n}return c(t,e),t.prototype.render=function(){return this.state.search.sections.map(function(e){return a.a.createElement(p,{section:e,key:e.id})})},t=d([s.observer],t)}(a.a.Component),p=function(e){function t(t){var n=e.call(this,t)||this;return n.toggleSection=function(){n.props.section.toggle()},n}return c(t,e),t.prototype.renderItem=function(e){return a.a.createElement("a",{className:"search-item",href:e.url,key:e.id},a.a.createElement("span",{className:"search-item__icon"},a.a.createElement("i",{className:"fa fa-th-large"})),a.a.createElement("span",{className:"search-item__body"},a.a.createElement("div",{className:"search-item__body-title"},e.title)))},t.prototype.render=function(){var e=o()({fa:!0,"fa-plus":!this.props.section.expanded,"fa-minus":this.props.section.expanded,"search-section__header__toggle":!0});return a.a.createElement("div",{className:"search-section",key:this.props.section.id},a.a.createElement("div",{className:"search-section__header"},a.a.createElement("i",{className:o()("search-section__header__icon",this.props.section.icon)}),a.a.createElement("span",{className:"search-section__header__text"},this.props.section.title),a.a.createElement("i",{className:e,onClick:this.toggleSection})),this.props.section.expanded&&a.a.createElement("div",{className:"search-section__items"},this.props.section.items.map(this.renderItem)))},t=d([s.observer],t)}(a.a.Component)},function(e,t,n){"use strict";n.d(t,"a",function(){return p});var r=n(4),a=n.n(r),i=n(3),o=n.n(i),s=n(123),l=n(1287),c=n(1288),d=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),u=this&&this.__assign||function(){return u=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++){t=arguments[n];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},u.apply(this,arguments)},p=function(e){function t(t){var n=e.call(this,t)||this;return n.searchTags=n.searchTags.bind(n),n.onChange=n.onChange.bind(n),n.onTagRemove=n.onTagRemove.bind(n),n}return d(t,e),t.prototype.searchTags=function(e){return this.props.tagOptions().then(function(e){return{options:a.a.map(e,function(e){return{value:e.term,label:e.term,count:e.count}})}})},t.prototype.onChange=function(e){this.props.onSelect(e)},t.prototype.onTagRemove=function(e){var t=a.a.without(this.props.tags,e.label);t=a.a.map(t,function(e){return{value:e}}),this.props.onSelect(t)},t.prototype.render=function(){var e={loadOptions:this.searchTags,onChange:this.onChange,value:this.props.tags,multi:!0,className:"gf-form-input gf-form-input--form-dropdown",placeholder:"Tags",loadingPlaceholder:"Loading...",noResultsText:"No tags found",optionComponent:c.a};return e.valueComponent=l.a,o.a.createElement("div",{className:"gf-form gf-form--has-input-icon gf-form--grow"},o.a.createElement("div",{className:"tag-filter"},o.a.createElement(s.Async,u({},e))),o.a.createElement("i",{className:"gf-form-input-icon fa fa-tag"}))},t}(o.a.Component)},,,,function(e,t,n){"use strict";n.d(t,"a",function(){return s});var r=n(3),a=n.n(r),i=n(520),o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),s=function(e){function t(t){var n=e.call(this,t)||this;return n.onClick=n.onClick.bind(n),n}return o(t,e),t.prototype.onClick=function(e){this.props.onRemove(this.props.value,e)},t.prototype.render=function(){var e=this.props.value;return a.a.createElement(i.a,{label:e.label,removeIcon:!0,count:0,onClick:this.onClick})},t}(a.a.Component)},function(e,t,n){"use strict";n.d(t,"a",function(){return s});var r=n(3),a=n.n(r),i=n(520),o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),s=function(e){function t(t){var n=e.call(this,t)||this;return n.handleMouseDown=n.handleMouseDown.bind(n),n.handleMouseEnter=n.handleMouseEnter.bind(n),n.handleMouseMove=n.handleMouseMove.bind(n),n}return o(t,e),t.prototype.handleMouseDown=function(e){e.preventDefault(),e.stopPropagation(),this.props.onSelect(this.props.option,e)},t.prototype.handleMouseEnter=function(e){this.props.onFocus(this.props.option,e)},t.prototype.handleMouseMove=function(e){this.props.isFocused||this.props.onFocus(this.props.option,e)},t.prototype.render=function(){var e=this.props,t=e.option,n=e.className;return a.a.createElement("button",{onMouseDown:this.handleMouseDown,onMouseEnter:this.handleMouseEnter,onMouseMove:this.handleMouseMove,title:t.title,className:"tag-filter-option btn btn-link "+(n||"")},a.a.createElement(i.a,{label:t.label,removeIcon:!1,count:t.count,onClick:this.handleMouseDown}))},t}(a.a.Component)},function(e,t,n){"use strict";var r=n(3),a=n.n(r),i=n(39),o=n(112),s=n(524),l=n(525),c=n(526),d=n(527),u=n(528),p=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),f=this&&this.__decorate||function(e,t,n,r){var a,i=arguments.length,o=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(a=e[s])&&(o=(i<3?a(o):i>3?a(t,n,o):a(t,n))||o);return i>3&&o&&Object.defineProperty(t,n,o),o},m=function(e){function t(t){var n=e.call(this,t)||this;return n.handleAddPermission=n.handleAddPermission.bind(n),n.permissions=o.b.permissions,n}return p(t,e),t.prototype.handleAddPermission=function(){this.permissions.toggleAddPermissions()},t.prototype.componentWillUnmount=function(){this.permissions.hideAddPermissions()},t.prototype.render=function(){var e=this.props,t=e.dashboardId,n=e.folder,r=e.backendSrv;return a.a.createElement("div",null,a.a.createElement("div",{className:"dashboard-settings__header"},a.a.createElement("div",{className:"page-action-bar"},a.a.createElement("h3",{className:"d-inline-block"},"Permissions"),a.a.createElement(l.a,{className:"page-sub-heading-icon",placement:"auto",content:c.a},a.a.createElement("i",{className:"gicon gicon-question gicon--has-hover"})),a.a.createElement("div",{className:"page-action-bar__spacer"}),a.a.createElement("button",{className:"btn btn-success pull-right",onClick:this.handleAddPermission,disabled:this.permissions.isAddPermissionsVisible},a.a.createElement("i",{className:"fa fa-plus"})," Add Permission"))),a.a.createElement(u.a,{in:this.permissions.isAddPermissionsVisible},a.a.createElement(d.a,{permissions:this.permissions,backendSrv:r})),a.a.createElement(s.a,{permissions:this.permissions,isFolder:!1,dashboardId:t,folderInfo:n,backendSrv:r}))},t=f([i.observer],t)}(r.Component);t.a=m},function(e,t,n){"use strict";var r=n(3),a=n.n(r),i=n(1291),o=n(1293),s=n(39),l=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),c=this&&this.__decorate||function(e,t,n,r){var a,i=arguments.length,o=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(a=e[s])&&(o=(i<3?a(o):i>3?a(t,n,o):a(t,n))||o);return i>3&&o&&Object.defineProperty(t,n,o),o},d=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return l(t,e),t.prototype.render=function(){var e=this.props,t=e.permissions,n=e.removeItem,r=e.permissionChanged,s=e.fetching,l=e.folderInfo;return a.a.createElement("table",{className:"filter-table gf-form-group"},a.a.createElement("tbody",null,a.a.createElement(o.a,{key:0,item:{name:"Admin",permission:4,icon:"fa fa-fw fa-street
11-view"}}),t.map(function(e,t){return a.a.createElement(i.a,{key:t+1,item:e,itemIndex:t,removeItem:n,permissionChanged:r,folderInfo:l})}),!0===s&&t.length<1?a.a.createElement("tr",null,a.a.createElement("td",{colSpan:4},a.a.createElement("em",null,"Loading permissions..."))):null,!1===s&&t.length<1?a.a.createElement("tr",null,a.a.createElement("td",{colSpan:4},a.a.createElement("em",null,"No permissions are set. Will only be accessible by admins."))):null))},t=c([s.observer],t)}(r.Component);t.a=d},function(e,t,n){"use strict";function r(e){var t=e.item;return t.userAvatarUrl?o.a.createElement("img",{className:"filter-table__avatar",src:t.userAvatarUrl}):t.teamAvatarUrl?o.a.createElement("img",{className:"filter-table__avatar",src:t.teamAvatarUrl}):"Editor"===t.role?o.a.createElement("i",{style:{width:"25px",height:"25px"},className:"gicon gicon-editor"}):o.a.createElement("i",{style:{width:"25px",height:"25px"},className:"gicon gicon-viewer"})}function a(e){var t=e.item;return t.userId?o.a.createElement("span",{className:"filter-table__weak-italic"},"(User)"):t.teamId?o.a.createElement("span",{className:"filter-table__weak-italic"},"(Team)"):o.a.createElement("span",{className:"filter-table__weak-italic"},"(Role)")}var i=n(3),o=n.n(i),s=n(39),l=n(240),c=n(121),d=function(e){return e?"gf-form-disabled":""};t.a=Object(s.observer)(function(e){var t=e.item,n=e.removeItem,i=e.permissionChanged,s=e.itemIndex,u=e.folderInfo,p=function(e){e.preventDefault(),n(s)},f=function(e){i(s,e.value,e.label)},m=-1===t.dashboardId&&!t.inherited;return o.a.createElement("tr",{className:d(t.inherited)},o.a.createElement("td",{style:{width:"1%"}},o.a.createElement(r,{item:t})),o.a.createElement("td",{style:{width:"90%"}},t.name," ",o.a.createElement(a,{item:t})),o.a.createElement("td",null,t.inherited&&u&&o.a.createElement("em",{className:"muted no-wrap"},"Inherited from folder"," ",o.a.createElement("a",{className:"text-link",href:u.url+"/permissions"},u.title)," "),m&&o.a.createElement("em",{className:"muted no-wrap"},"Default Permission")),o.a.createElement("td",{className:"query-keyword"},"Can"),o.a.createElement("td",null,o.a.createElement("div",{className:"gf-form"},o.a.createElement(l.a,{optionsWithDesc:c.c,handlePicked:f,value:t.permission,disabled:t.inherited,className:"gf-form-input--form-dropdown-right"}))),o.a.createElement("td",null,t.inherited?o.a.createElement("button",{className:"btn btn-inverse btn-small"},o.a.createElement("i",{className:"fa fa-lock"})):o.a.createElement("a",{className:"btn btn-danger btn-small",onClick:p},o.a.createElement("i",{className:"fa fa-remove"}))))})},function(e,t,n){"use strict";var r=n(3),a=n.n(r),i=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),o=function(e){function t(t){var n=e.call(this,t)||this;return n.handleMouseDown=n.handleMouseDown.bind(n),n.handleMouseEnter=n.handleMouseEnter.bind(n),n.handleMouseMove=n.handleMouseMove.bind(n),n}return i(t,e),t.prototype.handleMouseDown=function(e){e.preventDefault(),e.stopPropagation(),this.props.onSelect(this.props.option,e)},t.prototype.handleMouseEnter=function(e){this.props.onFocus(this.props.option,e)},t.prototype.handleMouseMove=function(e){this.props.isFocused||this.props.onFocus(this.props.option,e)},t.prototype.render=function(){var e=this.props,t=e.option,n=e.children,r=e.className;return a.a.createElement("button",{onMouseDown:this.handleMouseDown,onMouseEnter:this.handleMouseEnter,onMouseMove:this.handleMouseMove,title:t.title,className:"description-picker-option__button btn btn-link "+r+" width-19"},a.a.createElement("div",{className:"gf-form"},n),a.a.createElement("div",{className:"gf-form"},a.a.createElement("div",{className:"muted width-17"},t.description),r.indexOf("is-selected")>-1&&a.a.createElement("i",{className:"fa fa-check","aria-hidden":"true"})))},t}(r.Component);t.a=o},function(e,t,n){"use strict";var r=n(3),a=n.n(r),i=n(240),o=n(121),s=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),l=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return s(t,e),t.prototype.render=function(){var e=this.props.item;return a.a.createElement("tr",{className:"gf-form-disabled"},a.a.createElement("td",{style:{width:"1%"}},a.a.createElement("i",{style:{width:"25px",height:"25px"},className:"gicon gicon-shield"})),a.a.createElement("td",{style:{width:"90%"}},e.name,a.a.createElement("span",{className:"filter-table__weak-italic"}," (Role)")),a.a.createElement("td",null),a.a.createElement("td",{className:"query-keyword"},"Can"),a.a.createElement("td",null,a.a.createElement("div",{className:"gf-form"},a.a.createElement(i.a,{optionsWithDesc:o.c,handlePicked:function(){},value:e.permission,disabled:!0,className:"gf-form-input--form-dropdown-right"}))),a.a.createElement("td",null,a.a.createElement("button",{className:"btn btn-inverse btn-small"},a.a.createElement("i",{className:"fa fa-lock"}))))},t}(r.Component);t.a=l},function(e,t,n){"use strict";function r(e){return function(t){function n(e){var n=t.call(this,e)||this;return n.setState=n.setState.bind(n),n.state={placement:n.props.placement||"auto",show:!1},n}return s(n,t),n.prototype.componentWillReceiveProps=function(e){e.placement&&e.placement!==this.state.placement&&this.setState(function(t){return l({},t,{placement:e.placement})})},n.prototype.renderContent=function(e){if("function"==typeof e){var t=e;return i.a.createElement(t,null)}return e},n.prototype.render=function(){var t=this.props,n=t.content,r=t.className;return i.a.createElement(o.Manager,{className:"popper__manager "+(r||"")},i.a.createElement(e,l({},this.props,{tooltipSetState:this.setState})),this.state.show?i.a.createElement(o.Popper,{placement:this.state.placement,className:"popper"},this.renderContent(n),i.a.createElement(o.Arrow,{className:"popper__arrow"})):null)},n}(i.a.Component)}t.a=r;var a=n(3),i=n.n(a),o=n(241),s=(n.n(o),this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}()),l=this&&this.__assign||function(){return l=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++){t=arguments[n];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},l.apply(this,arguments)}},,,,,,function(e,t,n){"use strict";var r=n(3),a=n.n(r),i=n(123),o=n(522),s=n(523),l=n(4),c=(n.n(l),this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}()),d=function(e){function t(t){var n=e.call(this,t)||this;return n.state={},n.search=n.search.bind(n),n.debouncedSearch=Object(l.debounce)(n.search,300,{leading:!0,trailing:!1}),n}return c(t,e),t.prototype.search=function(e){var t=this.props,n=t.toggleLoading,r=t.backendSrv;return n(!0),r.get("/api/teams/search?perpage=10&page=1&query="+e).then(function(e){var t=e.teams.map(function(e){return{id:e.id,label:e.name,name:e.name,avatarUrl:e.avatarUrl}});return n(!1),{options:t}})},t.prototype.render=function(){var e=this.state.creatable?i.default.AsyncCreatable:i.default.Async,t=this.props,n=t.isLoading,r=t.handlePicked,s=t.value,l=t.className;return a.a.createElement("div",{className:"user-picker"},a.a.createElement(e,{valueKey:"id",multi:!1,labelKey:"label",cache:!1,isLoading:n,loadOptions:this.debouncedSearch,loadingPlaceholder:"Loading...",noResultsText:"No teams found",onChange:r,className:"gf-form-input gf-form-input--form-dropdown "+(l||""),optionComponent:o.a,placeholder:"Choose",value:s,autosize:!0}))},t}(r.Component);t.a=Object(s.a)(d)},function(e,t,n){"use strict";var r=n(3),a=n.n(r),i=n(530),o=n.n(i),s=n(77),l=n(237),c=n(29),d=n.n(c),u=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),p=function(e){function t(t){var n=e.call(this,t)||this;return n.onCollapse=function(e){n.state.collapsedMap[e.id]=e.collapsed,s.a.set("experimentsTreeCollapsed",JSON.stringify(n.state.collapsedMap))},n.onDragStart=function(e,t){return function(r){var a;"sensor"===e.type?a={sensor:{shortName:e.shortName,description:e.description,databaseId:e.databaseId},experiment:{title:t.module,id:t.id}}:"experimentdetails"===e.type?a={meta:!0,experiment:{title:t.module,id:t.id}}:"video"===e.type&&(a={video:!0,experiment:{title:t.module,id:t.id}});var i={x:r.offsetX,y:r.offsetY},o={data:a,channel:"sensor",offset:i},s=JSON.stringify(o);r.dataTransfer.setData("text",s),r.dataTransfer.effectAllowed="copyMove",n.props.dragStart(r,"sensor",o)}},n.onDragEnd=function(e){n.props.dragEnd(e,"sensor")},n.renderNode=function(e,t,r){return a.a.createElement("span",{key:"label",className:d()("node",e.type),draggable:e.leaf,onDragStart:n.onDragStart(e,t),onDragEnd:n.onDragEnd},"experiment"===e.type?a.a.createElement("span",{className:"icon fa fa-flask"}):"",e.module)},n.renderTags=function(e){var t=[a.a.createElement("span",{key:"blank",style:{width:"1px",height:"20px"}})];
11return e.tags&&e.tags.forEach(function(e){var n=l.a.getTagColorsFromName(e),r=n.color,i=n.borderColor,o={backgroundColor:r,borderColor:i};t.push(a.a.createElement("span",{key:e,style:o,className:"label label-tag"},e))}),a.a.createElement("span",{className:"tag-container"},t)},n.getIcon=function(e){return"folder"===e.type?{open:"fa fa-folder-open",closed:"fa fa-folder"}:"experiment"===e.type?{open:"fa fa-minus-square",closed:"fa fa-plus-square"}:"experimentdetails"===e.type?{open:"fa fa-file-text-o",closed:"fa fa-file-text-o"}:"video"===e.type?{open:"fa fa-video-camera",closed:"fa fa-video-camera"}:{open:"fa fa-thermometer-empty",closed:"fa fa-thermometer-empty"}},n.canDrop=function(e,t,n){if("sensor"===e.type)return t.id===n.id;if("folder"===n.type&&0===n.id){return n.children.indexOf(e)>0}return"folder"===n.type},n.canDropInto=function(e,t){return("experiment"===e.type||"folder"===e.type)&&"folder"===t.type},n.state={},t.tree&&(n.state=n.initTreeState(t.tree)),n}return u(t,e),t.prototype.componentDidUpdate=function(e){e.tree!==this.props.tree&&this.setState(this.initTreeState(this.props.tree))},t.prototype.initTreeState=function(e){var t=s.a.get("experimentsTreeCollapsed"),n=t?JSON.parse(t):{};return this.initCollapsedStates(e,n),{collapsedMap:n,tree:e}},t.prototype.initCollapsedStates=function(e,t){var n=Object.assign({},t);this.initCollapsedStatesHelper(e,n);for(var r=0,a=Object.keys(n);r<a.length;r++){delete t[a[r]]}s.a.set("experimentsTreeCollapsed",JSON.stringify(t))},t.prototype.initCollapsedStatesHelper=function(e,t){var n=this;if("sensor"!==e.type){if(0===e.id)e.collapsed=!1;else{var r=t[e.id];void 0===r&&(r=!0),e.collapsed=r,delete t[e.id]}e.children&&e.children.forEach(function(e){return n.initCollapsedStatesHelper(e,t)})}},t.prototype.render=function(){return this.state.tree?0===this.state.tree.children.filter(function(e){return"Active experiment"!==e.module}).length?null!=this.props.searchterm||""!==this.props.searchterm?this.props.searchinprogress?a.a.createElement("div",{className:"tree-notice"},a.a.createElement("br",null),"Searching for experiments..."):this.props.searcherror?a.a.createElement("div",{className:"tree-notice"},a.a.createElement("br",null),"Query Error: ",this.props.searcherror,"."):a.a.createElement("div",{className:"tree-notice"},a.a.createElement("br",null),"No experiments found."):a.a.createElement("div",{className:"tree-notice"},a.a.createElement("span",{style:{fontSize:"3em"},className:"fa fa-flask"}),a.a.createElement("br",null),a.a.createElement("br",null),"Your experiments will show up here.",a.a.createElement("br",null),"Choose an option on the right to get started.",a.a.createElement("br",null)):a.a.createElement(o.a,{paddingLeft:20,tree:this.state.tree,onChange:this.props.handleChange,onCollapse:this.onCollapse,onEdit:this.props.onEdit,onAdd:this.props.onAdd,onView:this.props.onView,renderNode:this.renderNode,renderTags:this.renderTags,getIcon:this.getIcon,canDropInPosition:this.canDrop,canDropInto:this.canDropInto,searchTerm:this.props.searchterm}):null},t}(a.a.Component);t.a=p},,,,,,function(e,t,n){"use strict";function r(){return{restrict:"E",templateUrl:"public/app/core/components/search/search_results.html",controller:l,bindToController:!0,controllerAs:"ctrl",scope:{editable:"@",results:"=",onSelectionChanged:"&",onTagSelected:"&",onFolderExpanding:"&"}}}var a=n(4),i=n.n(a),o=n(2),s=n(22),l=function(){function e(e){this.$location=e}return e.$inject=["$location"],e.prototype.toggleFolderExpand=function(e){var t=this;e.toggle&&(!e.expanded&&this.onFolderExpanding&&this.onFolderExpanding(),e.toggle(e).then(function(e){t.editable&&e.expanded&&e.items&&(i.a.each(e.items,function(t){t.checked=e.checked}),t.onSelectionChanged&&t.onSelectionChanged())}))},e.prototype.navigateToFolder=function(e,t){this.$location.path(e.url),t&&(t.stopPropagation(),t.preventDefault())},e.prototype.toggleSelection=function(e,t){e.checked=!e.checked,e.items&&i.a.each(e.items,function(t){t.checked=e.checked}),this.onSelectionChanged&&this.onSelectionChanged(),t&&(t.stopPropagation(),t.preventDefault())},e.prototype.onItemClick=function(e){this.$location.path().indexOf(e.url)>-1&&s.a.emit("hide-dash-search")},e.prototype.selectTag=function(e,t){this.onTagSelected&&this.onTagSelected({$tag:e}),t&&(t.stopPropagation(),t.preventDefault())},e}();o.a.directive("dashboardSearchResults",r)},function(e,t,n){"use strict";function r(){return{restrict:"E",templateUrl:"public/app/core/components/manage_dashboards/manage_dashboards.html",controller:l,bindToController:!0,controllerAs:"ctrl",scope:{folderId:"=",folderUid:"="}}}var a=n(4),i=n.n(a),o=n(2),s=n(22),l=(function(){function e(){}}(),function(){function e(e,t,n,r){var a=this;this.backendSrv=e,this.searchSrv=n,this.contextSrv=r,this.selectAllChecked=!1,this.canDelete=!1,this.canMove=!1,this.hasFilters=!1,this.starredFilterOptions=[{text:"Filter by Starred",disabled:!0},{text:"Yes"},{text:"No"}],this.canSave=!1,this.isEditor=this.contextSrv.isEditor,this.hasEditPermissionInFolders=this.contextSrv.hasEditPermissionInFolders,this.query={query:"",mode:"tree",tag:[],starred:!1,skipRecent:!0,skipStarred:!0,folderIds:[]},this.folderId&&(this.query.folderIds=[this.folderId]),this.selectedStarredFilter=this.starredFilterOptions[0],this.refreshList().then(function(){a.initTagFilter()})}return e.$inject=["backendSrv","navModelSrv","searchSrv","contextSrv"],e.prototype.refreshList=function(){var e=this;return this.searchSrv.search(this.query).then(function(t){return e.initDashboardList(t)}).then(function(){if(e.folderUid)return e.backendSrv.getFolderByUid(e.folderUid).then(function(t){e.canSave=t.canSave,e.canSave||(e.hasEditPermissionInFolders=!1)})})},e.prototype.initDashboardList=function(e){if(this.canMove=!1,this.canDelete=!1,this.selectAllChecked=!1,this.hasFilters=this.query.query.length>0||this.query.tag.length>0||this.query.starred,!e)return void(this.sections=[]);this.sections=e;for(var t=0,n=this.sections;t<n.length;t++){var r=n[t];r.checked=!1;for(var a=0,i=r.items;a<i.length;a++){i[a].checked=!1}
11}this.folderId&&this.sections.length>0&&(this.sections[0].hideHeader=!0)},e.prototype.selectionChanged=function(){for(var e=0,t=0,n=this.sections;t<n.length;t++){var r=n[t];e+=i.a.filter(r.items,{checked:!0}).length}var a=i.a.filter(this.sections,{checked:!0}).length;this.canMove=e>0,this.canDelete=e>0||a>0},e.prototype.getFoldersAndDashboardsToDelete=function(){for(var e,t={folders:[],dashboards:[]},n=0,r=this.sections;n<r.length;n++){var a=r[n];if(a.checked&&0!==a.id)t.folders.push(a.uid);else{var o=i.a.filter(a.items,{checked:!0});(e=t.dashboards).push.apply(e,i.a.map(o,"uid"))}}return t},e.prototype.getFolderIds=function(e){for(var t=[],n=0,r=e;n<r.length;n++){var a=r[n];a.checked&&t.push(a.id)}return t},e.prototype.delete=function(){var e,t=this,n=this.getFoldersAndDashboardsToDelete(),r=n.folders.length,a=n.dashboards.length,i="Do you want to delete the ";r>0&&a>0?(i+="selected folder"+(1===r?"":"s")+" and dashboard"+(1===a?"":"s")+"?",e="All dashboards of the selected folder"+(1===r?"":"s")+" will also be deleted"):i+=r>0?"selected folder"+(1===r?"":"s")+" and all its dashboards?":"selected dashboard"+(1===a?"":"s")+"?",s.a.emit("confirm-modal",{title:"Delete",text:i,text2:e,icon:"fa-trash",yesText:"Delete",onConfirm:function(){t.deleteFoldersAndDashboards(n.folders,n.dashboards)}})},e.prototype.deleteFoldersAndDashboards=function(e,t){var n=this;this.backendSrv.deleteFoldersAndDashboards(e,t).then(function(){n.refreshList()})},e.prototype.getDashboardsToMove=function(){for(var e=[],t=0,n=this.sections;t<n.length;t++){var r=n[t],a=i.a.filter(r.items,{checked:!0});e.push.apply(e,i.a.map(a,"uid"))}return e},e.prototype.moveTo=function(){var e=this.getDashboardsToMove();s.a.emit("show-modal",{templateHtml:'<move-to-folder-modal dismiss="dismiss()" dashboards="model.dashboards" after-save="model.afterSave()"></move-to-folder-modal>`',modalClass:"modal--narrow",model:{dashboards:e,afterSave:this.refreshList.bind(this)}})},e.prototype.initTagFilter=function(){var e=this;return this.searchSrv.getDashboardTags().then(function(t){e.tagFilterOptions=[{term:"Filter By Tag",disabled:!0}].concat(t),e.selectedTagFilter=e.tagFilterOptions[0]})},e.prototype.filterByTag=function(e){return-1===i.a.indexOf(this.query.tag,e)&&this.query.tag.push(e),this.refreshList()},e.prototype.onQueryChange=function(){return this.refreshList()},e.prototype.onTagFilterChange=function(){var e=this.filterByTag(this.selectedTagFilter.term);return this.selectedTagFilter=this.tagFilterOptions[0],e},e.prototype.removeTag=function(e,t){this.query.tag=i.a.without(this.query.tag,e),this.refreshList(),t&&(t.stopPropagation(),t.preventDefault())},e.prototype.removeStarred=function(){return this.query.starred=!1,this.refreshList()},e.prototype.onStarredFilterChange=function(){return this.query.starred="Yes"===this.selectedStarredFilter.text,this.selectedStarredFilter=this.starredFilterOptions[0],this.refreshList()},e.prototype.onSelectAllChanged=function(){for(var e=this,t=0,n=this.sections;t<n.length;t++){var r=n[t];r.hideHeader||(r.checked=this.selectAllChecked),r.items=i.a.map(r.items,function(t){return t.checked=e.selectAllChecked,t})}this.selectionChanged()},e.prototype.clearFilters=function(){this.query.query="",this.query.tag=[],this.query.starred=!1,this.refreshList()},e.prototype.createDashboardUrl=function(){var e="dashboard/new";return this.folderId&&(e+="?folderId="+this.folderId),e},e.prototype.importDashboardUrl=function(){var e="dashboard/import";return this.folderId&&(e+="?folderId="+this.folderId),e},e}());o.a.directive("manageDashboards",r)},function(e,t,n){"use strict";function r(){return{restrict:"E",templateUrl:"public/app/core/components/sidepane/sidepane.html",controller:f,bindToController:!0,controllerAs:"ctrl",scope:{},link:function(e,t){}}}var a=n(22),i=n(4),o=n.n(i),s=n(2),l=n(23),c=n(77),d=n(17),u=n.n(d),p=n(200),f=function(){function e(e,t,n,r,i,s,d,u,p,f){var m=this;this.$q=e,this.backendSrv=t,this.dashboardSrv=n,this.contextSrv=r,this.$rootScope=i,this.$location=s,this.$window=d,this.matlabPluginSrv=u,this.experimentSrv=p,this.collapsed=!1,this.sensors={},this.loading=!0,this.searchInProgress=!1,this.showSensorsWarning=!1,this.showLoadMoreExperimentsButton=!1,this.loadMoreExperimentsButtonText="Load more...",this.loginUrl="/login",this.experimentLoadLimit=100,this.experimentLoadOffset=0,this.onAdd=function(e){m.$location.url("/experiments/"+e.id+"/sensors/new")},this.matlabPluginUrlClick=function(e){m.$window.open(m.matlabPluginUrl)},this.formatSearchResultsForTree=function(e){var t={id:0,module:"Experiments",type:"folder",collapsed:!1,children:[]},n=function(e){return{module:e.title,id:e.id,tags:e.tags,type:e.type,created:e.created,sensors:e.sensorIds}};return t.children=e.results.map(n),m.appendSensorNodes(t),t},this.onEdit=function(e,t){"experiment"===e.type?m.$location.url("/experiments/edit/"+e.id):"folder"===e.type?m.$location.url("/experiments/folders/edit/"+e.id):"sensor"===e.type&&m.$location.url("/sensors/edit/"+e.id+"?experimentId="+(t&&t.id))},this.onView=function(e){"experiment"===e.type&&m.backendSrv.getExperiment(e.id).then(function(e){m.loadFullDash(e)})},this.handleExperimentTreeModification=function(e){m.loading=!0,m.backendSrv.updateExperimentTree(e).then(function(e){m.loading=!1})},this.handleTreeUpdate=function(e,t){if(t&&(console.log(t),"sensor"!==t.from.type)){var n={fromId:t.from.id,toId:t.to.id,placement:t.placement};m.handleExperimentTreeModification(n)}},this.isSignedIn=this.contextSrv.isSignedIn,this.collapsed=!this.isSignedIn||c.a.getBool(this.collapsedKey(),!1);var h=o.a.cloneDeep(l.a.bootData.navTree);if(this.mainLinks=o.a.filter(h,function(e){return!e.hideFromMenu}),this.bottomNav=o.a.filter(h,function(e){return e.hideFromMenu}),r.user.orgCount>1){var g=o.a.find(this.bottomNav,{id:"profile"});g&&(g.showOrgSwitcher=!0)}this.isSignedIn&&this.refresh(),f(this.initMatlabUrl.bind(this),50),a.a.on("refresh-sidepane",this.refresh.bind(this)),this.reactDragStart=this.reactDragStart.bind(this),this.reactDragEnd=this.reactDragEnd.bind(this)}return e.$inject=["$q","backendSrv","dashboardSrv","contextSrv","$rootScope","$location","$window","matlabPluginSrv","experimentSrv","$timeout"],e.prototype.initMatlabUrl=function(){var e=this;u()("body").hasClass("sidemenu-hidden")||this.matlabPluginSrv.getUrl().then(function(t){e.matlabPluginUrl=t;var n=e.bottomNav.filter(function(e){return"Help"===e.text});if(n.length>0){n[0].children.push({text:"Download MATLAB Plugin",icon:"fa fa-download",url:t,target:"_blank"})}})},e.prototype.collapsedKey=function(){return"sidepane.collapsed-"+l.a.bootData.user.orgId},e.prototype.reactDragStart=function(e,t,n){this.$rootScope.$broadcast("ANGULAR_DRAG_START",e,t,n)},e.prototype.reactDragEnd=function(e,t){this.$rootScope.$broadcast("ANGULAR_DRAG_END",e,t)},e.prototype.doSearch=function(e){var t=this;this.searchTerm=e;var n=e.match(/sensor:(\w+)/);if(!n||e.replace(n[0],"").trim()!==this.lastBackendSearchTerm){this.searchError=null,this.loading=!0,this.showLoadMoreExperimentsButton=!1,this.searchInProgress=!0,this.lastBackendSearchTerm=e.trim();var r={limit:100,query:e};this.backendSrv.searchExperiments(r).then(function(e){var n=t.formatSearchResultsForTree(e);n.children.unshift(t.activeExperimentNode()),t.tree=n,t.loading=!1,t.searchInProgress=!1,e.errorMessage&&e.errorMessage.length>0&&(t.searchError=e.errorMessage)})}},e.prototype.clearSearch=function(){this.doSearch("")},e.prototype.makeSensorNode=function(e){var t=e.shortName;return e.description&&(t+=" - "+e.description),{module:t,shortName:e.shortName,description:e.description,type:"sensor",leaf:!0,id:e.id,databaseId:e.databaseId}},e.prototype.makeSensorNodes=function(e){var t=this,n=e.map(function(e){return t.makeSensorNode(t.sensors[e])});return n.sort(function(e,t){return e.shortName.toLowerCase()>
11t.shortName.toLowerCase()?1:e.shortName.toLowerCase()<t.shortName.toLowerCase()?-1:0}),n},e.prototype.appendSensorNodes=function(e){var t=this;"experiment"===e.type?(e.collapsed=!0,e.sensors&&(e.children=this.makeSensorNodes(e.sensors))):e.children&&e.children.forEach(function(e){return t.appendSensorNodes(e)})},e.prototype.refresh=function(){var e=this;this.loading=!0,this.sensors={};var t=this.experimentLoadLimit,n=this.experimentLoadOffset;this.$q.all([this.backendSrv.getExperimentTree(n,t),this.backendSrv.searchSensors()]).then(function(t){var n=t[0],r=t[1];n.children.length<=0&&(e.showLoadMoreExperimentsButton=!1),e.experimentSrv.setRootObjectCount(n.children.length);for(var a=0,i=r;a<i.length;a++){var o=i[a];e.sensors[o.id]=o}e.appendSensorNodes(n),n.children.unshift(e.activeExperimentNode()),e.tree=n,e.loading=!1,n.children.length>0&&n.children.length-1<n.total_count&&(e.showLoadMoreExperimentsButton=!0)})},e.prototype.loadMoreExperiments=function(){var e=this;this.loading=!0,this.loadMoreExperimentsButtonText="Loading...",this.experimentLoadOffset=this.experimentLoadOffset+this.experimentLoadLimit,this.backendSrv.getExperimentTree(this.experimentLoadOffset,this.experimentLoadLimit).then(function(t){var n;if(0===t.children.length)return e.showLoadMoreExperimentsButton=!1,e.loading=!1,void alert("No more experiments to load.");var r=e.experimentSrv.getRootObjectCount();e.experimentSrv.setRootObjectCount(r+t.children.length),e.appendSensorNodes(t);var a=Object.assign({},e.tree);(n=a.children).push.apply(n,t.children),e.tree=a,e.loading=!1,e.loadMoreExperimentsButtonText="Load more...",e.showLoadMoreExperimentsButton=e.tree.children.length-1<t.total_count})},e.prototype.activeExperimentNode=function(){var e={id:-1,collapsed:!0,module:"Active experiment",type:"experiment",children:this.makeSensorNodes(Object.keys(this.sensors))},t={module:"Experiment details",type:"experimentdetails",leaf:!0};e.children.unshift(t);var n={module:"Experiment video",type:"video",leaf:!0};return e.children.unshift(n),e},e.prototype.getLastDashUrl=function(e){var t=this;return this.$q(function(e,n){var r=p.a.getLastDashUrl();if(r)return e(r);t.backendSrv.search().then(function(t){var n=t.filter(function(e){return"dash-db"===e.type});0===n.length?alert("Please create a dashboard first."):e(n[0].url)})})},e.prototype.loadFullDash=function(e){var t=this,n=Math.round(e.startedNs/Math.pow(10,6)),r=Math.round(e.stoppedNs/Math.pow(10,6));return this.getLastDashUrl(e).then(function(a){var i="/e/"+e.id+a+"?from="+n+"&to="+r;t.$location.url(i)}),!1},e.prototype.addPanelForCurrent=function(e){this.dashboardSrv.dash.addSensorPanel(e.description,e.name)},e.prototype.addMetaPanelForCurrent=function(){this.dashboardSrv.dash.addExperimentMetaPanel()},e.prototype.addPanelFromExperiment=function(e,t){var n=e.title+" - "+t.description;this.dashboardSrv.dash.addSensorPanel(n,t.name,e.id)},e.prototype.toggleCollapsed=function(){return!!this.isSignedIn&&(this.collapsed=!this.collapsed,c.a.set(this.collapsedKey(),this.collapsed?"true":"false"),!1)},e.prototype.toggleExpand=function(e){e.expanded=!e.expanded},e.prototype.sidepaneClicked=function(e){if(this.collapsed){"sidepane-contents"===e.target.getAttribute("id")&&this.toggleCollapsed()}},e.prototype.switchOrg=function(){this.$rootScope.appEvent("show-modal",{templateHtml:'<org-switcher dismiss="dismiss()"></org-switcher>'})},e}(),m=function(){return function(e){if(!e)return"";var t=function(e){return e<10?"0"+e:e},n=new Date(e);return n.getFullYear()+"-"+t(n.getMonth()+1)+"-"+t(n.getDate())}};s.a.directive("sidepane",r),s.a.filter("isoDate",m)},function(e,t,n){"use strict";function r(e,t){t.html5Mode(!0),e.when("/",{templateUrl:"public/app/partials/home.html",controller:"HomeCtrl",reloadOnSearch:!1,pageClass:"page-dashboard homepage",controllerAs:"ctrl"}).when("/d/:uid/:slug",{templateUrl:"public/app/partials/dashboard.html",controller:"LoadDashboardCtrl",reloadOnSearch:!1,pageClass:"page-dashboard"}).when("/e/:experimentId/d/latest",{templateUrl:"public/app/partials/dashboard.html",controller:"LoadDashboardCtrl",reloadOnSearch:!1,pageClass:"page-dashboard"}).when("/e/:experimentId/d/:uid/:slug",{templateUrl:"public/app/partials/dashboard.html",controller:"LoadDashboardCtrl",reloadOnSearch:!1,pageClass:"page-dashboard"}).when("/d/:uid",{templateUrl:"public/app/partials/dashboard.html",controller:"LoadDashboardCtrl",reloadOnSearch:!1,pageClass:"page-dashboard"}).when("/dashboard/:type/:slug",{templateUrl:"public/app/partials/dashboard.html",controller:"LoadDashboardCtrl",reloadOnSearch:!1,pageClass:"page-dashboard"}).when("/d-solo/:uid/:slug",{templateUrl:"public/app/features/panel/partials/soloPanel.html",controller:"SoloPanelCtrl",reloadOnSearch:!1,pageClass:"page-dashboard"}).when("/e/:experimentId/d-solo/:uid/:slug",{templateUrl:"public/app/features/panel/partials/soloPanel.html",controller:"SoloPanelCtrl",reloadOnSearch:!1,pageClass:"page-dashboard"}).when("/dashboard-solo/:type/:slug",{templateUrl:"public/app/features/panel/partials/soloPanel.html",controller:"SoloPanelCtrl",reloadOnSearch:!1,pageClass:"page-dashboard"}).when("/e/:experimentId/dashboard/new",{templateUrl:"public/app/partials/dashboard.html",controller:"NewDashboardCtrl",reloadOnSearch:!1,pageClass:"page-dashboard"}).when("/dashboard/new",{templateUrl:"public/app/partials/dashboard.html",controller:"NewDashboardCtrl",reloadOnSearch:!1,pageClass:"page-dashboard"}).when("/dashboard/import",{templateUrl:"public/app/features/dashboard/partials/dashboard_import.html",controller:"DashboardImportCtrl",controllerAs:"ctrl"}).when("/datasources",{templateUrl:"public/app/features/plugins/partials/ds_list.html",controller:"DataSourcesCtrl",controllerAs:"ctrl"}).when("/datasources/edit/:id",{templateUrl:"public/app/features/plugins/partials/ds_edit.html",controller:"DataSourceEditCtrl",controllerAs:"ctrl"}).when("/datasources/edit/:id/dashboards",{templateUrl:"public/app/features/plugins/partials/ds_dashboards.html",controller:"DataSourceDashboardsCtrl",controllerAs:"ctrl"}).when("/datasources/new",{templateUrl:"public/app/features/plugins/partials/ds_edit.html",controller:"DataSourceEditCtrl",controllerAs:"ctrl"}).when("/sensors/new",{templateUrl:"public/app/features/sensors/partials/edit_sensor.html",controller:"SensorCreateCtrl",controllerAs:"ctrl"}).when("/sensors/edit/:id",{templateUrl:"public/app/features/sensors/partials/edit_sensor.html",controller:"SensorEditCtrl",controllerAs:"ctrl"}).when("/experiments/:id/sensors/new",{templateUrl:"public/app/features/sensors/partials/bind_sensor.html",controller:"SensorBindCtrl",controllerAs:"ctrl"}).when("/experiments/new",{templateUrl:"public/app/features/experiments/partials/edit_experiment.html",controller:"ExperimentCreateCtrl",controllerAs:"ctrl"}).when("/experiments/edit/:id",{templateUrl:"public/app/features/experiments/partials/edit_experiment.html",controller:"ExperimentEditCtrl",controllerAs:"ctrl"}).when("/experiments/folders/new",{templateUrl:"public/app/features/experiments/partials/edit_folder.html",controller:"ExperimentFolderCreateCtrl",controllerAs:"ctrl"}).when("/experiments/folders/edit/:id",{templateUrl:"public/app/features/experiments/partials/edit_folder.html",controller:"ExperimentFolderEditCtrl",controllerAs:"ctrl"}).when("/dashboards",{templateUrl:"public/app/features/dashboard/partials/dashboard_list.html",controller:"DashboardListCtrl",controllerAs:"ctrl"}).when("/dashboards/folder/new",{templateUrl:"public/app/features/dashboard/partials/create_folder.html",controller:"CreateFolderCtrl",controllerAs:"ctrl"}).when("/dashboards/f/:uid/:slug/permissions",{template:"<react-container />",resolve:{component:function(){return s.a}}}).when("/dashboards/f/:uid/:slug/settings",{template:"<react-container />",resolve:{component:function(){return o.a}}}).when("/dashboards/f/:uid/:slug",{templateUrl:"public/app/features/dashboard/partials/folder_dashboards.html",controller:"FolderDashboardsCtrl",controllerAs:"ctrl"}).when("/dashboards/f/:uid",{templateUrl:"public/app/features/dashboard/partials/folder_dashboards.html",controller:"FolderDashboardsCtrl",controllerAs:"ctrl"}).when("/explore/:initial?",{template:"<react-container />",resolve:{roles:function(){return["Editor","Admin"]},component:function(){return n.e(1).then(n.bind(null,1981))}}}).when("/org",{templateUrl:"public/app/features/org/partials/orgDetails.html",controller:"OrgDetailsCtrl"}).when("/org/new",{templateUrl:"public/app/features/org/partials/newOrg.html",controller:"NewOrgCtrl"}).when("/org/users",{templateUrl:"public/app/features/org/partials/orgUsers.html",controller:"OrgUsersCtrl",controllerAs:"ctrl"}).when("/org/users/invite",{templateUrl:"public/app/features/org/partials/invite.html",controller:"UserInviteCtrl",controllerAs:"ctrl"}).when("/org/apikeys",{templateUrl:"public/app/features/org/partials/orgApiKeys.html",controller:"OrgApiKeysCtrl"}).when("/org/teams",{templateUrl:"public/app/features/org/partials/teams.html",controller:"TeamsCtrl",controllerAs:"ctrl"}).when("/org/teams/new",{templateUrl:"public/app/features/org/partials/create_team.html",controller:"CreateTeamCtrl",controllerAs:"ctrl"}).when("/org/teams/edit/:id",{templateUrl:"public/app/features/org/partials/team_details.html",controller:"TeamDetailsCtrl",controllerAs:"ctrl"}).when("/profile",{templateUrl:"public/app/features/org/partials/profile.html",controller:"ProfileCtrl",controllerAs:"ctrl"}).when("/profile/password",{templateUrl:"public/app/features/org/partials/change_password.html",controller:"ChangePasswordCtrl"}).when("/profile/select-org",{templateUrl:"public/app/features/org/partials/select_org.html",controller:"SelectOrgCtrl"}).when("/admin",{templateUrl:"public/app/features/admin/partials/admin_home.html",controller:"AdminHomeCtrl",controllerAs:"ctrl"}).when("/admin/settings",{templateUrl:"public/app/features/admin/partials/settings.html",controller:"AdminSettingsCtrl",controllerAs:"ctrl"}).when("/admin/users",{templateUrl:"public/app/features/admin/partials/users.html",controller:"AdminListUsersCtrl",controllerAs:"ctrl"}).when("/admin/users/create",{templateUrl:"public/app/features/admin/partials/new_user.html",controller:"AdminEditUserCtrl"}).when("/admin/users/edit/:id",{templateUrl:"public/app/features/admin/partials/edit_user.html",controller:"AdminEditUserCtrl"}).when("/admin/orgs",{templateUrl:"public/app/features/admin/partials/orgs.html",controller:"AdminListOrgsCtrl",controllerAs:"ctrl"}).when("/admin/orgs/edit/:id",{templateUrl:"public/app/features/admin/partials/edit_org.html",controller:"AdminEditOrgCtrl",controllerAs:"ctrl"}).when("/admin/experiments",{templateUrl:"public/app/features/admin/partials/experiments.html",controller:"AdminListExperimentsCtrl",controllerAs:"ctrl"}).when("/admin/stats",{template:"<react-container />",resolve:{component:function(){return a.a}}}).when("/login",{templateUrl:"public/app/partials/login.html",controller:"LoginCtrl",pageClass:"login-page sidemenu-hidden"}).when("/invite/:code",{templateUrl:"public/app/partials/signup_invited.html",controller:"InvitedCtrl",pageClass:"sidemenu-hidden"}).when("/signup",{templateUrl:"public/app/partials/signup_step2.html",controller:"SignUpCtrl",pageClass:"sidemenu-hidden signup-page"}).when("/user/password/send-reset-email",{templateUrl:"public/app/partials/reset_password.html",controller:"ResetPasswordCtrl",pageClass:"sidemenu-hidden"}).when("/user/password/reset",{templateUrl:"public/app/partials/reset_password.html",controller:"ResetPasswordCtrl",pageClass:"sidemenu-hidden"}
11).when("/dashboard/snapshots",{templateUrl:"public/app/features/snapshot/partials/snapshots.html",controller:"SnapshotsCtrl",controllerAs:"ctrl"}).when("/plugins",{templateUrl:"public/app/features/plugins/partials/plugin_list.html",controller:"PluginListCtrl",controllerAs:"ctrl"}).when("/plugins/:pluginId/edit",{templateUrl:"public/app/features/plugins/partials/plugin_edit.html",controller:"PluginEditCtrl",controllerAs:"ctrl"}).when("/plugins/:pluginId/page/:slug",{templateUrl:"public/app/features/plugins/partials/plugin_page.html",controller:"AppPageCtrl",controllerAs:"ctrl"}).when("/styleguide/:page?",{controller:"StyleGuideCtrl",controllerAs:"ctrl",templateUrl:"public/app/features/styleguide/styleguide.html"}).when("/alerting",{redirectTo:"/alerting/list"}).when("/alerting/list",{templateUrl:"public/app/features/alerting/partials/alert_list.html",controller:"AlertListCtrl",controllerAs:"ctrl"}).when("/alerting/list",{template:"<react-container />",reloadOnSearch:!1,resolve:{component:function(){return i.a}}}).when("/alerting/notifications",{templateUrl:"public/app/features/alerting/partials/notifications_list.html",controller:"AlertNotificationsListCtrl",controllerAs:"ctrl"}).when("/alerting/notification/new",{templateUrl:"public/app/features/alerting/partials/notification_edit.html",controller:"AlertNotificationEditCtrl",controllerAs:"ctrl"}).when("/alerting/notification/:id/edit",{templateUrl:"public/app/features/alerting/partials/notification_edit.html",controller:"AlertNotificationEditCtrl",controllerAs:"ctrl"}).when("/upload",{templateUrl:"public/app/features/upload/partials/upload.html",controller:"UploadCtrl",controllerAs:"ctrl",pageClass:"uploadpage"}).otherwise({templateUrl:"public/app/partials/error.html",controller:"ErrorCtrl"})}r.$inject=["$routeProvider","$locationProvider"],t.a=r;var a=(n(1311),n(1312),n(1313)),i=n(1315),o=n(1316),s=n(1317)},function(e,t,n){"use strict";var r=n(2),a=n(198),i=n(239),o=n(200),s=function(e,t,n,r){if(e.experimentId||"snapshot"===e.type)return!1;console.log("Warning!! No experiment id found.",t.url());var a,o=i.a.getExperimentOpened();if(o.length>0){a=o[0];var s="/e/"+a+t.path();t.path(s).replace()}else n.searchExperiments({limit:1}).then(function(e){if(e.results.length>0){var n=e.results[0].id,a="/e/"+n+t.path();t.path(a).replace()}else r.set("No experiment found!","Please upload an experiment first.","error",1e4)});return!0};s.$inject=["$routeParams","$location","backendSrv","alertSrv"];var l=function(){function e(e,t,n,r,i,l){var c=this;if(this.backendSrv=r,e.appEvent("dashboard-fetch-start"),-1!==i.path().indexOf("/d/latest")){var d=o.a.getDashboardOpened();if(d.length>0){var u=d[0];return void r.search({dashboardIds:[u]}).then(function(e){if(e.length>0){var t=e[0].url,n=i.path().replace("/d/latest",t);i.path(n).replace()}})}}return t.uid||t.slug?l.invoke(s)?void 0:"script"===t.type||"snapshot"===t.type||t.uid?void n.loadD
11ashboard(t.type,t.slug,t.uid).then(function(n){if(n.meta.dashboardNotFound&&c.backendSrv.search().then(function(e){var t=e.filter(function(e){return"dash-db"===e.type});0===t.length?alert("Please create a dashboard first."):i.path(t[0].url).replace()}),n.meta.isSnapshot){if(n.meta.snapshotKey!==t.slug)return}else if(n.dashboard.uid!==t.uid)return;if(n.meta.url){var r=a.b.stripBaseFromUrl(n.meta.url);-1===i.path().indexOf(r)&&i.path(r).replace()}t.keepRows&&(n.meta.keepRows=!0),e.initDashboard(n,e)}):void r.getDashboardBySlug(t.slug).then(function(e){e&&i.path(a.b.stripBaseFromUrl(e.meta.url)).replace()}):void r.get("/api/dashboards/home").then(function(t){if(t.redirectUri)i.path(t.redirectUri);else{var n=t.meta;n.canSave=n.canShare=n.canStar=!1,e.initDashboard(t,e)}})}return e.$inject=["$scope","$routeParams","dashboardLoaderSrv","backendSrv","$location","$injector"],e}(),c=function(){function e(e,t,n,r){if(!r.invoke(s)){var a={list:[{datasource:"-- Platform Influxdb --",enable:!0,hide:!1,iconColor:"rgba(255, 96, 96, 1)",limit:100,name:"ECU Events",query:"select * from experiment[[experiment_id]]events WHERE $timeFilter LIMIT 100",showIn:0,tags:[],tagsColumn:"key",type:"tags"}]},i={meta:{canStar:!1,canShare:!1,isNew:!0,folderId:Number(t.folderId)},dashboard:{title:"New dashboard",panels:[{content:"<h2>Welcome to your new dashboard!</h2><br><i><ul><li>Use the left-hand side bar to add panels to this dashboard.</li><li>Expand the experiments, pick a sensor and drag it onto this dashboard.</li><li>Click the settings button on the top right of the window to name your dashboard.</li><li>Click the arrow on the top of this panel to remove it.</li></ul></i>",editable:!0,id:1,links:[],mode:"html",style:{},title:"",type:"text",gridPos:{w:12,h:6,x:0,y:0}}]}};"Launcher"!==n.user.orgName&&"SSC E2 Org"!==n.user.orgName||(i.dashboard.annotations=a),e.initDashboard(i,e)}}return e.$inject=["$scope","$routeParams","contextSrv","$injector"],e}();r.a.controller("LoadDashboardCtrl",l),r.a.controller("NewDashboardCtrl",c)},function(e,t,n){"use strict";function r(e,t,n){return o.a.createElement(c.Provider,p({},e),o.a.createElement(t,p({},n)))}function a(e,t,n,a,i){return{restrict:"E",template:"",link:function(o,s){var c=e.current.locals.roles;c&&c.length&&(c.some(function(e){return i.hasRole(e)})||t.url("/"));var d=e.current.locals.component;d.default&&(d=d.default);var p={backendSrv:n,datasourceSrv:a,routeParams:e.current.params};l.a.render(r(u.b,d,p),s[0]),o.$on("$destroy",function(){l.a.unmountComponentAtNode(s[0])})}}}a.$inject=["$route","$location","backendSrv","datasourceSrv","contextSrv"];var i=n(3),o=n.n(i),s=n(32),l=n.n(s),c=n(39),d=n(2),u=n(112),p=this&&this.__assign||function(){return p=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++){t=arguments[n];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},p.apply(this,arguments)};d.a.directive("reactContainer",a)},function(e,t,n){"use strict";(function(e){function r(e){return i.a.createElement("tr",{key:e.name},i.a.createElement("td",null,e.name),i.a.createElement("td",null,e.value))}var a=n(3),i=n.n(a),o=n(139),s=(n.n(o),n(39)),l=n(122),c=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),d=this&&this.__decorate||function(e,t,n,r){var a,i=arguments.length,o=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(a=e[s])&&(o=(i<3?a(o):i>3?a(t,n,o):a(t,n))||o);return i>3&&o&&Object.defineProperty(t,n,o),o},u=function(e){function t(t){var n=e.call(this,t)||this,r=n.props,a=r.nav,i=r.serverStats;return a.load("cfg","admin","server-stats"),i.load(),n}return c(t,e),t.prototype.render=function(){var e=this.props,t=e.nav,n=e.serverStats;return i.a.createElement("div",null,i.a.createElement(l.a,{model:t}),i.a.createElement("div",{className:"page-container page-body"},i.a.createElement("table",{className:"filter-table form-inline"},i.a.createElement("thead",null,i.a.createElement("tr",null,i.a.createElement("th",
11null,"Name"),i.a.createElement("th",null,"Value"))),i.a.createElement("tbody",null,n.stats.map(r)))))},t=d([Object(s.inject)("nav","serverStats"),s.observer],t)}(i.a.Component);t.a=Object(o.hot)(e)(u)}).call(t,n(114)(e))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return e&&"object"==typeof e&&"default"in e?e.default:e}(n(3)),a=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},i=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)},o=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t},s=function(e){function t(){return a(this,t),o(this,e.apply(this,arguments))}return i(t,e),t.prototype.render=function(){return r.Children.only(this.props.children)},t}(r.Component),l=function(){return function(e){return e}},c=function(e,t){return e===t},d=function(){};t.AppContainer=s,t.hot=l,t.areComponentsEqual=c,t.setConfig=d},function(e,t,n){"use strict";(function(e){function r(e){var t=e.text,n=e.value;return i.a.createElement("option",{key:n,value:n},t)}var a=n(3),i=n.n(a),o=n(139),s=(n.n(o),n(29)),l=n.n(s),c=n(39),d=n(122),u=n(22),p=n(320),f=n.n(p),m=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),h=this&&this.__decorate||function(e,t,n,r){var a,i=arguments.length,o=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(a=e[s])&&(o=(i<3?a(o):i>3?a(t,n,o):a(t,n))||o);return i>3&&o&&Object.defineProperty(t,n,o),o},g=function(e){function t(t){var n=e.call(this,t)||this;return n.stateFilters=[{text:"All",value:"all"},{text:"OK",value:"ok"},{text:"Not OK",value:"not_ok"},{text:"Alerting",value:"alerting"},{text:"No Data",value:"no_data"},{text:"Paused",value:"paused"}],n.onStateFilterChanged=function(e){n.props.view.updateQuery({state:e.target.value}),n.fetchRules()},n.onOpenHowTo=function(){u.a.emit("show-modal",{src:"public/app/features/alerting/partials/alert_howto.html",modalClass:"confirm-modal",model:{}})},n.onSearchQueryChange=function(e){n.props.alertList.setSearchQuery(e.target.value)},n.props.nav.load("alerting","alert-list"),n.fetchRules(),n}return m(t,e),t.prototype.fetchRules=function(){this.props.alertList.loadRules({state:this.props.view.query.get("state")||"all"})},t.prototype.render=function(){var e=this.props,t=e.nav,n=e.alertList;return i.a.createElement("div",null,i.a.createElement(d.a,{model:t}),i.a.createElement("div",{className:"page-container page-body"},i.a.createElement("div",{className:"page-action-bar"},i.a.createElement("div",{className:"gf-form gf-form--grow"},i.a.createElement("label",{className:"gf-form--has-input-icon gf-form--grow"},i.a.createElement("input",{type:"text",className:"gf-form-input",placeholder:"Search alerts",value:n.search,onChange:this.onSearchQueryChange}),i.a.createElement("i",{className:"gf-form-input-icon fa fa-search"}))),i.a.createElement("div",{className:"gf-form"},i.a.createElement("label",{className:"gf-form-label"},"States"),i.a.createElement("div",{className:"gf-form-select-wrapper width-13"},i.a.createElement("select",{className:"gf-form-input",onChange:this.onStateFilterChanged,value:n.stateFilter},this.stateFilters.map(r)))),i.a.createElement("div",{className:"page-action-bar__spacer"}),i.a.createElement("a",{className:"btn btn-secondary",onClick:this.onOpenHowTo},i.a.createElement("i",{className:"fa fa-info-circle"})," How to add an alert")),i.a.createElement("section",null,i.a.createElement("ol",{className:"alert-rule-list"},n.filteredRules.map(function(e){return i.a.createElement(b,{rule:e,key:e.id,search:n.search})})))))},t=h([Object(c.inject)("view","nav","alertList"),c.observer],t)}(i.a.Component),b=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.toggleState=function(){t.props.rule.togglePaused()},t}return m(t,e),t.prototype.renderText=function(e){return i.a.createElement(f.a,{highlightClassName:"highlight-search-match",textToHighlight:e,searchWords:[this.props.search]})},t.prototype.render=function(){var e=this.props.rule,t=l()({fa:!0,"fa-play":e.isPaused,"fa-pause":!e.isPaused}),n=e.url+"?panelId="+e.panelId+"&fullscreen=true&edit=true&tab=alert";return i.a.createElement("li",{className:"alert-rule-item"},i.a.createElement("span",{className:"alert-rule-item__icon "+e.stateClass},i.a.createElement("i",{className:e.stateIcon})),i.a.createElement("div",{className:"alert-rule-item__body"},i.a.createElement("div",{className:"alert-rule-item__header"},i.a.createElement("div",{className:"alert-rule-item__name"},i.a.createElement("a",{href:n},this.renderText(e.name))),i.a.createElement("div",{className:"alert-rule-item__text"},i.a.createElement("span",{className:""+e.stateClass},this.renderText(e.stateText)),i.a.createElement("span",{className:"alert-rule-item__time"}," for ",e.stateAge))),e.info&&i.a.createElement("div",{className:"small muted alert-rule-item__info"},this.renderText(e.info))),i.a.createElement("div",{className:"alert-rule-item__actions"},i.a.createElement("button",{className:"btn btn-small btn-inverse alert-list__btn width-2",title:"Pausing an alert rule prevents it from executing",onClick:this.toggleState},i.a.createElement("i",{className:t})),i.a.createElement("a",{className:"btn btn-small btn-inverse alert-list__btn width-2",href:n,title:"Edit alert rule"},i.a.createElement("i",{className:"icon-gf icon-gf-settings"}))))},t=h([c.observer],t)}(i.a.Component);t.a=Object(o.hot)(e)(g)}
11).call(t,n(114)(e))},function(e,t,n){"use strict";(function(e){var r=n(3),a=n.n(r),i=n(139),o=(n.n(i),n(39)),s=n(70),l=n(122),c=n(28),d=n(22),u=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),p=this&&this.__decorate||function(e,t,n,r){var a,i=arguments.length,o=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(a=e[s])&&(o=(i<3?a(o):i>3?a(t,n,o):a(t,n))||o);return i>3&&o&&Object.defineProperty(t,n,o),o},f=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return u(t,e),t.prototype.componentDidMount=function(){this.loadStore()},t.prototype.loadStore=function(){var e=this,t=this.props,n=t.nav,r=t.folder,a=t.view;return r.load(a.routeParams.get("uid")).then(function(t){return e.formSnapshot=Object(c.getSnapshot)(r),a.updatePathAndQuery(t.url+"/settings",{},{}),n.initFolderNav(Object(s.toJS)(r.folder),"manage-folder-settings")})},t.prototype.onTitleChange=function(e){this.props.folder.setTitle(this.getFormSnapshot().folder.title,e.target.value)},t.prototype.getFormSnapshot=function(){return this.formSnapshot||(this.formSnapshot=Object(c.getSnapshot)(this.props.folder)),this.formSnapshot},t.prototype.save=function(e){e&&(e.stopPropagation(),e.preventDefault());var t=this.props,n=t.nav,r=t.folder,a=t.view;r.saveFolder({overwrite:!1}).then(function(e){a.updatePathAndQuery(e,{},{}),d.a.emit("dashboard-saved"),d.a.emit("alert-success",["Folder saved"])}).then(function(){return n.initFolderNav(Object(s.toJS)(r.folder),"manage-folder-settings")}).catch(this.handleSaveFolderError.bind(this))},t.prototype.delete=function(e){e&&(e.stopPropagation(),e.preventDefault());var t=this.props,n=t.folder,r=t.view,a=n.folder.title;d.a.emit("confirm-modal",{title:"Delete",text:"Do you want to delete this folder and all its dashboards?",icon:"fa-trash",yesText:"Delete",onConfirm:function(){return n.deleteFolder().then(function(){d.a.emit("alert-success",["Folder Deleted",a+" has been deleted"]),r.updatePathAndQuery("dashboards","","")})}})},t.prototype.handleSaveFolderError=function(e){if(e.data&&"version-mismatch"===e.data.status){e.isHandled=!0;var t=this.props,n=t.nav,r=t.folder,a=t.view;d.a.emit("confirm-modal",{title:"Conflict",text:"Someone else has updated this folder.",text2:"Would you still like to save this folder?",yesText:"Save & Overwrite",icon:"fa-warning",onConfirm:function(){r.saveFolder({overwrite:!0}).then(function(e){a.updatePathAndQuery(e,{},{}),d.a.emit("dashboard-saved"),d.a.emit("alert-success",["Folder saved"])}).then(function(){return n.initFolderNav(Object(s.toJS)(r.folder),"manage-folder-settings")})}})}},t.prototype.render=function(){var e=this.props,t=e.nav,n=e.folder;return n.folder&&t.main?a.a.createElement("div",null,a.a.createElement(l.a,{model:t}),a.a.createElement("div",{className:"page-container page-body"},a.a.createElement("h2",{className:"page-sub-heading"},"Folder Settings"),a.a.createElement("div",{className:"section gf-form-group"},a.a.createElement("form",{name:"folderSettingsForm",onSubmit:this.save.bind(this)},a.a.createElement("div",{className:"gf-form"},a.a.createElement("label",{className:"gf-form-label width-7"},"Name"),a.a.createElement("input",{type:"text",className:"gf-form-input width-30",value:n.folder.title,onChange:this.onTitleChange.bind(this)})),a.a.createElement("div",{className:"gf-form-button-row"},a.a.createElement("button",{type:"submit",className:"btn btn-success",disabled:!n.folder.canSave||!n.folder.hasChanged},a.a.createElement("i",{className:"fa fa-save"})," Save"),a.a.createElement("button",{className:"btn btn-danger",onClick:this.delete.bind(this),disabled:!n.folder.canSave}
11,a.a.createElement("i",{className:"fa fa-trash"})," Delete")))))):a.a.createElement("h2",null,"Loading")},t=p([Object(o.inject)("nav","folder","view"),o.observer],t)}(a.a.Component);t.a=Object(i.hot)(e)(f)}).call(t,n(114)(e))},function(e,t,n){"use strict";(function(e){var r=n(3),a=n.n(r),i=n(139),o=(n.n(i),n(39)),s=n(70),l=n(122),c=n(524),d=n(525),u=n(526),p=n(527),f=n(528),m=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),h=this&&this.__decorate||function(e,t,n,r){var a,i=arguments.length,o=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(a=e[s])&&(o=(i<3?a(o):i>3?a(t,n,o):a(t,n))||o);return i>3&&o&&Object.defineProperty(t,n,o),o},g=function(e){function t(t){var n=e.call(this,t)||this;return n.handleAddPermission=n.handleAddPermission.bind(n),n}return m(t,e),t.prototype.componentDidMount=function(){this.loadStore()},t.prototype.componentWillUnmount=function(){this.props.permissions.hideAddPermissions()},t.prototype.loadStore=function(){var e=this.props,t=e.nav,n=e.folder,r=e.view;return n.load(r.routeParams.get("uid")).then(function(e){return r.updatePathAndQuery(e.url+"/permissions",{},{}),t.initFolderNav(Object(s.toJS)(n.folder),"manage-folder-permissions")})},t.prototype.handleAddPermission=function(){this.props.permissions.toggleAddPermissions()},t.prototype.render=function(){var e=this.props,t=e.nav,n=e.folder,r=e.permissions,i=e.backendSrv;
11if(!n.folder||!t.main)return a.a.createElement("h2",null,"Loading");var o=n.folder.id;return a.a.createElement("div",null,a.a.createElement(l.a,{model:t}),a.a.createElement("div",{className:"page-container page-body"},a.a.createElement("div",{className:"page-action-bar"},a.a.createElement("h2",{className:"d-inline-block"},"Folder Permissions"),a.a.createElement(d.a,{className:"page-sub-heading-icon",placement:"auto",content:u.a},a.a.createElement("i",{className:"gicon gicon-question gicon--has-hover"})),a.a.createElement("div",{className:"page-action-bar__spacer"}),a.a.createElement("button",{className:"btn btn-success pull-right",onClick:this.handleAddPermission,disabled:r.isAddPermissionsVisible},a.a.createElement("i",{className:"fa fa-plus"})," Add Permission")),a.a.createElement(f.a,{in:r.isAddPermissionsVisible},a.a.createElement(p.a,{permissions:r,backendSrv:i})),a.a.createElement(c.a,{permissions:r,isFolder:!0,dashboardId:o,backendSrv:i})))},t=h([Object(o.inject)("nav","folder","view","permissions"),o.observer],t)}(r.Component);t.a=Object(i.hot)(e)(g)}).call(t,n(114)(e))}],[714]); 12//# sourceMappingURL=app.89154e0f2714751e6227.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.